Abstract
This article discusses cognitive models of learning to program recursion and their relation to lessons on recursion in an intelligent computer tutor for LISP programming (the LISP Tutor). The cognitive models are implemented as production systems in which programming skill is characterized as the decomposition of programming goals into subgoals and elementary actions via the application of programming plans. Two sets of learning mechanisms are used in the cognitive models. Analogical problem-solving mechanisms use declarative knowledge of example program solutions to overcome problem-solving impasses. Knowledge compilation mechanisms summarize problem solutions into efficient problem-solving skill. Analyses and simulations of novice and expert programming were used to develop ideal models of the programming knowledge to confer upon students and bugs that characterize common misconceptions. The LISP Tutor uses the ideal models and bugs to guide its interactions with students. Experimental evaluations of the LISP Tutor indicate that it is more efficient and effective than classroom instruction.