29. Conclusions

This book part has propagated the utilization of algorithm animation for much broader use than this has been done until now. Obviously, we would have vastly overstretched our resources, had we tried to solve all the pending problems in this field. Rather, we have described the state of the art and given recommendations to the readers on how to build their own algorithm animations, based on our own experience implementing Animated Algorithms. This wide sweep of the field has also allowed us to identify pending issues and an agenda for further research.

Unfortunately, algorithm animation is still a very labor intensive process, even using the sophisticated tools and techniques presented in this part. Lack of time and resources forbids authors from implementing animations of all the algorithms they would like. Even with powerful animation tools like HyperCard and MacroMedia Director it still takes days or weeks to animate an algorithm of intermediate complexity. One obvious solution is to implement the set of scripting commands mentioned described in the previous chapter to get a more comfortable algorithm animation environment for even faster development. Of course this entails implementing low-level and high-level command sets for different types of algorithms.

For Animated Algorithms we produced animations covering a broad spectrum of computer science algorithms. Using a simple programming language like HyperTalk and based on a general purpose application development system like HyperCard, we were able to implement structure-based animations. For educational systems like Animated Algorithms we recommend animations specially adapted to each algorithm instead of animations based on general views. The greater development effort is more than compensated for by the increased educational quality of the animations. Special emphasis should be put on finding alternate pseudocode descriptions, accentuating the main logical steps of algorithms, as this restatement considerably improves student understanding of complex procedures.

The user interface is of utmost importance, as the user wants a consistent animation system without the need to learn a new interface for each new animation. Embedding the animations in an integrated hypermedia learning environment as Animated Algorithms makes it easy to locate related concepts without having to change between different media types.

Although there are some algorithm animation systems available today for visualizing and teaching computer science algorithms, and although the initial technology is here for creating algorithm animations in any domain, widespread application is still in its infancy. While even the most sophisticated hypermedia learning environment never will be able to replace human teachers, it hopefully will assist them in teaching complex subjects. There are numerous situations where a human instructor is not readily available, be it for classwork assignments or for the self-tutoring student. As we have shown in this book, we are convinced that algorithm animations provide a useful tool that aids both the teacher in explaining and the student in understanding complex subjects. We hope that this book convinces the reader that algorithm animation is a concept that can be applied in almost any application domain to the great benefit of its students.

After this discussion of how to present complex concepts, part III addresses the next element of hypermedia design, content. More specifically, it introduces a novel way of multimedia authoring based on a combination of direct-manipulation editing with a programming language-centered approach.