Algorithm Visualization through Animation and Role Plays Jarmo Rantakokko

The motivation and expectations for using visualization of algorithms in the education is that the students will grasp and understand the abstract algorithms and concepts used in computer science courses easier, i.e. the algorithms will be more concrete for the students. Visualization is a useful technique for learning in any computer science course. In this paper, we focus on parallel computing and in particular on parallel sorting algorithms (Grama et al., 2003). Parallel computing is intrinsically more difficult than sequential computing, as it requires coordination of the parallel processes which can be very problematic to conceptualize. We want the students to understand how the processors work together in an algorithm and how they interact. As the students can see how the processors run simultaneously in parallel this will illustrate important concepts such as processor load balance, synchronization, and communication. The use of pictures and visualizations as educational aids is accepted practice. Textbooks are filled with pictures and teachers often diagram concepts on the blackboard to assist an explanation. Animation includes one more dimension, explaining and illustrating the dynamic properties of an algorithm. Role plays go even further by actively involving the learners within the algorithm. Furthermore, animations and role plays bring a variety into teaching that is usually missing. There are different learning styles, i.e. Visual (V), Aural (A), Read/Write (R), and Kinesthetic (K) (Fleming, 2001). While traditional teaching and lecturing are more directed towards the Aural and Read/Write learners, animations are more directed towards the Visual learners and role plays towards Kinesthetic learners. Moreover, computer systems students have some preference to the visual learning style (Fleming, 2001). In this paper, we discuss how students perceive these two visualization techniques, animations and role plays, for understanding abstract algorithms in parallel computing. We have used both techniques in the same course and then let students answer questions anonymously in writing. The students have also taken the VARK-test (Fleming, 2001) to correlate the answers with their learning style. Computer animations are commonly used in traditional computer science courses, see e.g. (Naps et al., 2003a,b; Stasko et al., 1998), but little efforts have been made in parallel computing. Most visualization techniques are used by researchers for analyzing the parallel performance of their programs (Pancake, 1998). For educational purposes a group at the Georgia Institute of Technology led by John Stasko has developed the software package Polka for creating animations of parallel algorithms (Stasko et al., 1991, 1998). We have used this package to develop our animations. Another system that supports visualization of concurrent events is the Pavane system (Roman et al., 1992). A historically interesting note of using role plays is the experiment set up by Lewis F. Richardson in 1922 for computing a weather prediction (Richardson, 1922), long before the existence of parallel computers. Richardson simulates a parallel algorithm by letting individual workers do partial numerical calculations in parallel, as in todays parallel computers.