Teaching Programming at a Distance: The Internet Software Visualization Laboratory

This paper describes recent developments in our approach to teaching computer programming in the context of a part-time Masters course taught at a distance. Within our course, students are sent a pack which contains integrated text, software and video course material, using a uniform graphical representation to tell a consistent story of how the programming language works. The students communicate with their tutors over the phone and through surface mail. Through our empirical studies and experience teaching the course we have identified four current problems: (i) students' difficulty mapping between the graphical representations used in the course and the programs to which they relate, (ii) the lack of a conversational context for tutor help provided over the telephone, (iii) helping students who due to their other commitments tend to study at 'unsociable' hours, and (iv) providing software for the constantly changing and expanding range of platforms and operating systems used by students. We hope to alleviate these problems through our Internet Software Visualization Laboratory (ISVL), which supports individual exploration, and both synchronous and asynchronous communication. As a single user, students are aided by the extra mappings provided between the graphical representations used in the course and their computer programs, overcoming the problems of the original notation. ISVL can also be used as a synchronous communication medium whereby one of the users (generally the tutor) can provide an annotated demonstration of a program and its execution, a far richer alternative to technical discussions over the telephone. Finally, ISVL can be used to support asynchronous communication, helping students who work at unsociable hours by allowing the tutor to prepare short educational movies for them to view when convenient. The ISVL environment runs on a conventional web browser and is therefore platform independent, has modest hardware and bandwidth requirements, and is easy to distribute and maintain. Our planned experiments with ISVL will allow us to investigate ways in which new technology can be most appropriately applied in the service of distance education. Reviewers: Chris Johnson (U. Glasgow), Henry Lieberman (MIT Media Lab), Lisa Neal (EDS & MIT Media Lab), Judith Segal (U. Surrey) Interactive elements: Java applets allow you to play back and interact with ISVL movies in a distance programming student-tutor scenario. An interactive demonstration of ISVL is embedded in this article as a Java applet. You will require a Java-aware browser to use this. -->

[1]  Benedict du Boulay,et al.  Outline Proposal for a Prolog `Textual Tree Tracer' (TTT) , 1991 .

[2]  Giuseppe Liotta,et al.  Algorithm animation over the World Wide Web , 1996, AVI '96.

[3]  Richard C. Waters The Programmer's Apprentice: A Session with KBEmacs , 1985, IEEE Transactions on Software Engineering.

[4]  John Domingue,et al.  Software visualization : programming as a multimedia experience , 1998 .

[5]  Mike Brayshaw,et al.  Towards a taxonomy of novices' misconceptions of the Prolog interpreter , 1990 .

[6]  Simon P. Davies,et al.  Knowledge restructuring and the acquisition of programming expertise , 1994, Int. J. Hum. Comput. Stud..

[7]  Ben Shneiderman,et al.  UNDERSTANDING THE NOVICE PROGRAMMER. , 1984 .

[8]  L. Schauble,et al.  Beyond Modularity: A Developmental Perspective on Cognitive Science. , 1994 .

[9]  Marian Petre,et al.  Learning to Read Graphics: Some Evidence that 'Seeing' an Information Display is an Acquired Skill , 1993, J. Vis. Lang. Comput..

[10]  Alan Bundy,et al.  What stories should we tell novice PROLOG programmers , 1987 .

[11]  John T. Stasko,et al.  Do algorithm animations assist learning?: an empirical study and analysis , 1993, INTERCHI.

[12]  Marc Eisenstadt,et al.  The Transparent Prolog Machine (TPM): An Execution Model and Graphical Debugger for Logic Programming , 1988, J. Log. Program..

[13]  Alan F. Blackwell,et al.  Cognitive Questions in Software Visualisation , 1997 .

[14]  Josephine Annette Taylor Programming in prolog: an indepth study of problems for beginners learning to program in prolog , 1988 .

[15]  Adam Freeman,et al.  KMi Stadium: Web-based Audio/Visual Interaction As Reusable Organisational Expertise , 1996 .

[16]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[17]  Richard Catrambone,et al.  Do Algorithm Animations Aid Learning , 1996 .

[18]  Marc Eisenstadt,et al.  A Powerful Prolog Trace Package , 1984, European Conference on Artificial Intelligence.

[19]  Robert Hawley Artificial intelligence programming environments , 1987 .

[20]  Tony Hasemer,et al.  Teaching, Learning and Collaborating at a Virtual Summer School , 1996 .

[21]  John Domingue,et al.  A framework for describing and implementing software visualization systems , 1992 .

[22]  Marc Eisenstadt,et al.  An Integrated Textbook, Video, and Software Environment for Novice and Expert Prolog Programmers. Technical Report No. 23. , 1987 .

[23]  Shelley V. Goldman Sorting out sorting , 1982 .

[24]  Annette Karmiloff-Smith,et al.  Micro- and Macrodevelopmental Changes in Language Acquisition and Other Representational Systems , 1979, Cogn. Sci..

[25]  John T. Stasko,et al.  Empirically evaluating the use of animations to teach algorithms , 1994, Proceedings of 1994 IEEE Symposium on Visual Languages.

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

[27]  Michelene T. H. Chi,et al.  Self-Explanations: How Students Study and Use Examples in Learning To Solve Problems. Technical Report No. 9. , 1987 .

[28]  Marc Najork,et al.  Collaborative Active Textbooks: a Web-based algorithm animation system for an electronic classroom , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[29]  Ray J. Dawson,et al.  Introducing new software engineering graduates to the 'real world' at the GPT company , 1992, Softw. Eng. J..