Algorithm animation
Marc H. Brown · 1988
An algorithm animation environment is a means for exploring the dynamic behavior of algorithms that makes possible a fundamental improvement in the way we understand and think about them. It presents multiple graphical views of an algorithm in action, exposing properties that might otherwise be difficult to understand or even remain unnoticed. All views are updated simultaneously in real time as the algorithm executes, and each view is displayed in a separate window on the screen, whose location, size, and level of detail is interactively set by the end-user. A specialized interpreter controls execution in units that are specific to the algorithm, and allows multiple algorithms to be run simultaneously for comparisons. Programmers can implement new algorithms, graphical displays, and input generators and run them with existing libraries of such components. An important aspect of an algorithm animation environment, and one we believe is useful in any interactive environment, is the concept of a script: a record of an end-user's session that can be replayed. Scripts can be used both passively, as virtual videotapes, and actively, as an innovative communication medium: the viewer of a script can customize the videotape interactively, and can readily switch between passively viewing it and actively exploring its contents. Scripts are typically used as high-level macros, system tutors, and electronic textbooks and research notes. End-users can create scripts easily by instructing the system to watch what I do; scripts are stored as readable and editable PASCAL programs. The potential of such algorithm animation environments is great, but can be fully realized only if they are sufficiently easy and enjoyable to use. This dissertation is step towards achieving these goals. In it, we develop a model for creating real-time animations, as well as a framework for interacting with these animations. We also describe a prototype system, BALSA-II, and its feasibility study system, BALSA-I, that realize the conceptual model.