Two papers for Tom Gay's talk on 2/14/96:
Color and Sound in Algorithm Animation -
Brown & Hershberger
Program Auralization: Sound Enhancements to the
Programming Environment - DiGiano & Baecker
In this paper, Brown and Hershberger attempt to classify the ways in
which color and sound, both independently and calaboratively, can be used to
improve algorithm animations. They review some of the general concepts involved
with algorithm animation and talk breifly about the effect of choice of input
data on an animation. This sets a basis upon which the fundamentals of color
and sound are added, making ties to these underlying principles and conventions.
Techniques for Algorithm Animation:
- Multiple Views
- Detailed view of a single algorithm
- Multiple algorithms simutaneously
- State Cues
- Link views together
- Reflect dynamic behavior of the algorithm
- Static History
- Allows user to process the algorithm at their own speed
- Allows the user to focus on key events
- Input Data
- Small instances good for detailed understanding of low level operations
- Large instances good for finding patterns and general feel of algorithm
- Two types of useful input data:
- Pathalogical data -> push algorithm to extremes
- "Cooked data" -> make the animation interesting
- Continuous vs. Discrete Transitions
In classifying the many uses of color and sound in algorithm animations
these different aspects of algorithm animations in general will be utilized.
The authors first present a number of challenges that the designer of an
algorithm animation faces which he/she would not face if working on a paper
design. They then show how color and sound may be used to overcome some of
these obstacles.
The problems that they sight are:
- Small screens - less real estate for presenting information
- Lower resolution _ less detail can be packed in than on paper
- Dynamic nature - the animation must be flexible
- Multiple views - views must work together to provide a cohesive visualization
- Multiple data sets - the animation must handle a range of data values
Color Usage Techniques:
- Reveal the state of the algorithm
- color provides an extra dimension - shape and color can vary
- a spacially denser presentation of information is made possible
- displaying global patterns is made easier
- Unite multiple views
- Highlight areas of interest
- provides temporary emphasis
- must maintain the integrity of the highlighted information
- Emphasize patterns
- Capture history
- color spectrum not intuitive to progression of time
- a gradation of hues can better represent history
Question: The authors claim that the use of color allows a denser
presentation of information. Are there situations where this may be harder to
follow than the change of the shape or location of a graphical object? How
about for animations with a large number of these objects (<1000)?
Before listing the ways in which sound can be used to enhance an animation, the
authors first point out some of the limitations/considerations of using sound.
- several users in a room or several animations on a display may produce a confusing com
bination of sounds
- humans are not very well trained at discerning different sounds
- sound has an inherent temporal dependency
Sound Usage Techniques:
- Reinforce visual views
- associate sound with ordered value generated by important program event
- Convey patterns
- This is done more efficiently by humans for large amounts of data
- Replace visual views
- example - a tone associated with the number of active processors
- Signal exceptional conditions
- everyday sounds are often useful here
Question: What different types of sounds are best suited for representing
data? events? (ie. everyday sounds, beeps, speech, etc..)
This paper deals specifically with the use of sound. It is not focused
on algorithm animations, however many of the techniques and concepts presented
could easily be used in designing them. The authors first present how program
auralization might be encorporated into the programming environment, and then
present their system which is designed to do this. Their system
LogoMedia will not be described.
Definition:
Program Auralization - the use of non-speech audio for supporting the
understanding and effective use of computer programs.
Why use it?:
- the logarithmic nature of several sound dimensions can help teach logarithms
- every-day sounds carry familiar conotations
- smaller systems with smaller displays require other means of communication
- cluttered graphics workspaces
- sound can be varied across as many as 20 dimensions
- sound does not depend on which way you are facing
Each sound in program auralization will correspond to some item in a time
varying stream of data. Several example systems are given by the authors which
demonstrate some of the possible practicle applications already in use.
The authors present the notion of articulatory directness. This is a
measure of how well form follows function in an interface. On one extreme is
a completely symbolic representation, while the other extreme is iconic.
Program auralizations can be classified as representing data or events (or both)
some where along this access of articulatory directness.
Sound in the programming domain:
- must be adaptable to varying conditions
- must be able to represent data and events
- must be able to handle unknown data types and sets
- different programmers will want to use sounds differently
The programming process can be broken up into three phases for the purpose of
program auralization: preparation, review, and execution. The uses of sound
in each of these phases is outlined below.
Execution:
Both values and events can be represented. There are three classifications for
both values and events:
- Common - typical data and control structures
- Arbitrary - unpredictable elements of a program
- Internal - the run-time stack, the heap, etc..
Values:
- frees the user to focus on other aspects of the running program
- we can map values to many different sound dimensions
- default sounds must fade into the background (must be unobtrusive)
Events:
- sound associated with a line or lines of code
- recognition of patterns or "melodies" can be useful
Review:
- analagous to indentation, comments, code style, etc..
- audio landmarks can mark important code segments
- by "scrolling" through code patterns can be recognized
Preparation:
- layering of sound can provide syntax guidance
- listening to compilation process can facilitate program understanding
Question: How might the use of sound in review of program source be useful?
What patterns does one expect to notice that would not be identified through
the use of good style (ie. indentation, comments, etc..)?