Tutoring Guidelines

General Policy

When a student comes in for tutoring, the tutor and student must fill out their information on the tutoring sheets maintained by the ACM (or you can simply use the web form.) Proper tutoring records are needed to show to the CS department, College of Engineering, and the University. They are also needed in the event one or more students are accused of cheating and claim that their work in similar because they were tutored by the same person.

Methodology

Recommended strategies for tutoring.

Avoid Over-helping

DO NOT touch the students keyboard.

Often if you are too helpful, student stop thinking for themselves. This seems to happen more early in the semester with first semester programmers and non-CS majors attempting to fulfill their CS requirement.

If it becomes clear that the student does not understand the material because they have not been keeping up with their reading, then they should be sent to go read their required material before coming into tutoring with problems. Tutoring is meant to help students comprehend the programing concepts they learning, not to teach them the material from scratch.

A useful strategy is to have students work in the Linux labs, and come into the ACM when they need it. Most of there issues at this point are syntax problems.

Socratic Method

Once you spot a problem, instead of pointing it out to them, attempt to lead the student to the conclusion instead of telling them. This works well if the student is having a problem with programing concepts, but is not very effective when it comes to basic syntax problems, such as a forgotten semicolon or misspelled variable. More information on the Socratic Method

Understanding program state with debugging messages

Often times, lower level programming students will not be familiar with a debugger. Teaching students to use System.out.println() or std::cout for debugging is helpful. Students can then determine for themselves whether a conditional is being triggered, or if a value associated with an identifier is that they expected it to be, and how many times a loop executed.