When a tutor works with a student on a programming assignment, keep in mind that these assignments form a large part of the student's grade.  Hence you need to be especially careful of issues relating to the Statement of Intellectual Responsibility.  If you're unsure about how to draw the line between helping the student and writing too much of the program, you should consult the course instructor.  Also remember the crucial idea of breaking down the programming assignment into a series of incremental refinements, so that the program can be compiled and debugged after each refinement.  This idea is stressed in lectures, but students often resist.  They are sometimes too impatient and try to write the whole program in one step.  Once their program is a mess, they are sometimes reluctant to abandon what they've already written.  Hence you may need to work with the student on how to break down the program, and then let the student do each small step independently.  This can be a good confidence builder.  Another suggestion is that the tutor should never touch the keyboard.

From Your Professor

The problem that I find most TA's and tutors have is one of boundaries:  How much should they tell the students?  Along those lines, I indicate to them just a couple of simple guidelines.

(1) Know what problem the student is trying to solve, and avoid solving it for them.  This helps a number of tutors/TAs to know that their responses should be leading the student to think, not providing direct answers.

(2) Try to know what's happening in the course.  That way, the TA/tutor can refer to previous material in trying to lead the student to newer material.  Topics almost always build on one another, and referring to previous work is not only a good way to understand new material, but also a good way to better understand old material.

Otherwise, I recommend that the tutors/TAs see me when questions or problems arise.  Once they have these basic guidelines, they seem to have an initial foot on which to stand, and from there, they find their own teaching style.

- Professor Kaplan


Never, never, take the keyboard out of the student's hands to do it yourself.   If you do it, they won't learn. There is a fine line between helping them write code and telling them the answer.  Do not let them take dictation.   Do not tell them how you would solve it.   One good rule of thumb is to always phrase your remarks as questions:  What would you do next?    How about some kind of loop here? It is ok to explain in detail what any compiler or runtime error message means.   And its ok to explain syntax errors and what they mean.

- Professor C. McGeoch