A Teaching Assistant for Algorithm Construction

This paper describes a method and a tool that allows a teacher to interactively explain and construct basic algorithms to novice programmers by direct manipulations of variables, indexes and arrays. The method consists in gradually creating a program with the assistance of a tool that captures the teachers actions on the fly. The system offers possibilities for recording a sequence of actions and replaying them. Moreover it is able to take care of conditional statements, as well as loops and macro operations. The tool generates the corresponding program code. As a result, a complete algorithm can be designed and executed without writing a single line of code.

[1]  David Canfield Smith,et al.  Pygmalion: an executable electronic blackboard , 1993 .

[2]  Ken Kahn Chapter 2 – Generalizing by Removing Detail: How Any Program Can Be Created by Working with Examples , 2001 .

[3]  Christopher D. Hundhausen,et al.  Can direct manipulation lower the barriers to computer programming and promote transfer of training?: An experimental study , 2009, TCHI.

[4]  Ken Kahn,et al.  Generalizing by Removing Detail , 2001, Your Wish is My Command.

[5]  Christopher D. Hundhausen,et al.  What You See Is What You Code: A "live" algorithm development and visualization environment for novice learners , 2007, J. Vis. Lang. Comput..

[6]  Lauri Malmi,et al.  MatrixPro - A Tool for On-The-Fly Demonstration of Data Structures and Algorithms , 2004 .

[7]  Bertrand Meyer Touch of Class: Learning to Program Well with Objects and Contracts , 2009 .

[8]  Lauri Malmi,et al.  A Review of Generic Program Visualization Systems for Introductory Programming Education , 2013, TOCE.

[9]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[10]  Juha Sorva,et al.  UUhistle: a software tool for visual program simulation , 2010, Koli Calling.

[11]  M. Guzdial Programming Environments for Novices , 1997 .

[12]  Zoltán Kátai,et al.  Selective hiding for improved algorithmic visualization , 2014, ITiCSE '14.

[13]  Henry Lieberman,et al.  Watch what I do: programming by demonstration , 1993 .