page 1  (26 pages)
2to next section

?Software Visualization As A Pedagogical Tool? (submitted to Instructional Science) Page 1

Software Visualization As A Pedagogical Tool:

Redressing Some ITS Fallacies

Marc Eisenstadt, Blaine A. Price1, and John Domingue

Human Cognition Research Laboratory, The Open University, Milton Keynes MK7 6AA, U.K. Tel: [+44] (908) 653149, Fax: [+44] (908) 653169, E-mail: [email protected]
1also affiliated with: Dynamic Graphics Project, CSRI, The University of Toronto, M5S 1A1, Canada.

Abstract: The long-term future of Intelligent Tutoring Systems (ITSs) for the teaching of programming is severely hampered by weaknesses which prevent ITSs from scaling up to cater for either a wide audience or a broad curriculum. The weaknesses include an emphasis on toy examples, the use of instruction-based (as opposed to guided discovery-based) teaching, a lack of attention to user interfaces, and the belief that it is possible to create a comprehensive bug catalogue. We propose an alternative approach, based on examining the needs of expert programmers, and considering a pedagogical trajectory which caters for development from novice to expert. The common thread through this trajectory is ?Software Visualization?, a collection of techniques which allows beginners to see the innards of program execution clearly, and at the same time allows experts to view high level program abstractions which help them home in quickly on buggy code. We re-work some well known examples from the ITS community, and show how our approach scales up to handle a more sophisticated problem involving a 7,500 line operating system.

Introduction

How can we best facilitate the progress of students new to computer programming? This question has been of interest for many years to researchers in Cognitive Science, Artificial Intelligence, and Human-Computer Interaction. The scope of relevant emphases includes the use of clear execution models (du Boulay et al., 1981); the intertwining roles of language, environment, and curriculum (Eisenstadt, 1983); cognitive models of learners? planning behaviour (Anderson et al., 1984); and automatic program debuggers which provide tutorial advice (Johnson, 1986). Indeed, Intelligent Tutoring Systems (ITSs) in the domain of programming have combined many of these approaches to provide some important results. For example, the Lisp Tutor (Anderson and Reiser, 1985; Corbett et al., 1990) is a commercial product which is used regularly to teach a full semester of introductory Lisp programming at U.S. universities, and the Advanced Placement Computer Science Practice and Feedback System (APCS) (Sack, 1992; Sack and Bennett, patent pending) is being developed by the U.S. Educational Testing Service for large-scale tuition and testing of Pascal programmers.

Despite these apparent achievements, we are seriously concerned about the underlying premises of this work, and its prospects for future progress. In particular, we question the scale of the effort needed to provide coverage for a relatively small proportion of the