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.