1999 Conference Attendee

ProjectVisual Programming with Function Machines
ContactWallace Feurzeig
BBN Technologies
Emailfeurzeig@bbn.com
URL
Project
description
Function Machines is a visual programming language expressly designed for mathematics and computer science education. The Function Machines language employs two-dimensional visual representations "graphical icons" in contrast with the linear textual expressions used for representing program structures in traditional (one-dimensional) languages. In Function Machines the transmission of data and the passage of control are graphically animated in a fashion readily accessible to students.

Function Machines is based on a 'function as machine' metaphor. Mathematical functions are viewed as machines that communicate with other machines through data flow and control flow connections. The system provides as primitive constructs, machines corresponding to the standard mathematical, graphics, list processing, logic, and I/O operations found in one-dimensional languages. These machines are used as building blocks to construct more complex machines in a modular and extensible fashion. The visual representation of machines and the animation of the passage of data and control makes the semantics of functional operation and iterative and recursive computation transparent. The operation of recursion is shown visually by displaying a separate window for each instantiation of the program as it is created, and erasing it when it terminates.

In the Function Machines environment, a machine runs whenever its inputs are available. Since this can occur simultaneously for several machines, the system naturally supports parallel operation. Thus, the system opens new opportunities for introducing the study of parallel algorithms to beginning students. Function Machines has been piloted in elementary and secondary classrooms. A recent implementation by BBN Technologies in collaboration with the Education Development Center extends the previous version by incorporating additional functionality, a richly enhanced graphical user interface, and a ten-fold increase in computational speed. A demonstration of teachers' and students' work will illustrate the systemís special capabilities and educational benefits.