23.2 Project Goals
Most of the animations for the Animated Algorithms system have initially been developed by students either as homework assignments for algorithm animation classes or as thesis work. The students had taken algorithm classes before and thus had already a profound knowledge of the subject. It was our goal to make them productive in developing animations as fast as possible. Therefore the development environment needed to fulfill stringent boundary conditions:
We soon decided to use the Macintosh as hardware base because of its wide availability and acceptance among schools and universities. We investigated HyperCard [Win90], MacroMedia Director[27] [Vau94] and AddMotion[28] [Add90] for development environment. To our surprise we finally ended up using HyperCard almost exclusively, adding some simple color animations with AddMotion. The frame-based structure and clumsy scripting language made MacroMedia Director a bad choice for computer scientists developing algorithm animations.
- Rapid development:
- The development environment should allow for early student integration into the development process. That means that the students should become productive developing animations very quickly. In particular, the system should be easy to learn for computer science majors (and not for graphics designers). We therefore favored an approach based on a programming language over a strictly mouse or menu based animation development system. Basic programming languages, such as C or Pascal, had to be excluded because of productivity limitations. We also excluded the option of developing a dedicated animation shell from scratch. Instead we looked for an appropriate off the shelf scripting language animations package.
- Portable:
- We wanted to create a system that we could distribute easily without having to pay tremendous royalties. The software should also run on a broad hardware base.
- Homogeneous:
- We not only wanted to have a collection of algorithm animations, but also a usable and homogeneous system at the end of the course. In particular, the user interface should be uniform and easy to use on different algorithms.
- Color and Sound:
- It would be nice to have not only black and white silent animations, but also color and sound. But on the other hand algorithm animations need not be high quality Gouraud shaded ray traced[26] computer animations. We therefore decided to have as much graphic quality as possible, but that all other aspects mentioned here should have preference. In particular we gave interactivity preferential treatment over sophistication in output quality.
- Speed:
- The animations should run at a comfortable speed. Ideally they should be independent from hardware and degrade gracefully if the system ran on slower hardware. This requirement contrasts to the demand for high quality color animations.
- Hypertext:
- It was our goal to get not only algorithm animations, but also a hypermedia environment explaining them. We needed an extendible application development system exceeding bare animation capabilities. Ideally the system should offer built in hypertext linking capabilities.