Last month I attended a workshop on CodeHunt at Microsoft Research. A talk there by Daniel Perelman on Hint generation in Code Hunt (you can watch a video of his talk here) really sparked some thinking on my part about how I give hints to students. Since then I have seen some other research on automatic generation of hints including an interesting paper by some researchers at Stanford (PDF). Having automatic hint generation is an important problem for online education and MOOCs. It’s not an easy problem though. In fact at times I struggle with giving the right hints to students in live interactions.
Some times there is a fine line between pointing a student in the right direction and telling them how to solve the problem. Sometimes a simple “are you sure you want to do that inside the loop?” is enough. Other times a student needs someone to go over the statement of the problem and help them break it down into pieces. If a student is close to a solution then there may be little room of a hint. At that point it can become a judgment call between asking the student to keep working on their own and giving them the information that puts them over the top.
Different students need different hints. Or perhaps I should say that some students need more help than others. Working with students in person means that a teacher can figure out what concepts students are struggling with. A student that understands loops can be told “have you thought about a loop here? while a student who is struggling with how to set up a loop needs a refresher on the lecture they
slept though didn’t quite understand the first time. That more involved help, which is more than just a hint, may be a harder problem for software tutorial systems to handle than simple hints.
I’m pretty excited about the possibilities for software giving students hints. I think that this may allow teachers to spend more (and higher quality) time with students who need more than a hint.