Abstract
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.
Similar content being viewed by others
References
Anderson, J. R., Farrell, R. and Sauers, R. (1984). Learning to program in LISP. Cognitive Science, 8, 87–129.
Anderson, J. R., Pirolli, P. and Farrell, R. (1984). Learning to program recursive functions. In M. Chi, R. Glaser and M. Farr (Eds.), The nature of expertise. Hillsdale, NJ: Lawrence Erlbaum Associates.
Bratko, I. (1986). Prolog programming for artificial intelligence. Reading, MA: Addison Wesley.
Brooks, R. (1977). Towards a theory of the cognitive processes in computer programming. International Journal of Man-Machine Studies, 9(6), 737–742.
du Boulay, J. B. H., O'Shea, T. and Monk, J. (1981). The black box inside the glass box: presenting computing concepts to novices. International Journal of Man-Machine Studies, 14, 237–249.
Carroll, J. M. and Thomas, J. C. (1980). Metaphor and the cognitive representation of computing systems. Report RC 8302, IBM Watson Research Center, May.
Clocksin, W. F. and Mellish, C. S. (1981). Programming in Prolog, Berlin: Springer-Verlag.
Domingue, J. (1985). Towards an automated programming advisor. Technical Report No. 16, Human Cognition Research Laboratory, The Open University, Milton Keynes, England.
Domingue, J. (1990). The TRI handbook. Forthcoming Technical Report, Human Cognition Research Laboratory, The Open University, Milton Keynes, England.
Eisenstadt, M. and Laubsch, J. (1980). Towards an automated debugging assistant for novice programmers. Proceedings of the AIBS-80 Conference on Artificial Intelligence, July.
Eisenstadt, M., Breuker, J. and Evertsz, R. (1984). A cognitive account of “natural” looping constructs. Proceedings of the First IFIP Conference on Human-Computer Interaction, INTERACT '84 London.
Eisenstadt, M. and Brayshaw, M. (1990). A fine-grained account of Prolog execution. Instructional Science, this issue.
Gugerty, L. and Olson, G. M. (1986). Comprehension differences in debugging by skilled and novice programmers. In E. Soloway and S. Iyengar (Eds.), Empirical studies of programmers. (Papers presented at the First Workshop on Empirical Studies of Programmers) June 5–6. Norwood, NJ: Ablex.
Halasz, F. and Moran, T. (1982). Analogy considered harmful. Proceedings of Human Factors in Computing Systems Conference, Gaithersburg.
Hasemer, T. (1984). A beginner's guide To LISP. Amsterdam: Addison-Wesley.
Johnson, L. W. and Soloway, E. (1985). PROUST: an automatic debugger for Pascal programs. BYTE, April, 10(4), 179–180.
Jones, A. (1984a). How novices learn to program. Proceedings of the First IFIP Conference on Human Computer-Interaction, INTERACT '84, London.
Jones, A. (1984b). Learning to program: some protocol data. Technical Report No. 41, Computer Assisted Learning Research Group, The Open University, Milton Keynes, England.
Kahney, J. H. (1982). An in-depth study of the behaviour of novice programmers. Technical Report No. 5, Human Cognition Research Laboratory, The Open University, Milton Keynes, England.
Lewis, M. W. (1980). Improving SOLO's user-interface: an empirical study of user behaviour and a Proposal for cost effective enhancement. Technical Report No. 7, Computer Assisted Learning Research Group, The Open University, Milton Keynes, England.
Lieberman, H. (1984). Steps toward better debugging tools for LISP. Proceedings ACM Symposium on Functional Programming.
Lukey, F. J. (1980). Understanding and debugging programs. International Journal of Man-Machine Studies, 12, 189–202.
Mayer, R. E. (1976). Some conditions of meaningful learning for computer programming: advance organizers and subject control of frame order. Journal of Educational Psychology, 68, 143–150.
Mayer, R. E. (1981). The psychology of how novices learn computer programming. Computing Surveys, 13(1), 121–141.
Miller, L. A. (1974) Programming by non-programmers. International Journal of Man-Machine Studies, 6, 237–260.
Murray, W. R. (1986). Automatic program debugging for intelligent turoring systems. Technical Report AI TR86–27, The University of Texas at Austin, Texas, USA.
Norman, D. A. (1982). Some observations on mental models. In D. Gentner and A. Stevens, (Eds.), Mental Models. Hillsdale, NJ: Lawrence Erlbaum Associates.
Pirolli, P. L. and Anderson, J. R. (1985). The role of learning from examples in the acquisition of recursive programming skills. Canadian Journal of Psychology, 39, 240–272.
Rajan, T. (1985). APT: the design of animated tracing tools for novice programmers. Technical Report No. 15, Human Cognition Research Laboratory, The Open University, Milton Keynes, England.
Rajan, T. (1986). APT: a principled design for an animated view of program execution for novice Programmers. Technical Report No. 19/19a, Human Cognition Research Laboratory, The Open University, Milton Keynes, England.
Rajan, T. (forthcoming). An evaluation of APT: an animated program tracer for novice Prolog Programmers. Instructional Science.
Rumelhart, D, E. and Norman, D. A. (1981). Analogical processes in learning. In J. R. Anderson (Ed.), Cognitive skills and their acquisition. Hillsdale, NJ: Lawrence Erlbaum Associates.
Ruth, G. R. (1976). Intelligent program analysis. Artifical Intelligence, 7, 65–85.
Sheil,B. A. (1981). The psychological study of programming. Computing Surveys of the ACM, 13(1), March.
Sime, M. E., Green, T. R. G. and Guest, D. J. (1973). Psychological evaluation of two conditional constructions in computer languages. International Journal of Man-Machine Studies, 5, 123–143.
Sime, M. E., Arblaster, A. T. and Green, T. R. G. (1979). Reducing programming errors in nested conditionals by prescribing a writing procedure. International Journal of Man-Machine Studies, 9, 119–126.
Soloway, E., Bonar, J. and Ehrlich, K. (1981). Cognitive factors in programming: an empirical study of looping constructs. Amherst, MA: Technical Report No. 81–10, Department of Computer Science, University of Massachusetts.
Soloway, E., Ehrlich, K., Bonar, J. and Greenspan, J. (1982). What do novices know about programming. In B. Schneiderman and A. Badre (Eds.), Directions in human-computer interactions. Norwood, NJ: Ablex.
Soloway, E. and Ehrlich, K. (1984). Empirical studies of programming knowledge. IEEE Transactions on Software Engineering. Special Issue: Reusability, Sept.
Taylor, J. and du Boulay, B. (1987). Studying novice programmers: why they may find learning Prolog hard. Cognitive Studies Research Papers, Serial No. 60. The University of Sussex.
Touretzky, D. S. (1984). LISP, a gentle introduction to symbolic computation. New York: Harper and Row.
van Someren, M. W. (1984). Misconceptions of beginning Prolog programmers. Memorandum 30 of the Research Project The Acquisition of Expertise. Dept. of Experimental Psychology, The University of Amsterdam.
van Someren, M. W. (1985). Beginners' problems in learning Prolog. Memorandum 31 of the Research Project The Acquisition of Expertise. Dept. of Experimental Psychology, The University of Amsterdam.
Waters, R. C. (1979). A method for analyzing loop programs. IEEE Transactions on Software Engineering, SE-5:3, May.
Winston, P. H. and Horn, B. K. P. (1981). LISP. Amsterdam: Addison-Wesley.
Winston, P. H. and Horn, B. K. P. (1984). LISP. Second Edition. Amsterdam: Addison-Wesley.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Rajan, T. Principles for the design of dynamic tracing environments for novice programmers. Instr Sci 19, 377–406 (1990). https://doi.org/10.1007/BF00116446
Issue Date:
DOI: https://doi.org/10.1007/BF00116446