
Projects
by Department | Proposal
Guidelines | LTLC
Homepage
BEYOND IMPLEMENTATION -- THE ANIMATION OF COMPUTER ALGORITHMS
I propose that the process
of producing computer animations of search algorithms is "learning
by doing" in a rich sense. This project experimented with
the way I teach and students learn the Jump Search algorithm in
the computer science course Algorithms (COMP 215). In this preliminary
study, I hypothesized that students who animated the Jump Search
algorithm using various forms of shapes, color and actions would
understand the algorithm in a more rigorous manner than if they
solely implemented the algorithm to perform the search in a computer
language (e.g., Java or C++). Three labs introduced the animation
package to the students prior to the assignment requiring an animation
of the Jump Search algorithm. Two of the six student demonstrations
were quality productions. A negative result emerged from student
written evaluations. Evaluations did not confirm the proposed
enriched learning experience from animating Jump Search, specifically
students did not find that the process of animation led to significant
increases in understanding beyond that grasped when writing the
computer algorithm. In addition, only two of seven final presentations
chose to include algorithm animations in their final oral presentations.
As a next step, I plan to increase the number of examples from
one to three and more rigorously assess student involvement in
and reaction to the process of animation.
A.
Pedagogical Goals
find and evaluate a software package which provides programmers
with various ways to color and animate computer algorithms
teach students to effectively use visual aids when presenting
teach students how to program their own animations
informally assess student reaction to and results from animating
the Jump Search algorithm
B.
Strategies
(1) download, evaluate, and learn an algorithm animation package
(2) write labs leading to a project description requiring students
to animate the Jump Search algorithm
(3) without requiring animations in oral presentations, assess
whether students use animations in their final project presentations
(1) Download, evaluate, and learn an algorithm animation package
As a direct result of the Faculty Technology Workshop on "Visual
Elements in Teaching and Learning" (May 21-22, 1998), I learned
that there are a number of successful visualization tools available
that I am not presently using in my teaching. In particular, I
learned and evaluated the Unix-based set of libraries called Polka
written by John Stasko at Georgia Tech. (Note: Unix is neither
Windows nor the MacOS, but a third operating system for networked
machines like our local mail servers: acunix, tempest and phoenix).
(2) write labs leading to a project description requiring students
to animate the Jump Search algorithm Once I personally learned
how to use Polka, I wrote three computer labs to teach the students
how to use the library of animation options, for example: How
to draw an array of cells on the screen and alter the color of
each cell depending on the current status of the algorithm. One
of these lab handouts will be included in the demo section of
Polka's next release (see Dissemination below). A project description
was written asking students to "animate the Jump Search algorithm."
Students worked in teams of two on their animations of this algorithm.
In brief, the Jump Search algorithm searches for a unique number
in an increasing sorted array of numbers:
You need to FIND: 34
ARRAY:
-4 23 29 30 31 34 47
Using the Jump Search algorithm effectively involves "jumping
into the array" (e.g., into the middle at 30) to avoid searching
unnecessary cells in the array. Students were given five days
to complete a demonstration of Jump Search using the Polka libraries.
(3) without requiring animations in oral presentations, assess
whether students use animations in their final project presentations
As part of our new department standards, all students in 200-
and 300-level math and computer science courses must give oral
presentations. The format for the presentations vary from a small
briefing to a professional presentation at a conference. In this
course, students were required to prepare and deliver an oral
presentation of their work like they would give at a large conference.
Presentations were given in the Science Center auditorium. The
strategy for requiring this context was to require students to
consider optimal ways to portray and teach the algorithms they
were studying for their final projects.
C.
Assessment
(1) Peer Reviews and Open Discussion
(2) Student Written Evaluations
(3) Observance of student use of animations in their own presentations
The "learning by doing" pioneer Seymour Papert of MIT
influenced my early research. In computer science "doing"
is natural to most students; if guided correctly, then the student
energy of doing (which we kind of get for free) can be focused
on learning. In this project, I wanted students to program their
own algorithm animations, even if only simple ones. Building animations
requires a level of rigor beyond that required when watching and
studying those made by others. I proposed that the process of
animating algorithms is hands- on practice with computational
analysis. In short, students would understand the flow of control
and appreciate the complexities of an algorithm better if they
animated an algorithm's execution. This has implications for software
engineering pedagogy which are beyond the context of this proposal,
but the ideas of which begin here.
(1) Peer Reviews and Open Discussion Peer reviews, classroom discussion
and student written evaluations did not confirm the hypothesis.
Although student evaluations included positive comments such as:
"Writing animation code along with algorithm code forced
me to think, (which is) a good thing!"
More common were comments indicating that the process of animation
did not signicantly lend to a richer appreciation of the algorithm:
"A well done graphical representation of an algorithm can
be just as effective as hours of studying only the pseudocode.
While an animation program like Polka is great to show someone
just learning an algorithm, it does not seem like creating the
animation yourself serves to teach a greater understanding of
the algorithm to the programmer."
Only two of ten student evaluations spoke to a positive effect.
In addition, only two of seven student final presentations chose
to include algorithm animations in their final oral presentations.
I consider the lack of algorithm animations in student presentations
to be of less concern since three of the five talks that did not
include animations would have benefited from a brief use of that
technique. Student presenters agreed with this peer and instructor
feedback. More challenging to future work is a lack of evidence
that students understand an algorithm at a richer level after
producing an animation of its execution. Clearly, student comments
acknowledged that seeing animations help when first learning an
algorithm, however this project sought a more ambitious goal of
improving learning by engaging students in a learning by doing
task. A particular outstanding task is how to best measure the
question in hand. As established in the literature for many disciplines,
encouraging the transfer of knowledge such as sought in the oral
presentations is a difficult quest. In addition, measuring "enriched
learning" requires a continued focus on the pedagogy in the
midst of a steep technological ramp for both student and instructor.
D.
Dissemination
The course electronic syllabus can be reached on the web at:
http://cs.wheatonma.edu/mleblanc/215/
My revision of John Stasko[pi]s introductory example, simple,
in the Polka algorithm animation tool set will be included in
the next release of Polka. Called simple2, my lab annotates John[pi]s
code and adds what I considered to be some of the "must know
early" features. An accompanying handout has been prepared
to introduce students to the Xwindows tool set that is required
to produce animations. I have choosen not to make my other labs
publically available on the web at this time as they require another
iteration of the course.
The interdisciplinary connection with biology that emerged in
this course (ala, DNA searching) has potential for a future paper,
although that was not proposed as part of this work. The techniques
learned in Algorithms has carried over into my January research
of searching the genome of the first completely sequenced multi-cellular
organism, C. elegans (a worm). Such work continues to influence
our thinking on the visualization of information, including the
animation of search algorithms.
Last updated
on 1/26/99; 2:33:38 PM
Send questions about this page to: Mark
LeBlanc
or contact Wheaton
College.