Discussion questions from CS 7390 lecture
Date: 1/29/96
Presented by: John Stasko
Topic: Algorithm Animation
- The Brown paper brings up (again) the dividing line between
Program Visualization and Visual Programming. Has anyone explored the
areas where they overlap? And would it be worth it? (e.g., Is it
easier to make algorithm animations of routines "written" in a Visual
Programming Language? Or can you start bay creating an animation and
have enough to be able to compile the algorithm?)
- It sounds like Cox & Roman use Prolog (or at least something
similar) for part of their animation system. Did they? Is there
something else that could be used to "solve" their rules?
- Although Cox and Roman's paper illustrates the use of Pavane to
animate an algorithm, and also refers to the use of Balsa and Tango,
no mention is made of the effectiveness of any of them in conveying
how the algorithm works to someone other than the animator. Are
algorithm animations effective, especially to someone not familiar
with the algorithm being animated?
- How does the path-transition paradigm in Tango map program
actions to animation actions? How does Tango know which program
actions are significant?
- A general question about taxonomies: Even if they are sometimes
large, and well thought about, there seems to be little information in
it about how the authors derive them. From direct observation? In
those studies, is there enough attention and centering on the users,
their needs and visualization goals, and whether they reach them?
- About algorithm animation: A system is descrived to try to be
automatic algorithm display. How far can it go? Can you display
something (beyond simple structures) without underestanding at least
part of its meaning before?
- Does Cox's classification of algorithm animation encompass
Brown's taxonomy which is highly focused on?
- In the path-transition paradigm of Tango, there may be many
significant paths. How can it decide which path to transition?
- In the Wash. U paper, the brunt of the discussion was on how
visualizations of algorithms can be classified by their levels of
abstraction. It treats the visualization as a mapping from the domain
(scope of information extracted) to the range (graphical techniques
used). Can the scope of information extracted be generalized enough
that it can be used to characterize algorithm animations or is it too
specific to each individual algorithm?
- In Brown's paper, there is a taxnomy given for algorithm
animations: content, persistence, and transformation. Does this
classification cover all aspects or should it be augmented with the
general visualization taxonomy we constructed in class: interface,
effectiveness, and method?
- Is there any way to create a redundant encoding for animation?
(so that one single frame would contain information suggesting that it
was part of an animation. Example: use dotted lines or shadow paths)
- Given that algorithm animation can't be done automatically, what
are its uses? Pedagogy, documentation, videos?
- What are the important differences between creating a taxonomy
for general software visualization and creating one for algorithm
animation?
- Do the "discrete transformations" discussed in Brown's paper
still meet Stasko's taxonomy definition of animation?
- Automated algorithm animation apparently requires the semantics
of the algorithm to be explicit in the program. Why not develop a new
language to do that? This new language requires strong typing and
choosing of meaningful function calls. Object-oriented language is
working toward that direction. This new languaage will not only aid
algorithm animation, it will also have significant impact on software
engineering, since the code is in correspondence with the meaning of
the algorithm now.
- Different levels of abstraction in algorithm animation correspond
to different levels of abstraction in the algorithm to make the
correspondence explicit in the code and its animations is very likely
a job that can only be done by the programmer, because no machine can
do any significant abstraction nowadays.
- In Roman & Cox, "Analytical" and "Explanatory" representations
are each classified as one of the five distinct levels of abstraction.
To what degree are they actually forms of synthesized representations?
- Brown, in his discussion of perspectives on algorithm animation,
lays out a model for characterizing algorithm animations along three
dimensions: Transformation, content, and persistence. His content
dimension only spans from direct representations to synthetic. Could
we simply replace this dimension with Cox/Roman's levels of
abstraction? Would this still give us an orthogonal basis for
classifying animations, or could it potentially cause conflicts? Why?
- What about specifying program animation events in some
meta-language that calls callbacks that are object methods? This
takes advantage of encapsulation of OO languages.
- How can the user affect the speed/direction of an animation?
Should there be a standard control panel for speed? Should it be
content specific?