Explanation of Step-by-Step Execution as Feedback for Problems on Program Analysis, and Its Generation in Model-Based Problem-Solving Tutors
Amruth N. Kumar
We have been developing problem-solving tutors for programming. The tutors target program analysis tasks – evaluating expressions, predicting the output of programs and debugging programs. As part of the feedback, the tutors provide explanation of the step-by-step execution of programs. In this paper, we present the pedagogy behind providing such explanation. In order to be able to automatically generate such explanation, we propose using the principles of Model-Based Reasoning to model the programming domain. We also propose a two-stage algorithm to automatically generate explanation of the step-by-step execution of programs. We describe two tutors – on parameter passing and for loops – that provide such explanation. We describe the evaluation of these tutors that confirms that explanation of the step-bystep execution of programs helps students learn to analyze programs.