Animation provides a rich environment for actively exploring algorithms. Multiple, dynamic, graphical displays of an algorithm reveal properties that might otherwise be difficult to comprehend or even remain unnoticed. This exciting new approach to the study of algorithms is taken up by Marc Brown in Algorithm Animation.
Brown first provides a thorough and informative history of the topic, and then describes the development of a system for creating and interacting with such animations. The system incorporates many new insights and ideas about interactive computing, and provides paradigms that could be applied in a number of other contexts.
Algorithm Animation makes a number of original and useful contributions: it describes models for programmers creating animations, for users interacting with the animations, for "script authors" creating and editing dynamic documents, and for "script viewers" replaying and interacting with the dynamic documents.
Two primary applications of an algorithm animation environment are research in algorithm design and analysis, and instruction in computer science. Courses dealing with algorithms and data structures, such as compilers, graphics, algorithms, and programming are particularly well-suited. Other applications include performance tuning, program development, and technical drawings of data structures.
Systems for algorithm animation can be realized with current hardware—exploiting such characteristics of personal workstations as high-resolution displays, powerful dedicated processors, and large amounts of real and virtual memory—and can take advantage of a number of features expected to become common in the future, such as color, sound, and parallel processors.
Algorithm Animation is a 1987 ACM Distinguished Dissertation. It grew out of the Electronic Classroom project at Brown University where Marc H. Brown received his doctorate. He is currently a Principal Software Engineer at the Digital Equipment Corporation Systems Research Center in Palo Alto.
In the past decade, high quality interfaces have become standard in a growing number of areas such as games and CD-ROM-based encyclopedias. Yet the overwhelming majority of programmers edit their code using a single font within a single window and view code execution via the hand insertion of print statements.
Software Visualization (SV) redresses this imbalance by using typography, graphics, and animation techniques to show program code, data, and control flow. This book describes the history of SV, techniques and frameworks for its construction, its use in education and program debugging, and recent attempts to evaluate its effectiveness. In making programming a multimedia experience, SV leaves programmers and computer science researchers free to explore more interesting issues and to tackle more challenging problems.
Contributors: Ronald Baecker, John Bazik, Alan Blackwell, Mike Brayshaw, Marc H. Brown, Wim De Pauw, John B. Domingue, Stephen Eick, Marc Eisenstadt, Christopher Fry, Peter Gloor, Thomas Green, Michael Heath, John Hershberger, Clinton L. Jeffery, Doug Kimelman, Eileen Kraemer, Andrea Lawrence, Henry Lieberman, Allen Malony, Aaron Marcus, Paul Mulholland, Marc Najork, Stephen North, Marian Petre, Blaine A. Price, Steven Reiss, Gruia-Catalin Roman, Diane Rover, Bryan Rosenburg, Tova Roth, Robert Sedgewick, Ian Small, John T. Stasko, Roberto Tamassia, Andries van Dam, John Vlissides.