Discussion Questions from CS 7390 lecture

Date: 2/2/96

Presented by: Anind

Topic: Algorithm Animation 3


About Zeus:


About Anim:


Other:


Extra comments by one particularly inspired student:

ANIM

My main question about this paper is: who would use ANIM? In general, the purpose of software visualization seems to be threefold:

So, would the programmer use it for debugging? Since the features in ANIM are very crude, only the simplest algorithms could be animated. For more sophisticated algorithms, extensive work would be required by the programmer to get a good representation of the algorithm. Clearly, you do not want to have to do all this extra work to debug the algorithm. Furthermore, since the tools provided by ANIM are fairly low-level (how do you get a smooth animation of two bars being swapped?), you might as well use X or some other portable graphics library.

Would ANIM be used to present algorithms? Here, I use the word "presentation" to mean something inbetween debugging and teaching. For example, you may want to present an algorithm for members on a programming team, or project leader(s). These people may already be familiar with the algorithm, and the presentation is used to more clearly present how the algorithm performs on some set of data. Again, most algorithms that require visualization to be fully comprehended are in general fairly complex. ANIM may be good for bin packing and sorting, but it would be painful to use to visualize dynamic trees, data flow animations, OS data structures and algorithms such as process queues/scheduling, and 3D visualizations (e.g. object intersection). Also, for simple animations, it is often easy to visualize the algorithms yourself with a standard graphics library.

What about teaching? For this, it is often important that the images in the animation are aesthetically pleasing (nice colors and shapes), and also that the animation is smooth. Aditionally, redundant information (e.g. use both colors and shapes) is often useful to clearly point out what is going on in the algorithm. It seems that ANIM is too crude for this task, and there are many other similar packages that do a much better job at this.

Given enough time, I could easily refute all the arguments the authors present on page 14.

Another question concerns "inbetween states". This doesn't seem to be provided at all unless the programmer explicitly generates these pseudo states. According to some definitions, ANIM really doesn't do algorithm animation. With a few more primitives, this could've been handled, and I am curious as to why this was not done.