Feedback services for stepwise exercises
Abstract Advanced learning environments such as intelligent tutoring systems for algebra, logic, programming, physics, etc. let a student practice with stepwise exercises, and support a student solving such exercises by providing feedback. These environments usually provide various types of feedback, for example about the correctness of a step, common errors, hints about how to proceed, or complete worked-out solutions. Calculating feedback is generally delegated to a dedicated expert knowledge module, also known as a domain reasoner. Existing architectural descriptions of learning environments do not precisely specify the interaction between this module and the rest of the learning system. We propose a design based on the stateless clientûserver architecture that clearly decouples the expert knowledge module from the learning environment. We describe a set of feedback services that support the inner (interactions within an exercise) and outer (over a collection of exercises) loops of a learning system, and that provide meta-information about a class of exercises, such as solving quadratic equations, or performing Gaussian elimination. The feedback services do not depend on a particular domain and are based on the various feedback types described in the literature. The paper analyzes which domain-specific knowledge about an exercise class is needed for implementing the feedback services. Based on this analysis, we developed a framework for implementing domain reasoners that offers generic functionality such as rewriting, simplifying, and comparing terms. We have implemented several domain reasoners in this framework, both for external learning environments and for simple prototypes. The proposed design is evaluated with these implementations, and we reflect on our experience with developing domain reasoners.