The algorithm designer project : a visual programming environment for data structure demonstration

Abstract

Previous work on pedagogical tools for teaching students algorithms has focused on high level animations of the algorithms. This dissertation describes a tool that gives instructors the ability to pictorially demonstrate the implementation of algorithms at the data structure level.The Algorithm Designer Project explores the use of a computer as an electronic whiteboard for instruction of computer science. It improves upon the traditional physical blackboardenvironment by providing syntactic and semantic support for data structure design and algorithm demonstration. The ultimate goal of this project is to provide an attractive, easy to use, system through which users can demonstrate simple algorithms and data structures,such as those presented in data structures textbooks. The project consists of three components: Data Structure Designer, Algorithm Designer, and Rule Designer. DataStructure Designer allows users to design and customize the appearance of data structures that they intend to use to create visual programs. Concrete examples of these data structures can be placed into Algorithm Designer and directly manipulated to demonstrate algorithms.Visual programs are programs written using pictures instead of, or in conjunction with,text. Rule Designer allows the creation and manipulation of transition rules to define visual program scripts to act upon Algorithm Designer objects. The project was implemented using the Amulet toolkit and runs on Macintosh, Windows, and UNIX platforms.A key insight discovered during development of the Algorithm Designer Project was that although textbooks employ a wide variety of data structure visualizations, the differences between these visualizations can be grouped into a small number of categories. Two unique interface items were developed during the course of the research: 1) a color mapping widget interface item that provides an easy way for the user to associate a set of colors with a range of values in a data structure visualization and 2) seeds\u27\u27 and holes, a mechanism for visually identifying and supporting type-specific semantic behavior for edge-based data structures. Finally, this dissertation describes a novel use of imperative programming constructs within a pictorial rewrite rule-based scripting system and a novel use of these rules for teaching conventional imperative programming

    Similar works