Algorithmic debugging is an effective diagnosis method in intelligent tutoring systems (ITSs). Given an encoding of expert problem-solving as a logic program, it compares the program's behaviour during incremental execution with observed learner behaviour. Any deviation captures a learner error in terms of a program location. The feedback engine of the ITS can then take the program clause in question to generate help for learners to correct their error. With the error information limited to a program location, however, the feedback engine can only give remediation in terms of what's wrong with the current problem solving step. With no access to the overall hierarchical context of a student action, it is hard to dose scaffolding help, to explain why and how a step needs to be performed, to summarize a learner's performance so far, or to prepare the learner for the problem solving still ahead. This is a pity because such scaffolding helps learning. To address this issue, we extend the meta-interpretation technique and complement it with a program annotation approach. The expert program is enriched with terms that explain the logic behind the program, very much like comments explaining code blocks. The meta-interpreter is extended to collect all annotation in the program's execution path, and to keep a record of the relevant parts of the program's proof tree. We obtain a framework that defines sophisticated tutorial interaction in terms of Prolog-based task definition, execution, and monitoring.
展开▼