Use of Visualization in Teaching Introductory Computer Science

Viera K. Proulx, Richard Rasala, Harriet J. Fell
College of Computer Science
Northeastern University Boston, MA 02115, USA

Talk presented at the Dagstuhl Seminar

New Media in Computer Science Teaching at University Level

Schloss Dagstuhl, Germany, February 3, 1998


Programming with graphics
Algorithm tutorials and exploration

Programming with graphics

Visual feedback
Building mini applications and games
Modeling real world computer science

Visual feedback

scaled picture drawings pumpkin
own design
animated loops
rolling balls
algorithm debugging
swimming fish
array sorting
function plotting
animating data structure behavior
binary trees
cars on a road

Building mini applications and games

piano keyboard
event loop
learn to use sound too
simple design
user interface issues exposed
design and maintenance of menus/toolbars
memory game
two player situation
taking turns, keeping tabs

Modeling real world computer science

cryptography (Ceasar's shift) display and view histogram
learn simple encryption code
Mars images
real data
motivation, excitment
sense of empowerment
lot of data
over 90 000 bytes
need for files and storage media
problems with transmission/bandwidth
mixed text, numeric, and pixel data
byte data can have multiple meanings
issues of portable text (CR/LF problems
representation of integers in different machines
unsigned bytes - conversion isuues
image enhancement
linear scaling
histogram equalization
additional topics
covert channel
discovering data tampering
simple technique
can be cone with line drawings, pixel data, using spreadsheet, etc.
nice uses:
caricature (credit Erich Neuwirth)
special effects
recursive fractal grammars (L-systems)
impressive use of recursion
example of the need for extensive computational power
seeing order of growth in 'real life'
design issues for display (scaling)
need for recomputation, good design
power of algorithm
generate complex drawings from only a few lines of grammar definition
traffic simulation
display adds interesting design issues
independence of display and the main problem
visual representation of the behavior
Monte Carlo search for a hidden object
application to archaeology
application to oil exploration
contour maps
basis of the satelite image processing
weather maps
game of Life
ability to observe complex behavior over a long time span
ability to observe patterns not seen in hand generated display

Algorithm tutorials and exploration

binary trees
heap and heapsort
animation with dual representation
students built animation for debugging
graph algorithms

enumeration and analysis

time trials for sorting
height of binary trees
discovery of stabillity
height average near 2*min height
deviations are minor
no real bad cases
implications for the study of tree balancing
in real life not needed
too complex to embed in a critical system
twice a year re-balancing
union/find algorithm:
order of growth explorations


curriculum vs. individual projects
whole curriculum dictates author's preferences
whole curriculum discourages local experimentation
individual projects - hard to adapt if not designed for it
individual projects - hard to know if prerequisites, goals are OK
cross platform availability
needed for wide acceptance
hard to achieve
hard to maintain
Java may help...
whole project may be too big
user may want to change parts
user may want to change source code
users will have questions
author cannot do tech support or curriculum help
extensive documentation and navigation at the top level
complete list
list by outcomes
list by difficulty
list by time needed
list by CS applications presented
overall philosophy
formats for the components
meaning of the fields
design of the navigation
careful packaging of each lab:
teacher's cover sheet:
goals - with levels of learning
expected outcomes at two levels
brief synopsis for search
keywords for prerequisites, content, goals
listed for each project
several axis for search:
algorithm, data structure, design, application, basic construct
project description in several formats
for browsing/reading online
for downloading as is
for downloadign for potential modifications
download all componenets at once
source code for instructor, student
format for on-line browsing
format for downloading
makefile or project build description
all needed files and toolkits
platform specific - several versions needed
written documentation of the overall design