University of Helsinki        Department of Computer Science

AAPS Home page  |  Eliot  |  Jeliot  |  Excel animations



Eliot is an interactive animation environment developed at the Department of Computer Science at the University of Helsinki. Animation of algorithms is a helpful method to understand them better. At our department program visualization and algorithm animation in particular has been studied in several software projects.

A few years ago we implemented an animation environment called Halsa (Helsinki Animation Library for String Algorithms) for teaching string-algorithms. This system contained a selection of ready-made animations for a set of algorithms. Later we produced tools for generating algorithms, namely two systems: Halsa++ and Eliot. Eliot, our latest effort, presents two important contributions to the field of program visualization: ease of use and innovative implementation technique.

Overview of Eliot

Eliot is a tool for quick and easy production of algorithm animations. The name Eliot comes from Finnish expression Elävät oliot meaning living beings. The central paradigm related to the name of Eliot is self-animating data structures, which means that the system visualizes data structures automatically.

There are two phases in using Eliot. First the animator writes the algorithm in Eliot-C language, which is a slightly modified version of the C programming language. This Eliot-C program is given as input to Eliot, which extracts and displays all the data objects used in the source code. The animator interacts with the graphical user interface, which provides a program window and windows for setting the appearance and layout of program data objects with a variety of possibilities.

In the second phase Eliot generates an executable program from the Eliot-C input code. This program, which can be run within the user interface, produces the animation running in real time, ( parallel with the execution of the program) as an intentional side-effect. New animated items are created as regular variables, so the appearance of the visualization is determined while the program is running.

Eliot supports multiple windows, stages, to be displayed simultaneously, each having its own characteristics for the same animated data objects. Eliot allows the animator to define the animation charasteristics independently for each data object on each stage. For example, it is possible to display the components of an array as precise digits on one stage and as vertical bars on another, allowing perhaps a better overall view of the data.

Although still being a prototype, Eliot has reached a level where it can be used as a teaching tool and we are experimenting with it in teaching at our department. Although the current version of Eliot is still limited in features, it has proved that the animation concept is useful for visual debugging as well.