How do Lisp Programmers Draw on Previous Experience to Solve Novel Problems

In two exploratory studies, we looked at how expert Lisp programmers organize Lisp knowledge, and how they solve complex programming problems. First, using our previous work on Pascal templates as a framework, we generated a set of potential Lisp templates and asked experts to identify and to sort them. Second, we invented a set of challenging Lisp programming problems and asked experts to solve one or two of them while thinking aloud. The protocols from these sessions give a rich picture of some of the techniques experts use to design solutions, and the criteria they use to evaluate partial solutions and solutions by others. We discuss how the results of these exploratory studies suggest changes to current Lisp instruction, and describe some instructional materials we are currently developing, including a set of Case Studies and a hypermedia library of Lisp templates.

[1]  Vinod Goel,et al.  Motivating the Notion of Generic Design within Information-Processing Theory: The Design Problem Space , 1989, AI Mag..

[2]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[3]  K. A. Ericsson,et al.  Verbal reports as data. , 1980 .

[4]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[5]  M. Linn,et al.  Cognitive consequences of Programming Instruction: Instruction, Access, and Ability , 1985 .

[6]  Elliot Soloway,et al.  Analyzing the high frequency bugs in novice programs , 1986 .

[7]  Elliot Soloway,et al.  Studying the Novice Programmer , 1988 .

[8]  Liliana Tolchinsky Landsmann Culture, Schooling, and Psychological Development , 1991 .

[9]  B. Adelson,et al.  The Role of Domain Expenence in Software Design , 1985, IEEE Transactions on Software Engineering.

[10]  Ann L. Brown,et al.  Interactive learning and individual understanding: The case of reading and mathematics. , 1991 .

[11]  Richard E. Mayer,et al.  Teaching and Learning Computer Programming : Multiple Research Perspectives , 1988 .

[12]  Marcia C. Linn,et al.  Can Experts' Explanations Help Students Develop Program Design Skills? , 1992, Int. J. Man Mach. Stud..

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

[14]  Susan E. Newman,et al.  Cognitive Apprenticeship: Teaching the Craft of Reading, Writing, and Mathematics. Technical Report No. 403. , 1987 .

[15]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

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

[17]  Paul J. Feltovich,et al.  Categorization and Representation of Physics Problems by Experts and Novices , 1981, Cogn. Sci..

[18]  Ben Shneiderman,et al.  Ecological studies of professional programmers , 1988, CACM.

[19]  Marcia C. Linn,et al.  Instructional conditions in Pascal programming classes. , 1988 .

[20]  M. Linn,et al.  Learning and Instruction: An Examination of Four Research Perspectives in Science Education , 1988 .

[21]  Mary Beth Rosson,et al.  The designer as user: building requirements for design tools from design practice , 1988, CACM.

[22]  David S. Touretzky,et al.  Common LISP - a gentle introduction to symbolic computation , 1989 .

[23]  Marcia C. Linn,et al.  Adapting instruction to the cognitive demands of learning to program. , 1989 .

[24]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[25]  M. Linn,et al.  Ideal and actual outcomes from precollege pascal instruction , 1987 .