It depends on the type of problem you ran into. For stupid errors --
an arithmetic error or similar -- simply letting the student you'll be
helping to check their signs is sufficient.
For deeper errors of understanding, the best hints allow students to
discover a contradiction in how they are thinking about the
problem. An example that clearly demonstrates inconsistency or
cognitive dissonace
is ideal, although in most cases, not possible.
Good hints either:
Point out the specific misunderstanding your classmate might have
Point to concepts or theories where your classmates might have a
misunderstanding
Show simpler, analogous examples.
Provide references to relevant parts of the text
Still, remember even a crude hint -- virtually anything short of
giving away the answer -- is better than no hint.
%def>
<%def name="show_votes()">
% if hint_and_votes is UNDEFINED:
Sorry, but you've already voted!
% else:
Thank you for voting!
% for hint, votes in hint_and_votes:
${votes} votes.
${hint}
% endfor
% endif
%def>
<%def name="simple_message()">
${message}
%def>
% if op == "get_hint":
${get_hint()}
% endif
% if op == "get_feedback":
${get_feedback()}
% endif
% if op == "submit_hint":
${simple_message()}
% endif
% if op == "vote":
${show_votes()}
% endif