Methodology and Design Issues in Capra, an Environment for Learning Program Construction

The Capra system has been built to teach novice students the design of elementary programs. The programming methodology relies on the use of schema or plans for reasoning about program construction. The system offers interactive sessions following a Socratic style which combines explanation and verification of the different concepts of the domain. Tutoring is viewed as a process where two agents cooperate to attain some instructional/learning objectives. Under a mixed-initiative dialogue the system guides the student through its problem solving activities. The tutor dynamically plans a sequence of tutoring actions taking into account the current student’s intentions expressed either explicitly or inferred through the communication process.