Principles for the design of dynamic tracing environments for novice programmers

This paper describes the principled design of a computational environment which depicts an animated story of the execution of programs for novice programmers. The design principles are aimed at solving the problems that novice programmers face when learning new programming languages, and are embodied in an Animated Program Tracer (APT) for Prolog. The goal of this research is to develop a more systematic, if not yet scientific, basis for the design of animated tracing tools.

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

[2]  John R. Anderson,et al.  Learning to Program in LISP , 1984, Cogn. Sci..

[3]  David S. Touretzky,et al.  LISP: A Gentle Introduction to Symbolic Computation , 1984 .

[4]  John R. Anderson,et al.  Learning to Program in LISP , 1984, Cogn. Sci..

[5]  Elliot Soloway,et al.  PROUST: An automatic debugger for Pascal programs , 1985 .

[6]  T. Rajan A principled design for an animated view of program execution for novice programmers , 1986 .

[7]  John C. Thomas,et al.  Metaphor and the Cognitive Representation of Computing Systems , 1982, IEEE Transactions on Systems, Man, and Cybernetics.

[8]  Thomas P. Moran,et al.  Analogy considered harmful , 1982, CHI '82.

[9]  Tim Rajan An evaluation of APT: an Animated Program Tracer for novice Prolog programmers , 1991 .

[10]  P. H. Winston,et al.  LISP. Second edition , 1986 .

[11]  Lance A. Miller Programming by Non-Programmers , 1974, Int. J. Man Mach. Stud..

[12]  F. J. Lukey Understanding and debugging programs , 1980 .

[13]  M. Chi,et al.  The Nature of Expertise , 1988 .

[14]  Gregory R. Ruth Intelligent Program Analysis , 1976, Artif. Intell..

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

[16]  Ivan Bratko,et al.  Prolog Programming for Artificial Intelligence , 1986 .

[17]  William F. Clocksin,et al.  Programming in Prolog , 1981, Springer Berlin Heidelberg.

[18]  Gary M. Olson,et al.  Comprehension differences in debugging by skilled and novice programmers , 1986 .

[19]  Richard E. Mayer,et al.  Some Conditions of Meaningful Learning for Computer Programming: Advance Organizers and Subject Control of Frame Order. , 1976 .

[20]  Richard E. Mayer,et al.  The Psychology of How Novices Learn Computer Programming , 1981, CSUR.

[21]  Donald A. Norman,et al.  Some observations on mental models , 1987 .

[22]  B. A. Sheil,et al.  The Psychological Study of Programming , 1981, CSUR.

[23]  Marc Eisenstadt,et al.  Towards an automated debugging assistant for novice programmers , 1980 .

[24]  Marc Eisenstadt,et al.  A fine-grained account of Prolog execution for teaching and debugging , 1990 .

[25]  William R. Murray,et al.  Automatic program debugging for intelligent tutoring systems , 1987, Comput. Intell..

[26]  Richard C. Waters,et al.  A Method for Analyzing Loop Programs , 1979, IEEE Transactions on Software Engineering.

[27]  P. Pirolli,et al.  The role of learning from examples in the acquisition of recursive programming skills. , 1985 .

[28]  Thomas R. G. Green,et al.  Reducing Programming Errors in Nested Conditionals by Prescribing a Writing Procedure , 1977, Int. J. Man Mach. Stud..

[29]  Henry Lieberman,et al.  Steps toward better debugging tools for LISP , 1984, LFP '84.