Learning to Program in LISP

We have gathered protocols of subjects in their first 30 hours of learning LISP. The processes by which subjects write LISP functions to meet problem specifications has been modeled in a simulation program called GRAPES (Goal Restricted Production System). The GRAPES system embodies the goal-restricted architecture for production systems as specified in the ACT* theory (Anderson, 1983). We compare our simulation to human protocols on a number of problems. GRAPES simulates the top-down, depth-first flow of control exhibited by subjects and produces code very similar to subject code. Special attention is given to modeling student solutions by analogy, how students learn from doing, and how failures of working memory affect the course of problem-solving. Of major concern is the process by which GRAPES compiles operators in solving one problem to facilitate the solution of later problems.

[1]  Richard Fikes,et al.  STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving , 1971, IJCAI.

[2]  Allen Newell,et al.  Production Systems: Models of Control Structures , 1973 .

[3]  R. Brooks A Model Of Human Cognitive Behavior in Writing Code For Computer Programs , 1975, IJCAI.

[4]  Daniel G Bobrow,et al.  On data-limited and resource-limited processes , 1975, Cognitive Psychology.

[5]  Laurent Siklossy Let's talk LISP , 1976 .

[6]  John R. Anderson Language, Memory, and Thought , 1976 .

[7]  Gregory V. Jones A fragmentation hypothesis of memory: Cued recall of pictures and of sequential position. , 1976 .

[8]  Earl David Sacerdoti,et al.  A Structure for Plans and Behavior , 1977 .

[9]  Howard E. Shrobe,et al.  Initial Report on a Lisp Programmer's Apprentice , 1978, IEEE Transactions on Software Engineering.

[10]  Ross A Bott,et al.  A Study of Complex Learning: Theory and Methodologies , 1979 .

[11]  D. Barstow An Experiment in Knowledge-Based Automatic Programming , 1986, Artif. Intell..

[12]  Donald A. Norman,et al.  Analogical Processes in Learning , 1980 .

[13]  Kurt VanLehn,et al.  Repair Theory: A Generative Theory of Bugs in Procedural Skills , 1980, Cogn. Sci..

[14]  Robin Jeffries,et al.  The Processes Involved in Designing Software. , 1980 .

[15]  D. Norman Categorization of action slips. , 1981 .

[16]  Robert G. Farrell,et al.  GRAPES User's Manual. , 1982 .

[17]  John R. Anderson Acquisition of cognitive skill. , 1982 .

[18]  John R. Anderson,et al.  Learning to Program , 1983, IJCAI.

[19]  A. Bundy Proceedings of the Eighth International Joint Conference on Artificial Intelligence : IJCAI-83, 8-12 August 1983, Karlsruhe, West Germany , 1983 .

[20]  Allen Newell,et al.  The psychology of human-computer interaction , 1983 .

[21]  Allen Newell,et al.  Problem solving techniques for the design of algorithms , 1984, Inf. Process. Manag..

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