Guided programming and automated error analysis in an intelligent Prolog tutor

We present a Prolog programming technique-based approach to guided programming and automated error analysis in Prolog tutoring. The concept of Prolog programming technique is used to characterize and classify programs. Each class of programs use the same programming technique and share the common pattern of code. A set of programming technique grammar rules are defined for each class of programs. These rules are used for programming technique recognition, program construction, and program parsing. A programming technique frame is used to represent the programming technique-related knowledge for each class of programs. A program frame is used to represent the coding-related knowledge for the reference program of each of the most specialized programming techniques. The representation of the programming technique grammar rules, programming technique-related knowledge, and coding-related knowledge provides the basis for guided programming and automated error analysis in tutoring. Our approach to error analysis however does not rely on the representation of buggy versions of the program. Automated error analysis in our approach is done on the basis of comparing the parsings of both the student program and the reference program. Our approach has been implemented in a Prolog tutoring system called the Prolog Tutor, which has been tested on a collection of 125 programs for list reversal. The Prolog Tutor performs well on these tests in terms of programming technique recognition, error detection, and error correction.

[1]  Yves Deville,et al.  Logic Program Transformation through Generalization Schemata , 1995, LOPSTR.

[2]  Yves Deville,et al.  Logic Program Schemas, Constraints, and Semi-unification , 1997, LOPSTR.

[3]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[4]  Paul Brna,et al.  A Case-Based Reasoning Approach to Supporting Novice Programmers , 1999 .

[5]  Kurt VanLehn,et al.  Conceptual and Meta Learning During Coached Problem Solving , 1996, Intelligent Tutoring Systems.

[6]  Elliot Soloway,et al.  From Problems to Programs via Plans: The Content and Structure of Knowledge for Introductory LISP Programming , 1985 .

[7]  John R. Anderson,et al.  The LISP tutor: it approaches the effectiveness of a human tutor , 1985 .

[8]  J. Greer,et al.  Granularity Hierarchies , 1992 .

[9]  Norbert E. Fuchs,et al.  Development of Correct Transformation Schemata for Prolog Programs , 1997, LOPSTR.

[10]  Timothy S. Gegg-Harrison Exploiting program schemata in an automated program debugger , 1994 .

[11]  Chee-Kit Looi,et al.  Automatic program analysis in a Prolog intelligent teaching system , 1988 .

[12]  Edward M. Reingold,et al.  Backtrack programming techniques , 1975, CACM.

[13]  Josie Taylor Analysing novices analysing Prolog: what stories do novices tell themselves about Prolog? , 1990 .

[14]  Pierre Flener,et al.  On Correct Program Schemas , 1997, LOPSTR.

[15]  Timothy S. Gegg-Harrison Adapting instruction to the student's capabilities , 1992 .

[16]  Paul Brna,et al.  Learning to Build and Comprehend Complex Information Structures: Prolog as a Case Study , 1999 .

[17]  Paul Brna,et al.  Prolog programming techniques , 1991 .

[18]  Maarten van Someren,et al.  What's wrong? Understanding beginners' problems with Prolog , 1990 .

[19]  Pierre Flener,et al.  Generalised Logic Program Transformation Schemas , 1997, LOPSTR.

[20]  Timothy S. Gegg-Harrison Extensible Logic Program Schemata , 1996, LOPSTR.

[21]  Petr Stepanek,et al.  Schema-based transformations of logic programs in λProlog , 2002 .

[22]  Timothy S. Gegg-Harrison Representing Logic Program Schemata in lambda-Prolog , 1995, ICLP.

[23]  Timothy S. Gegg-Harrison Exploiting Logic Program Schemata to Teach Recursive Programming , 2006 .

[24]  J. C. Rutkowska,et al.  Computers, cognition, and development: issues for psychology and education , 1987 .

[25]  Timothy S. Gegg-Harrison Exploiting program schemata in a Prolog tutoring system , 1993 .

[26]  Elliot Soloway,et al.  A Goal/Plan Analysis of Buggy Pascal Programs , 1985, Hum. Comput. Interact..

[27]  Timothy S. Gegg-Harrison Learning Prolog in a schema-based environment , 1991 .

[28]  Chee-Kit Looi Automatic debugging of Prolog programs in a Prolog Intelligent Tutoring System , 1991 .

[29]  Norbert E. Fuchs,et al.  An Opportunistic Approach for Logic Program Analysis and Optimisation Using Enhanced Schema-Based Transformations , 1995, LOPSTR.

[30]  Paul Brna,et al.  A recursive techniques editor for Prolog , 1991 .