This paper describes work toward an intelligent tutoring system (PROUST) for novice programmers in PASCAL. The authors are developing a knowledge-based programming expert capable of online analysis and understanding of contextual errors (“bugs” in the code which thwart the human programmer’s original intentions). This expert system attempts to reconstruct the design plans and implementation strategies of the novice programmer through mapping the program requirements onto his or her code. The knowledge base underlying this expert system comes from a psychological theory developed through empirical observation of intended users of this instructional device.
This paper is intended for an audience interested in artifical intelligence or knowledge-based systems. It is also directed toward cognitive science researchers. Incremental progress is reported on constructing a context-dependent expert capable of diagnosing types of bugs not previously encountered, which is one step toward making explicit the expert mapping of program specifications to actual code. The authors do not sufficiently address the issue of “combinatorial explosion,” which is a significant implementation problem for the type of error representation they use. In addition, the list of references provided is somewhat top-heavy with their own prior research. Since this paper was submitted, work on the same problem using a predominantly syntax-based (rather than semantic) approach has been reported [1].