Algorithm animation: using algorithm code to drive an animation

  • Authors:
  • John Morris

  • Affiliations:
  • Chung-Ang University, Seoul, Korea

  • Venue:
  • ACE '05 Proceedings of the 7th Australasian conference on Computing education - Volume 42
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Computer algorithms commonly involve creation, reorganization or destruction of relations between objects. This means that they are generally excellent candidates for visualization for teaching purposes. For a student to comprehend all the ramifications of certain operations, several different concurrent displays are often required: as well as a visualization of the objects being manipulated by the algorithm, commentary, highlighted source code and various statistics are commonly required.This paper describes a strategy for rapidly building animations of algorithms: animations are driven from the source code of the algorithm itself by the addition of animation directives. These directives invoke routines from a toolkit which provides operations commonly needed to display objects and structures. By providing a standard approach to the creation of an animation, creating a new one becomes a straightforward process: many animations in the current collection have been produced by students in one semester courses.The supporting toolkit contains classes which, in addition to animating basic structure, provide many subsidiary displays - histograms, graphs, etc. which are updated as the algorithm runs. This toolkit has evolved following critical analysis of the features needed to allow easy comprehension of the animated algorithms, for example, a separate commentary area has been abandoned in favour of labels on the animation and 'history' panels have been added to permit simultaneous display of several steps in the algorithm, smaller improvements. Over several years, we have implemented a set of widely referenced algorithm animations commonly taught in data structures and algorithms courses available on the web.