Academia.eduAcademia.edu

Low-Fidelity Algorithm Visualization

2002, Journal of Visual Languages & Computing

Journal of Visual Languages and Computing (2002) 13, 449^470 doi:10.1006/S1045-926X(02)00014-9 available online at http://www.idealibrary.com on Low-FidelityAlgorithmVisualization Christopher D. Hundhausen* and Sarah A. Douglasw *Laboratory for Interactive LearningTechnologies, Information and Computer Sciences Department, University of Hawai’i, Honolulu, HI 96822, U.S.A., E-mail: hundhaus@hawaii.edu and wHuman^Computer Interaction Lab, Computerand Information Science Department, University of Oregon, Eugene, OR 97403^1202, U.S.A. Received10 October 2000; revised15 May 2001; accepted 30 November 2001 Computer science educators have traditionally used algorithm visualization (AV) software to create graphical representations of algorithms for use as visual aids in lectures, or as the basis for interactive labs.Typically, such visualizations are high-¢delity in the sense that (a) they depict the target algorithm for arbitrary input, and (b) they tend to have the polished look of textbook ¢gures. In contrast, low-¢delity visualizations illustrate the target algorithm for a few, carefully chosen input data sets, and tend to have a sketched, unpolished appearance. Drawing on ethnographic ¢eld studies of a junior-level undergraduate algorithms course, we motivate the use of low-¢delity AV technology as the basis for an alternative learning paradigm in which students construct their own visualizations, and then present those visualizations to their instructor and peers for feedback and discussion. To explore the design space of low-¢delityAV technology, we present SALSA ( Spatial ALgorithmic Language for StoryboArding) and ALVIS (ALgorithm VIsualization Storyboarder), a prototype end-user language and system ¢rmly rooted in empirical studies in which students constructed and presented visualizations made out of simple art supplies. Our prototype end-user language and system pioneer a novel technique for programming of visualizations based on spatial relations, and a novel presentation interface that supports human discussions about algorithms by enabling reverse execution and dynamic mark-up and modi¢cation. Moreover, the prototype provides an ideal foundation for what we see as the algorithms classroom of the future: the interactive ‘algorithms studio’. r 2002 Elsevier Science Ltd. All rights reserved. 1. Introduction ALGORITHM VISUALIZATION (AV) software supports the construction and interactive exploration of visual representations of computer algorithms, e.g. [1^5].Traditionally, computer science instructors have used the software to construct visualizations that are later used either as visual aids in lectures, e.g. [6], or as the basis for interactive labs, e.g. [3]. Despite the enthusiasm and high expectations of AV software developers, a review of 21 experimental evaluations ([7, Sections 2 and 3], [8], [9, Chapters 4^9], [10], [11, I^VIII], [12^14]) casts doubt on the software’s pedagogical bene¢ts. Indeed, only 13 of those experiments ([7, Sections 2 and 3], [10], [9 Chapters 6, 7, 9], [11, I, II, IV,V,VII,VIII], [12]) showed that some aspect of AV technology or its pedagogical application signi¢cantly impacted learning outcomes. 1045-926X/02/ $-see front matter r 2002 Elsevier Science Ltd. All rights reserved. 450 C. D. HUNDHAUSEN AND S. A. DOUGLAS Further analysis of these experiments suggests that they fall into two broad categories based on the factors they identify as critical to the experimental evaluation of AV. Lawrence [9, Chapters 4, 5, 7, 8], Stasko et al. [8], Gurka [14], and Hansen et al. [11, VI^VIII] varied representational characteristics of the learning materials, including (a) text versus animation, (b) text-¢rst or animation-¢rst and (c) various graphical attributes of animations. By contrast, a second group of studies ([7, Sections 2 and 3], [10], [11, I^V], [13], [9, Chapters 6 and 9]) varied level of learner involvement. In addition to having learners passively view an animation, these studies involved learners more actively by having them (a) construct their own data sets, (b) answer strategically chosen questions about the algorithm; (c) make predictions regarding future algorithm behavior or (d) program the algorithm. If one considers the results of the experiments vis-"a-vis these two categories (Figure 1), a notable trend emerges: experiments that manipulate learners’ level of involvement have consistently yielded signi¢cant results, whereas experiments that have manipulated representation have not. This suggests that what learners do, not what they see, may have the greatest impact on learningFan observation that well accords with constructivist learning theory (see, e.g. [15]). (For an expanded meta-analysis of these experiments, including an assessment of the extent to which they support alternative learning theories, see [16]). Given this observation, it makes sense to consider pedagogical approaches that get students maximally involved in the process of visualizing an algorithm. To that end, Stasko [5] advocates the use of ‘visualization assignments’ in which students perform end-user programming by using AV software to construct their own visualizations of the algorithms under study. Inspired by social constructivist learning theory [17], which views AVsoftware as pedagogically valuable insofar as it enables students to participate in a course in ways that increasingly resemble the ways in which teachers participate, we became interested in a teaching approach that takes visualization assignments one step further by having students not only construct their own visualizations, but also present their visualizations to their instructor and peers for feedback and discussion [18, Chapter 4]. Notice that, in this approach, students assume two tasks that closely resemble those typically performed only by teachers: (1) they become end-user programmers by constructing their own visualizations for classroom presentation and (2) they become end-user discussants by using their end-user programs (algorithm visualizations) as a basis for talking about algorithms with others. To explore the practical costs and bene¢ts of this approach, we conducted a pair of ethnographic ¢eld studies in consecutive o¡erings of a junior-level undergraduate algorithms course that included visualization construction and presentation assignments. Our ¢ndings have led us not only to endorse this teaching approach as an e¡ective way 33% Representation Learner Involvement 83% 0 2 4 6 8 10 1 2 1 4 16 1 8 Experimental results Figure 1. Results of AV e¡ectiveness experiments broadly classi¢ed by their independent variables. ( ) Signi¢cant result; ( ) Nonsigni¢cant result LOW-FIDELITYALGORITHM VISUALIZATION 451 of getting students involved in and excited about algorithms, but also to advocate a fundamental redesign of traditional AV software so that it better supports the construction and presentation of algorithm visualizations by student end-users. Speci¢cally, our ¢ndings point out a key distinction between high- and low-¢delity visualizations. In our ¢rst ¢eld study, we had students use conventional AV software to construct high-¢delity visualizations, which (a) are capable of illustrating the target algorithm for arbitrary input, and (b) tend to have the polished look of textbook ¢gures. By contrast, in our second study, we had students use simple art supplies (e.g. construction paper, pens, scissors) to construct low-¢delity visualizations, which do not necessarily illustrate the target algorithm for arbitrary input, and tend to have a sketched, unpolished look.We found that, compared to the construction and presentation of high-¢delity visualizations, the construction and presentation of low-¢delity visualizations engages students in activities and discussions that are much more relevant to an undergraduate algorithms course. In this article, we present a novel, low-¢delity approach to integrating AV technology into an undergraduate algorithms course.We begin by describing a pair of ethnographic ¢eld studies that both motivate, and inform, our approach.To explore the design space of low-¢delity AV technology, we next present a prototype end-user language and system ¢rmly grounded both in our ethnographic studies, and in prior detailed studies of how students construct and execute low-¢delity visualizations made out of simple art supplies [19, 20].We then step back and consider the speci¢c ways in which our prototype di¡ers from extant AV systems.We conclude by discussing future directions for low-¢delityAV technology, including our vision of the interactive ‘algorithms studio’: a novel teaching approach that uses low-¢delity AV technology to implement a studio-based model of algorithms instruction. 2. Ethnographic Studies The redesign of AV software advocated in this article is motivated by a pair of ethnographic ¢eld studies we conducted in consecutive o¡erings of a junior-level undergraduate algorithms course at the University of Oregon [18, Chapter 4].These 10-week courses revolved around three, 50 min lectures per week, and one help session per week, led by the teaching assistant.The book used in these courses was the standard Cormen, Leiserson, and Rivest [21] text. Thirty-eight computer science majors were enrolled in the ¢rst of these CIS 315 courses; 49 were enrolled in the second. Students ranged in age from 20 to over 40, with most of them closer to 20. Most students in the courses were male; ¢ve females were enrolled in each of the two courses. The course instructor was a tenured professor who had been teaching the algorithms course at the university for over 12 years. In addition to holding regular o⁄ce hours, the instructor gave nearly all of the course lectures, did some of the grading, and led in some of the weekly discussion sections. A teaching assistant for the course held weekly o⁄ce hours, did most of the grading, led most of the weekly discussion sections, and occasionally gave lectures when the instructor was out of town. For an assignment worth roughly 20% of the course grade, students were required to construct their own visualizations of one of the divide-and-conquer, greedy, dynamic programming, or graph algorithms they had studied, and then to present their visualizations to their classmates and instructor during specially scheduled presentation sessions. 452 C. D. HUNDHAUSEN AND S. A. DOUGLAS In the remainder of this section, we describe the ¢eld techniques we employed to study the use of algorithm visualization technology in these courses; we present our key results in each of our two studies; and we consider their implications for the design of algorithm visualization technology. 2.1. Field Techniques In our study, the ¢rst author played the dual-role ofstudentobserver and (volunteer) teaching assistant for algorithm animation. As student observer, he sat in on lectures and took notes; interacted with students before and after lectures, and occasionally when he ran into them in the computer science department; and arranged to observe and work with certain groups of students as they worked on animation assignments in the undergraduate computer lab. As the teaching assistant for algorithm animation, the ¢rst author collaborated with the instructor in the development of the algorithm animation curriculum; set up and maintained the software used for the algorithm animation assignments; gave introductory lectures on algorithm animation and the course animation assignments; made himself available via e-mail, and before and after class, for questions regarding algorithm animation; and interacted regularly with the instructor regarding a variety of issues surrounding the animation assignments. In this dual-role, the ¢rst author made use of seven di¡erent ethnographic ¢eld techniques (see, e.g. [22]). First, he made extensive use of participant observation to participate in and observe the algorithm animation-related activities of both students and the instructor. Second, he used two di¡erent kinds of interviewing techniques to elicit informants’ perceptions and experiences. In his day-to-day interaction with students and the instructor, he tended to ask a lot of questions on an informal basis (informal interviewing). On several occasions, he followed up on the important themes and issues that emerged from those informal inquiries by audiotaping (and subsequently transcribing and analyzing) semistructured interviews with students and the instructor.Third, during Study I, he administered two brief on-line questionnaires to the members of a volunteer mailing list.These questionnaires elicited students’ general impressions regarding the algorithm animation assignment, what activities they performed, and estimates of the amount of time spent on each activity. Fourth, he took extensive ¢eldnotes during both terms of the ¢eldwork, both during lectures, and after his discussions with the instructor and student informants. Fifth, he audio- or videotaped (and subsequently transcribed and analyzed) all of the storyboard and ¢nal animation presentation sessions that were held during both terms of the ¢eldwork. Sixth, he collected and analyzed artifactsFboth the Samba animations, and the low-¢delity storyboards that students handed in. Finally, he collected and analyzed diaries that students were required to hand in as part of the assignment.Their diaries documented what they did for the animation assignment, what problems they encountered, and how much time they spent. 2.2. Ethnographic Study I: High-Fidelity Visualizations In the ¢rst of our ethnographic studies, students used the Samba algorithm animation package [5] to construct high-¢delity visualizations that (a) were capable of illustrating the LOW-FIDELITYALGORITHM VISUALIZATION 453 algorithm for arbitrary input, and (b) tended to have the polished appearance and precision of textbook ¢gures, owing to the fact that they were generated as a byproduct of algorithm execution. To construct such visualizations with Samba, students began by implementing their target algorithms in C++. Next, they wrote general ‘animator’ classes whose methods were capable of drawing and updating the visualization display (using Samba routines) for any input data set. Third, they annotated algorithm source code with these methods at points of ‘interesting events’ [1]. For example, in a sorting algorithm, points at which data items are compared and exchanged might be considered interesting. Finally, they engaged in an iterative process of re¢ning and debugging their visualizations. This process involved (a) compiling and executing their algorithms; (b) noting any problems in the resulting visualization, and (c) modifying their C++ code to ¢x the problems. To present visualizations in Samba, students used the tape recorder-style interface illustrated in Figure 2. The interface allowed them to start, pause, and step through the animation (one frame at a time), and to adjust the execution speed. An additional set of controls in each animation window (not shown) allowed them to zoom and pan animation views. In this ¢rst study, three key ¢ndings are noteworthy. First, students spent 33.2 h on average (n ¼ 20) constructing and re¢ning a single visualization.They spent most of that time steeped in low-level graphics programmingFfor example, writing general-purpose graphics routines capable of laying out and updating their visualizations (using Cartesian coordinates) for any reasonable set of input data. Second, in students’ subsequent presentations, their visualizations tended to stimulate discussions about implementation detailsFfor example, how a particular aspect of a visualization was implemented. Third, in response to questions and feedback from the audience, students often wanted to back up and re-present parts of their visualizations, or to dynamically mark-up and modify them. However, conventional AV software like Samba is not designed to support interactive presentations in this way. Indeed, modifying a high-¢delity visualization requires one to edit, recompile, and re-execute low-level source code, which is not feasible within the scope of an interactive presentation. 2.3. Ethnographic Study II: Low-Fidelity Visualizations These observations led us to change the visualization assignments signi¢cantly for the subsequent o¡ering of the course. In particular, students were required to use simple art supplies (e.g. pens, paper, scissors, transparencies) to construct and present low-¢delity visualizations that (a) illustrated the target algorithm for just a few input data sets and (b) tended to have an unpolished, sketched appearance, owing to the fact that they were generated by hand. In prior work [19,20], we have called such low-¢delity visualizations storyboards. Figure 2. Samba’s ‘tape recorder’ interface 454 C. D. HUNDHAUSEN AND S. A. DOUGLAS In this second study, three key ¢ndings stand out. First, students spent 6.2 h on average (n ¼ 20) constructing and re¢ning a single visualization storyboard. For most of that time, students focused on understanding the target algorithm’s procedural behavior, and how they might best communicate it through a visualization. Second, rather than stimulating discussions about implementation details, their storyboards tended to mediate discussions about the underlying algorithm, and about how the visualizations might bring out its behavior more clearly. In particular, discussions surrounding four key questions emerged: * * * * What aspects of the algorithm should be illustrated and elided? How should those aspects be visually represented? What are appropriate sample input data? How should multiple visualization views be coordinated? Third, students could readily go back and re-present sections of their visualizations, as well as mark-up and dynamically modify them, in response to audience questions and feedback. As a result, presentations tended to engage the audience more actively in interactive discussions. 2.4. Discussion: From High- to Low-FidelityAlgorithmVisualization Our study ¢ndings point out an important distinction between what we have labeled low- and high-¢delity visualizations.We believe that, rather than being binary (high or low), visualization ¢delity can actually be seen as a continuum. On the lowest end of this spectrum, visualizations resemble those that one might quickly sketch on a napkin at a cocktail party. Such low-¢delity visualizations are highly unpolished, and illustrate the target algorithm for exactly one set of input data. While uncommon in the domain of algorithm visualization, several end-user sketching systems have been developed for quickly creating low-¢delity visualizations in other domains. For example, Landay and Myers’ SILK [23] enables end-users to sketch low-¢delity user interface prototypes, and Lin et al.’s DENIM [24] supports the creation of low-¢delity website prototypes by sketching. By contrast, on the highest end of the spectrum, visualizations have the highly polished look of textbook ¢gures, and are capable of illustrating the target algorithm for any reasonable input. For example, Naps’s GAIGS system [3] automatically produces high-¢delity data structure drawings that closely resemble those that appear in textbooks. Likewise, Brown’s BALSA animation system was used to generate high-¢delity visualizations that appear as ¢gures in some versions of Sedgewick’s algorithms textbook [25]. In between the ‘low’- and ‘high’- ¢delity extremes, one can imagine many possible variations. For example, an illustrator commonly creates highly polished textbook ¢gures for speci¢c input data sets. Similarly, non-artistic students and instructors commonly create less-polished general-input algorithm animations using an algorithm animation package like Samba [5]. In addition to suggesting this visualization ¢delity continuum, our studies furnish three reasons why constructing and presenting low-¢delity visualizations constitutes a more productive learning experience in an undergraduate algorithms course than constructing and presenting high-¢delity visualizations. First, low-¢delity visualizations not only take far less time to construct, but also keep students more focused on topics relevant to an LOW-FIDELITYALGORITHM VISUALIZATION 455 undergraduate algorithms course: algorithm concepts, rather than low-level implementation details. Second, in student presentations, low-¢delity visualizations stimulate more relevant discussions that focus on algorithms, rather than on implementation details. Finally, low-¢delity visualizations are superior in interactive presentations, since they can be backed up and replayed at any point, and even marked-up and modi¢ed on the spot, thus enabling presenters to respond more dynamically to their audience. Finally, in identifying the educational advantages of low-¢delity AV technology, our study ¢ndings motivate further research into the low-¢delity AV approach. For AV technologists, one key research topic has to do with the design of a computer-based environment. In our ethnographic ¢eldwork, we had students construct low-¢delity visualizations out of simple art supplies. We view this as the ‘paradigm case’ for low-¢delity visualization technology. Indeed, our observations suggest that people appear to be familiar and comfortable with art supplies, enabling them to express their visualizations of algorithms in an extremely natural way. At the same time, we believe that there is good reason to pursue a computer-based environment modeled after art supplies. For example, rather than having to discard a visualization storyboard that has been marked up during the course of a presentation, a presenter of a computer-based storyboard can re-use the storyboard by simply ‘erasing’any annotations. Likewise, rather than having to create a new visualization storyboard, by hand, for each input data set of interest, users of a computer-based environment can create one visualization storyboard, and simply tweak the data values of the objects. In short, we believe that the £exibility and dynamism of the computer, if leveraged properly, can lead to a computer-based low-¢delity visualization environment that, as compared to conventional art supplies, is easier to use and saves time. An important research question thus becomes,‘If we take our study ¢ndings with simple art supplies as constraints on the design space of low-¢delityAV technology, what kind of computerbased end-user AV software emerges?’ We present research into that question in the following section. 3. Prototype Language and System To explore the design space of low-¢delityAV technology circumscribed by our ¢ndings, we have developed a prototype end-user language and system that supports the student construction and presentation of low-¢delity visualizations.We begin this section by deriving the design requirements for the system from our empirical research. Next, we overview our prototype’s key features and functionality. To provide a feel for our prototype in use, we then present a detailed example. We conclude by juxtaposing our prototype with related work. For a more comprehensive treatment of our prototype system, see [18, Chapter 7]. 3.1. Deriving Design Requirements A fundamental objective or our prototype implementation was to root its design ¢rmly in empirical data. Pertinent observations from our ethnographic studies, as well as from our prior detailed studies of how students construct algorithm visualizations out of simple art supplies [20,26], provide a solid empirical foundation for the design of our 456 C. D. HUNDHAUSEN AND S. A. DOUGLAS prototype. In our ethnographic ¢eldwork, we gathered 40 low-¢delity storyboards that were constructed using conventional art supplies, including transparencies, pens, and paper.The following generalizations can be made regarding their content: * * * The storyboards consisted of groups of movable, objects of arbitrary shape (but most often boxes, circles and lines) containing sketched graphics; regions of the display and locations in the display were also signi¢cant. Objects in storyboards were frequently arranged according to one of three general layout disciplines: grids, trees and graphs. The most common kind of animation was simple movement from one point to another; pointing (with ¢ngers) and highlighting (circling or changing color) were also common. Occasionally, multiple objects were animated concurrently. These observations motivate our ¢rst design requirement: R1: Users must be able to create, systematically lay out, and animate simple objects containing sketched graphics. With respect to the process of visualization construction, we made the following observations in our previous studies of how humans construct low-¢delity visualizations out of art supplies [20,26]: * * Storyboard designers create objects by simply cutting them out and/or sketching them, and placing them on the page. Storyboard designers never size, place or move objects according to Cartesian coordinates. Rather, objects are invariably sized and placed relative to other objects that have already been placed in a storyboard. These observations motivate our second and third design requirements: R2: Users must be able to construct storyboard objects by cutting and sketching; they must be able to position objects by direct placement. R3: Users must be able to create storyboards using spatial relations, not Cartesian coordinates. Finally, with respect to the process of visualization execution and presentation, observations made both in our ethnographic studies, and in our prior empirical studies [20, 26], suggest the following: * * Rather than referring to program source code or pseudocode, storyboard presenters tend to execute their storyboards by paying close attention to, and hence maintaining, important spatial relations among storyboard objects. For example, rather than maintaining a numeric looping variable, storyboard designers might stop looping when an arrow advances to the right of a row of boxes. Storyboard presenters provide verbal play-by-play narration as they run their storyboards. In the process, they frequently point to storyboard objects, and occasionally LOW-FIDELITYALGORITHM VISUALIZATION * * 457 mark-up their storyboards with a pen. The audience often interrupts presentations with comments or questions.To clarify their comments and questions, they, too, point to and mark up the storyboard. In response to audience comments and questions, presenters pause their storyboards, or even fast-forward or rewind them to other points of interest. Audience suggestions often lead to on-the-spot modi¢cations of the storyboardFfor example, changing a color scheme, adding a label, or altering a set of input data. These observations motivate the following two requirements, which round out our list: R4: The system must enable one to program an animation by using spatial logic to model algorithmic logic. R5: The system must enable users to present their storyboards interactively. This entails an ability to execute storyboards in both directions; to rewind and fast-forward storyboards to points of interest; and to point to, mark up, and modify storyboards as they are being presented. 3.2. Overview of Language and System The requirements just outlined circumscribe the design space for a new breed of low¢delity AV technology. To explore that design space, we have developed a prototype language and system for creating and presenting low-¢delity algorithm visualizations. The foundation of our prototype is SALSA (Spatial Algorithmic Language for StoryboArding), a high-level, interpreted language for programming low-¢delity storyboards. Whereas conventional high-¢delityAV technology requires one to program a visualization by specifying explicit mappings between an underlying ‘driver’ program and the visualization, SALSA enables one to specify low-¢delity visualizations that drive themselves; the notion of a ‘driver’algorithm is jettisoned altogether. In order to support visualizations that drive themselves, SALSA enables the layout and logic of a visualization to be speci¢ed in terms of its spatialityFthat is, in terms of the spatial relations (e.g. above, right-of, in) among objects in the visualization. The SALSA language is compact, containing just three data types and 12 commands. SALSA’s three data types model the core elements of the art supply storyboards observed in the empirical studies discussed in the previous sections: * * Cutout.This is a computer version of a construction paper cutout. It can be thought of as a movable scrap of construction paper of arbitrary shape on which graphics are sketched. Position. This data type represents an x, y location within a storyboard. Note that, in accordance with R3 above, SALSA users never have to deal directly with Cartesian coordinates. They can create positions and lay out objects by direct manipulation, as we shall explain shortly. 458 * C. D. HUNDHAUSEN AND S. A. DOUGLAS S-struct. A spatial structure (s-struct for short) is a closed spatial region in which a set of cutouts can be systematically arranged according to a particular spatial layout pattern. The prototype implementation of SALSA supports just one s-struct: grids. SALSA’s command set includes create, place and delete commands for creating, placing and deleting storyboard elements; an if^then^else statement for conditional execution; while and for^each statements for iteration; and move, £ash, resize, and do^concurrent statements for animating cutouts. The second key component of the prototype is ALVIS (ALgorithm VIsualization Storyboarder), an interactive, direct manipulation front-end interface for programming in SALSA. Figure 3(a) presents a snapshot of the ALVIS environment, which consists of three main regions: * * * Script View (left). This view displays the SALSA script presently being explored; the arrow on the left-hand side denotes the line at which the script is presently haltedFthe ‘insertion point’ for editing. Storyboard View (upper right).This view displays the storyboard generated by the currently displayed script.The Storyboard View is always synchronized with the Script View. In other words, it always re£ects the execution of the SALSA script up to the current insertion point marked by the arrow. Created Objects Palette (lower right). This view contains an icon representing each cutout, position, and grid that has been created thus far. The ALVIS environment strives to make constructing a SALSA storyboard as easy as constructing a homemade storyboard out of simple art supplies.To do so, its conceptual model is ¢rmly rooted in the physical metaphor of ‘art supply’ storyboard construction. An important component of this metaphor is the concept of cutouts (or patches; see [27]): scraps of virtual construction paper that may be cut out and drawn on, just like real Figure 3. The ALVIS interactive environment: (a) snapshot of a session with ALVIS; (b) cutout graphics editor; (c) execution control interface; (d) presentation interface 459 LOW-FIDELITYALGORITHM VISUALIZATION construction paper. In ALVIS, end-users create storyboards by using a graphics editor [Figure 1(b)] to cut out and sketch cutouts, which they lay out in the Storyboard View by direct manipulation. They then specify, either by direct manipulation or by directly typing in SALSA commands, how the cutouts are to be animated over time. Likewise, ALVIS strives to make presenting a SALSA storyboard to an audience as easy and £exible as presenting an‘art supply’storyboard.To that end, ALVIS’s presentation interface supports four features that are taken for granted in‘art supply’ presentations, but that are notably absent in conventional AV technology. First, using ALVIS’s execution interface [Figure 1(c)], a presenter may reverse the direction of storyboard execution in response to audience questions and comments. Second, ALVIS provides a conspicuous ‘presentation pointer’ [fourth tool from left in Figure 1(d)] with which the presenter and audience members may point to objects in the storyboard as it is executing.Third, ALVIS includes a‘mark up pen’ [third tool from left in Figure 3(d)] with which the presenter and audience members may dynamically annotate the storyboard as it is executing. Finally, presenters and audience members may dynamically modify a storyboard as it is executing by simply inserting SALSA commands at the current insertion point in the script. 3.3. Example Use of Language and System Perhaps the best way to provide a feel for the features and functionality of SALSA and ALVIS is through an illustrative example. In this section, we use SALSA and ALVIS to create and present the ‘football’storyboard (see Figure 4) of the bubble sort algorithm we observed in prior empirical studies [20,26]. The ‘football’storyboard models the bubble sort algorithm in terms of a game of American football. Elements to be sorted are represented as football players whose varying weights (written under each player in Figure 4) represent element magnitudes. At the beginning of the game, the players are lined up in a row.The referee then tosses the ball to the left-most player in the line, who becomes the ball carrier.The object of the game is to‘score’ by advancing the ball to the end of the line of unsorted players. If the ball carrier is heavier than the player next in line, then the ball carrier simply tackles the next player in line, thereby switching places with him. If, on the other hand, the ball carrier is lighter than the player next in line, then the ball carrier is stopped in his tracks, fumbling the ball to the next player in line. This process of ball advancement continues until the ball reaches the last player in the line of unsorted players. Having found his rightful place 300 250 200 150 Goal Referee Figure 4. The ‘Football Bubble Sort’storyboard 460 C. D. HUNDHAUSEN AND S. A. DOUGLAS in the line of players, that last player with the ball tosses the ball back to the referee. A pass of the algorithm’s outer loop thus completes. If, at this point, there are still players out of order, the referee tosses the ball to the ¢rst player in line, and another pass of the algorithm’s outer loop begins. 3.3.1. Creating the Storyboard Elements We begin by creating the cutouts that appear in Figure 4: four players, a football, a referee and a goal post.With respect to the football players, our strategy is to create one ‘prototype’ player, and then to clone that player to create the other three players.To create the prototype player, we select Cutouty from the Create menu, which brings up the Create Cutout dialog box [see Figure 5(a)].We name the cutout ‘player1,’and use the Cutout Graphics Editor [Figure 3(b)] to create its graphics in the ¢le ‘player.cut’: a square scrap of construction paper with a football player stick ¢gure sketched on it. In addition, to indicate that this player weighs 300 pounds, we store the value ‘300’ in the cutout’s data attribute.We decide not to set any other attributes explicitly, accepting the defaults. When the Create Cutout dialog box is dismissed, ALVIS inserts the following SALSA create statement into the SALSAScript View: Create cutout player1 –graphic rep ‘player.cut’ –data ‘300’ In addition, the player1 cutout appears in the Created Objects Palette, and the execution arrow (in the SALSAScript View) is advanced to the next line, indicating that the create statement has been executed. We now proceed to clone player1 three times. For each cloning, we ¢rst select the player1 icon in the Created Objects Palette, and then choose Cloney from the Create menu. This causes the Create Cutout dialog box to appear, with all attribute settings matching those of player1. In each case, we change the name (to ‘player2’, ‘player3’, and ‘player4’, respectively), and the data (to ‘250’, ‘200’, and ‘150’, respectively), while leaving all other attributes alone. After dismissing the Create Cutout dialog box each time, a new create statement appears in the scriptFfor example, create cutout player2 as clone of player1 –data ‘250’ Figure 5. Dialog boxes for creating SALSA objects: (a) Create Cutout dialog box; (b) CreateGrid dialog box LOW-FIDELITYALGORITHM VISUALIZATION 461 In addition, the new cutout appears in the Created Objects Palette, and the execution arrow advances to the next line.We proceed to create the football, referee and goal post in the same way. 3.3. 2. Placing the Storyboard Elements The next step is to place the cutouts in the storyboard. In order to lay the players out in a row, we use a grid s-struct, which we create by choosing Gridy from the Create menu and then ¢lling in the Create Grid dialog box [see Figure 5(b)]. We name the grid a, and give it one row and four columns, with a cell height and width corresponding to the height and width of player1.We accept all other default attributes, and click on the ‘Create’ button to create the grid. We now place all of the objects we have created into the storyboard. First, we drag and drop the grid to an acceptable location in the middle of the storyboard; the corresponding place statement appears in the script, with the execution arrow advancing to the next line.With the grid in place, it is straightforward to position the players at the grid points: place place place place player1 player2 player3 player4 at at at at position position position position 1 2 3 4 of of of of a a a a Finally, we drag and drop the referee to a reasonable place below the row of football players; we drag and drop the football to the left center position of the referee; and we drag and drop the goal to a position to the right of the line of football players. Figure 3(a) shows the ALVIS environment after all place statements have been executed. 3.3.3. Programming the Spatial Logic We are now set to do the SALSA programming necessary to animate the storyboard. ALVIS users may program much of this code through a combination of dialog box ¢ll-in and direct manipulation. However, in the presentation that follows, we will focus on the SALSA code itself in order to demonstrate the expressiveness of the language. As each player reaches his rightful place in the line, we want to turn his outline color to green. Since we have set the outline color of the goal post (the right-most cutout in the storyboard) to green, we know that when the outline color of the cutout immediately to the right of the ball carrier is green, the ball carrier has reached the end of the line, and we are done with a pass of bubble sort’s inner loop. In SALSA, we may formulate this as a while loop: while outlinecolor of cutout right-of cutout touching football is-not green –do body of inner loop of bubblesort (see below) endwhile We know that we are done with all passes of the outer loop when all but the ¢rst player in line has a green outline color. In SALSA, we may express this logic as another while loop: 462 C. D. HUNDHAUSEN AND S. A. DOUGLAS While outlinecolor of cutout at position 2 of a is-not green –do body of outer loop of bubblesort (see below) endwhile Now we come to the trickiest part of the script: the logic of the inner loop.We want to successively compare the ball carrier to the player to his immediate right. If these two players are out of order, we want to swap them, with the ball carrier maintaining the ball; otherwise, we want the ball carrier to fumble the ball to the player to his immediate right. The following SALSA code makes the comparison, either fumbling or swapping, depending on the outcome: If data of cutout touching football > data of cutout right-of cutout touching football - -swap players assign p1 to position in a of cutout touching football assign p2 to position in a of cutout right-of cutout touching football doconcurrent move cutout touching football to p2 move cutout right-of cutout touching football to p1 move football right cellwidth of a enddoconcurrent else - -fumble ball to next player in line move football right cellwidth of a endif All that remains is to piece together the outer loop. At the beginning of the outer loop, we want to toss the ball to the ¢rst player in line.We then want to proceed with the inner loop, at the end of which we ¢rst set the outline of the player with the ball to green (signifying that he has reached his rightful place), and then toss the ball back to the referee.Thus, the outer loop appears as follows: Move football to left-center of cutout at position 1 of a - -inner loop (see above) goes here Set outlinecolor of cutout touching football to green Move football to top-center of referee Figure 6 summarizes the example by presenting the complete script. 3.3.4. Presenting the Storyboard Using ALVIS’s presentation interface, we may now present our ‘football’storyboard to an audience for feedback and discussion. Since nothing interesting occurs in the script until after the Storyboard View is populated, we elect to execute the script to the ¢rst line past the last place command (line 19 in Figure 6) by positioning the cursor on that line and choosing ‘Run to Cursor’ from the Present menu. The ¢rst time through the algorithm’s outer loop, we walk through the script slowly, using the ‘Presentation Pointer’ tool to point at the storyboard as we explain the algorithm’s logic. Before the two players are swapped (line 26 in Figure 6), we use the ‘Markup Pen’ tool to circle the two elements that are about to be swapped. LOW-FIDELITYALGORITHM VISUALIZATION 463 Figure 6. SALSA Script for ‘Football Bubble Sort’storyboard Now suppose an audience member wonders whether it might be useful to £ash the players as they are being compared (line 23 in Figure 6). Thanks to ALVIS’s £exible animation interface and dynamic modi¢cation abilities, we are able to test out this idea on the spot. As we attempt to edit code, which lies within the script’s inner while loop, ALVIS recognizes that a change at this point will necessitate a re-parsing of that entire loop. As a result, ALVIS backs up the script to the point just before the loop begins (line 18 in Figure 6). At that point, we insert the following four lines of code: doconcurrent –flash players to be compared flash cutout touching football for 1 sec flash cutout right-of cutout touching football for 1 sec enddoconcurrent We can now proceed with our presentation without having to recompile the script, and without even having to start the script over from the beginning. 464 C. D. HUNDHAUSEN AND S. A. DOUGLAS 4. Juxtaposition with Related Work SALSA’s verbose, natural language syntax was inspired byAtkinson andWinkler’s Hyper Talk language [28], which was designed to empower novice programmers to develop their own sophisticated applications within Apple’s HyperCard environment. ALVIS was inspired by, and has key features in common with, a family of systems geared toward rapidly prototyping graphical user interfaces. QUICK [29] supports a direct manipulation interface for programming graphical applications (which may include animation) in terms of an underlying interpreted language with explicit support for spatial relations. SILK [23] and PatchWork [27] are sketch-based systems that support the rapid construction of low-¢delity interface prototypes; the latter’s notion of ‘patches’ is similar to SALSA’s concept of ‘cutouts’. Beginning with Brown’s BALSA system [1], a legacy of interactive AV systems have been developed to help teach and learn algorithms, e.g. [2-5, 30]. SALSA and ALVIS di¡er from these systems in four fundamental ways, which we discuss in the remainder of this section. 4.1. Empirically Based Design The ¢rst key di¡erence between SALSA and ALVIS and past AV systems is their grounding in a theoretically and empirically driven design process. Indeed, whereas the design of past systems has been based mainly on designer intuitions (but see [31]), we have derived the low-¢delity approach supported by SALSA and ALVIS from a comprehensive review of experimental studies [16], along with an established learning theory [17]. Moreover, we have made an earnest e¡ort to root the design of SALSA and ALVIS ¢rmly in empirical data. Speci¢cally, as part of a user-centered design process, we have used observations from several empirical studies as a basis for formulating the functional and usability requirements of the language and system. For example, before we began implementation, we veri¢ed and re¢ned the syntax and semantics of SALSA through a pilot study involving students enrolled in a junior-level undergraduate algorithms course. Likewise, our observations of how students construct storyboards out of simple art supplies clearly inspired ALVIS’s conceptual model, which is rooted in‘paperand-pencil’storyboard construction. 4.2. Spatially drivenVisualization Construction A second key di¡erence between ALVIS and SALSA and extant AV technology is the visualization construction technique they pioneer.To place ALVIS and SALSA into perspective, Figure 7 presents a taxonomy of AV construction techniques. The taxonomy makes a top-level distinction between those AV systems that require visualizations to be de¢ned in terms of an underlying virtual machine, and those systems that support handcrafted,‘one-shot’ visualizations whose execution lacks an underlying virtual machine. With most extant AV systems, one de¢nes a visualization in some sort of programming language that executes on an underlying virtual machine. However, a few construction techniques abandon a formal underlying execution model altogether.With these techniques, there exists no chance of constructing AVs that work for general input; AV execution is entirely under human control. Examples of construction techniques that lack an 465 LOW-FIDELITYALGORITHM VISUALIZATION AV CONSTRUCTION TECHNIQUES No virtual machine Virtual machine Algorithmically driven Predefined Annotative Declarative Manipulative Spatially driven Procedural Manipulative Statebased Story boarding Morphing Drawing/ animation editor Rulebased Figure 7. A taxonomy of AVconstruction techniques underlying virtual machine include storyboarding [26], which inspired ALVIS and SALSA; morphing [32]; and drawing and animation editorsFmost notably, Brown and Vander Zanden’s [33] specialized drawing editor with built-in semantics for data structure diagrams. Visualization construction techniques that rely on an underlying virtual machine may be further classi¢ed according to the way in which they map a visualization to the underlying virtual machine. Algorithmically driven construction involves the speci¢cation of mappings between an implemented algorithm and a visualization. By executing the algorithm, one generates the visualization as a byproduct.Variations on algorithmic AV construction include (a) prede¢ned techniques, in which one chooses when and what to view, but has no choice with respect to the form of the visualization (see, e.g. [3,34]); (b) annotative techniques, in which one annotates an algorithm with event markers that give rise to updates in the visualization (see, e.g. [1,2,5,35]); (c) declarative techniques, in which one speci¢es a set of rules for mapping an executing program to a visual representation (see, e.g. [4,30]) and (d) manipulative techniques, in which uses some form of direct manipulation and dialog box ¢ll-in to map an algorithm to a visual representation (see, e.g. [31,36,37]). In stark contrast to algorithmically driven techniques, spatially driven techniques completely abandon a virtual machine rooted in an underlying algorithm to be visualized. Instead, spatially driven techniques de¢ne a spatial analogy to the algorithm to be visualized; that is, they are grounded in a virtual machine driven by the spatiality of the visualization itself. SALSA and ALVIS support a more formal version of storyboarding with an underlying spatially driven virtual machine. In particular, the SALSA language pioneers a procedural approach to spatially driven construction, while ALVIS supports a manipulative approach by enabling many components of SALSA programs to be programmed by direct-manipulation. In a similar vein, Michail’s Opsis [38] supports a state-based approach in which binary tree algorithms may be constructed by manipulating abstract visual representations, while Brown and Vander Zanden [33] describe a rule-based approach in which users construct visualizations with graphical rewrite rules. 4.3. Socially negotiated Correctness A third key di¡erence between SALSA and ALVIS and existing AV systems follows directly from the di¡erence in visualization construction technique just noted. As just discussed, algorithmically driven visualizations are directly generated as a byproduct of executing an implemented algorithm. To the extent that the mappings underlying an 466 C. D. HUNDHAUSEN AND S. A. DOUGLAS algorithmically driven visualization are correctly de¢ned, an algorithmically driven visualization can be guaranteed to match the behavior of the underlying algorithm. Because of this guarantee, an algorithmically driven visualization essentially serves as a ‘knowledge conveyor’ by portraying the correct procedural behavior of an algorithm under study. It is a teacher who is always right. In stark contrast, because a SALSA visualization is de¢ned purely in terms of its own spatiality, there is no guarantee that it corresponds to the algorithm it is intended to depict. As a consequence, rather than serving as a ‘knowledge conveyor’, low-¢delity AV technology plays the dual role of ‘knowledge constructor’ and ‘conversation mediator’. In its role as‘knowledge constructor’, low-¢delityAVtechnology enables students to build their own understandings of a target algorithm through experimenting with and constructing spatial analogies. In its complementary role as conversation mediator, AV technology facilitates instructor^learner conversations in which the meaning and signi¢cance of the target algorithm, including its correctness, are socially negotiated. While AV technology’s inability to guarantee correctness might concern educators committed to accurately teaching how algorithms work, we regard a SALSA visualization’s lack of guaranteed algorithmic correspondence as a key pedagogical feature of the low-¢delity approach.This is because it creates a situation in which students and instructors must socially negotiate an algorithm’s signi¢cance (including its correctness), and we believe that the ability to participate competently in such discussions about algorithms is an important skill for students to learn in an algorithms course. 4.4. Explicit support for Visualization Presentation A fourth key di¡erence between SALSA and ALVIS and existing AVtechnology lies in their support for visualization presentation. Most existing AV technology has adopted Brown’s [1] animation playback interface. By enabling one to start and pause an animation, step through an animation, and adjust animation speed, this interface essentially treats animations as uni-directional videotapes. A notable exception is LEONARDO [30], which de¢nes a custom C execution environment that, by supporting reverse execution, is especially well suited to debugging. As we have seen, in order to support interactive presentations, ALVIS’s interface goes beyond the standard animation playback interface by supporting reverse execution, and dynamic mark-up and modi¢cation. Notably, in most existing AV systems, modifying an animation entails changing and recompiling source code, which is seldom feasible within the scope of an interactive presentation. 5. Summary and Future Work A review of past experiments designed to substantiate AV technology’s pedagogical bene¢ts suggests that the more actively learners are involved with AV technology, the better they learn the target algorithms. Motivated by this observation, we have used ethnographic ¢eld techniques to explore a novel approach to using AV technology as a learning aid: one in which students become end-user programmers and discussants by constructing and presenting their own visualizations, rather than viewing visualizations constructed by their instructor. As we have seen, our ethnographic study ¢ndings point LOW-FIDELITYALGORITHM VISUALIZATION 467 out a key distinction between high- and low-¢delity algorithm visualizations, and motivate a shift from high- to low-¢delity AV technology as the basis for exercises in which students construct and present their own visualizations. To explore the design space of low-¢delity AV technology, we have presented a prototype end-user language (SALSA) and system (ALVIS) rooted in our studies of how students construct and present low-¢delity visualizations made out of simple art supplies.The SALSA language pioneers a novel spatial approach to specifying visualizations. In this approach, one performs the visualization’s layout, and speci¢es the visualization’s inner logic, in terms of the spatial relations among the objects of the visualization; there exists no notion of an underlying ‘driver algorithm’. Similarly, the ALVIS environment pioneers a novel interface for visualization presentationFone that supports reverse execution, as well as dynamic mark-up and modi¢cation. Aside from illustrating the promise of our novel, low-¢delity approach to integrating AV technology into an undergraduate algorithms course, the work presented in this article opens up many directions for future research. As we continue to explore this approach, three directions are of particular interest to us. First, while the low-¢delity approach appeared promising in our ethnographic studies, experimental studies must be carried out to validate the educational e¡ectiveness of the approach. To that end, we have already conducted a preliminary experiment that tested the educational impact of the self-construction factor [39]. Although the trends were favorable, this experiment found no statistically signi¢cant di¡erences between students who actively viewed (by designing their own input data sets) a visualization constructed by an expert, and students who constructed their own visualizations out of art supplies. However, this experiment focused on just one aspect of the low-¢delity approach. Clearly, further experiments are needed in order to better understand its overall educational impact. For example, a key pedagogical feature of the low-¢delity approach is that it creates a situation in which experts and learners can communicate about algorithms. Thus, another major factor we posit to in£uence learning is instructor communication: whether or not students have the opportunity to discuss, with an instructor, the visualizations that they construct or interact with. In future work, we would like to carry out further experimental studies that systematically explore the instructor communication factor in concert with self-construction. Second, ALVIS and SALSA are clearly works in progress. Much future work remains to be done in order both to re¢ne the design features that they demonstrate, and to explore their bene¢ts in the real world. In future research, we would like to focus our e¡orts in three key areas. K While SALSA does enable programmers to specify visualizations in the spatial domain, it is clearly a non-trivial programming language. Indeed, SALSA programmers are susceptible to the same kinds of programming errors that can be made in non-spatial languages. Prior to implementing SALSA, we conducted preliminary paper-based studies of SALSA’s design with undergraduate algorithms students. In future research, we need to subject SALSA and ALVIS to iterative usability testing in order to verify that undergraduates can easily create the kinds of visualizations they want to create, and in order to improve the usability of their design. Moreover, our testing will need to explore whether students can use SALSA and ALVIS ’s create visualizations of larger, more complex algorithms. To date, we have used SALSA and ALVIS only to develop small-scale visualizations of simple algorithms. 468 C. D. HUNDHAUSEN AND S. A. DOUGLAS K We originally designed ALVIS with the intention of using it with a large electronic whiteboard (e.g. the ‘Smart Board,’ http://www.smarttech.com), so that groups of students and instructors could engage in collaborative algorithm design. In such a setting, ALVIS would need to be used with some sort of stylus (pen) as its input device. In future research, we would like to explore the potential for ALVIS to be used in this way. K SALSA and ALVIS are presently frail research prototypes; they were not implemented to be robust systems suitable for use in the real world.Thus, an important direction for future research is to improve both the completeness and the robustness SALSA and ALVIS, so that they may ultimately be used as the basis for assignments in an actual algorithms course. Finally, once ALVIS and SALSA become stable enough to be used in a real algorithms course, we believe that they could serve as a foundation for our vision of the algorithms course of the future. Our vision draws from the instructional model presently used to teach architectural design, which constitutes a prime example of the learning-by-participation model advocated by constructivism [17]. Unlike algorithms students, who spend most of their time attending lectures and studying on their own, architectural students spend most of their time with their peers in an architectural studio, where they work on collaborative, directed design projects. Gathered around drafting tables, student groups work out their ideas using drafting paper, pencils and cardboard models. During scheduled review sessions, students present their work-in-progress to their instructor and peers for feedback. So, too, could it be in an algorithms course. While lectures would likely remain a necessary part of the curriculum, the length or the frequency of the lectures could be reduced in order to give students more time in the ‘algorithms studio.’ There, they would engage in collaborative algorithm design and analysis projects at their ‘drafting tables’Felectronic whiteboards running a conceptual algorithm design tool like ALVIS. At these drafting tables, students could explore alternative ways of solving assigned algorithm design problems. In addition, students could use ALVIS to present their solutions to their peers and instructorFboth informally during studio work sessions, and more formally during scheduled review sessions. Such review sessions would not only provide instructors with an important basis for assessing students’ progress, but they would also, as we found in our ethnographic ¢eldwork, set up ideal conditions under which to discuss the conceptual foundations of algorithms. Acknowledgements This research was conducted as part of the ¢rst author’s dissertation [18], supervised by the second author. The ¢rst author is grateful for the second author’s inspiration and astute guidance on the project. SALSA and ALVIS were programmed in Microsofts Visual C++t using the Microsofts Foundation Classes.We used the Cygwin port of Gnu Flex and Gnu Bison to generate the SALSA interpreter. Hank Bennett programmed ALVIS ’s back-end animation engine, and part of ALVIS ’s front-end user interface. Ted Kirkpatrick assisted greatly in debugging ALVIS. We are grateful to our reviewers for many constructive comments that helped us to improve the focus and clarity of this article. LOW-FIDELITYALGORITHM VISUALIZATION 469 References 1. M. H. Brown (1988) Algorithm Animation.The MIT Press, Cambridge, MA. 2. J. T. Stasko (1990) TANGO: a framework and system for algorithm animation. IEEE Computer 23, 27^39. 3. T. Naps (1990) Algorithm visualization in computer science laboratories. In: Proceedings of the 21st SIGCSE Technical Symposium on Computer Science Education. ACM Press, New York, pp. 105^110. 4. G. C. Roman, K. C. Cox, C. D. Wilcox & J. Y. Plun (1992) Pavane: a system for declarative visualization of concurrent computations. Journal of Visual Languages and Computing 3, 161^193. 5. J.T. Stasko (1997) Using student-built animations as learning aids. In: Proceedings ofthe ACM Technical Symposium on Computer Science Education. ACM Press, NewYork, pp. 25^29. 6. M. H. Brown & R. Sedgewick (1984) Progress report: Brown University Instructional Computing Laboratory. ACM SIGCSE Bulletin 16, 91^101. 7. M. D. Byrne, R. Catrambone &J.T. Stasko (1999) Evaluating animations as student aids in learning computer algorithms. Computers & Education 33, 253^278. 8. J. Stasko, A. Badre & C. Lewis (1993) Do algorithm animations assist learning? An empirical study and analysis. In: Proceedings of ACM INTERCHI’93 Conference on Human Factors in Computing Systems. ACM Press, NewYork, pp. 61^66. 9. A.W. Lawrence (1993) Empirical studies of the value of algorithm animation in algorithm understanding. Unpublished Ph.D. dissertation, Department of Computer Science, Georgia Institute of Technology. 10. C. Kann, R. W. Lindeman & R. Heller (1997) Integrating algorithm animation into a learning environment. Computers & Education 28, 223^228. 11. S. R. Hansen, N. H. Narayanan & D. Schrimpsher (2000) Helping learners visualize and comprehend algorithms. Interactive Multimedia Electronic Journal of Computer-Enhanced Learning 1. 12. M. E. Crosby &J. Stelovsky (1995) From multimedia instruction to multimedia evaluation. Journal of Educational Multimedia and Hypermedia 4, 147^162. 13. D. J. Jarc, M. B. Feldman & R. S. Heller (2000) Assessing the bene¢ts of interactive prediction using web-based algorithm animation courseware. In: Proceedings SIGCSE 2000 ACM Press, NewYork, pp. 377^381. 14. J. S. Gurka (1996) Pedagogic aspects of algorithm animation. Unpublished Ph.D. dissertation, Computer Science, University of Colorado. 15. S. Papert (1980) Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, NewYork. 16. C. D. Hundhausen, S. A. Douglas & J. T. Stasko (In press) A meta-study of algorithm visualization e¡ectiveness. Journal of Visual Languages and Computing. 17. J. Lave & E. Wenger (1991) Situated Learning: Legitimate Peripheral Participation. Cambridge University Press, NewYork, 138pp. 18. C. D. Hundhausen (1999) Toward e¡ective algorithm visualization artifacts: designing for participation and communication in an undergraduate algorithms course. Unpublished Ph.D. dissertation, Department of Computer and Information Science, University of Oregon. 19. S. A. Douglas, C. D. Hundhausen & D. McKeown (1995) Toward empirically based software visualization languages. In: Proceedings of the 11th IEEE Symposium on Visual Languages. IEEE Computer Society Press, Los Alamitos, CA, pp. 342^349. 20. S. A. Douglas, C. D. Hundhausen & D. McKeown (1996) Exploring human visualization of computer algorithms. In: Proceedings 1996 Graphics Interface Conference. Canadian Graphics Society,Toronto, CA, pp. 9^16. 21. T. H. Cormen, C. E. Leiserson & R. L. Rivest (1990) Introduction to Algorithms.The MIT Press, Cambridge, MA. 22. H.Wolcott (1999) Ethnography: AWay of Seeing. AltaMira Press,Walnut Creek, CA. 23. J. A. Landay & B. A. Myers (1995) Interactive sketching for the early stages of user interface design. In: Proceedings ofthe ACM CHI ’95 Conference on Human Factors in Computing Systems. ACM Press, NewYork, pp. 43^50. 470 C. D. HUNDHAUSEN AND S. A. DOUGLAS 24. J. Lin, M. Newman, J. Hong, & J. Landay (2000) DENIM: Finding a tighter ¢t between tools and practice for web site design. In: CHI 2000 Conference Proceedings. ACM Press, NewYork, pp. 510^517. 25. R. Sedgewick (1988) Algorithms. Addison-Wesley, Reading, MA. 26. S. A. Douglas (1995) Conversation analysis and human-computer interaction design. In: Social and Interactional Dimensions of Human^Computer Interfaces (P. Thomas, ed.), Cambridge University Press, Cambridge. 27. M. van de Kant, S. Wilson, M. Bekker, H. Johnson & P. Johnson (1998) PatchWork: a software tool for early design. In: Human Factors in Computing Systems: CHI 98 Summary. ACM Press, NewYork, pp. 221^222. 28. (1988) HyperTalk Language Reference Manual. Addison-Wesley, Menlo Park, CA. 29. S. A. Douglas, E. Doerry & D. Novick (1992) QUICK: a tool for graphical user interface construction.TheVisual Computer 8, 117^133. 30. P. Crescenzi, C. Demetrescu, I. Finocchi & R. Petreschi (2000) Reversible execution and visualization of programs with LEONARDO. Journal of Visual Languages and Computing 11, 125^150. 31. S. Mukherjea & J. T. Stasko (1994) Toward visual debugging: integrating algorithm animation capabilities within a source-level debugger. ACM Transactions on Computer^Human Interaction 1, 215^244. 32. W. Citrin & J. Gurka (1996) A low-overhead technique for dynamic blackboarding using morphing technology. Computers & Education 26, 189^196. 33. D. R. Brown & B. Vander Zanden (1998) The Whiteboard environment: an electronic sketchpad for data structure design and algorithm description. In: Proceedings ofthe14th IEEE Symposium onVisual Languages. IEEE Computer Society Press, Los Alamitos, CA, pp. 1^8. 34. B. A. Myers (1983) Incense: a system for displaying data structures. Computer Graphics 17, 115^125. 35. R. A. Duisberg (1987) Animation using temporal constraints: an overview of the animus system. Human^Computer Interaction 3, 275^307. 36. J.T. Stasko (1991) Using direct manipulation to build algorithm animations by demonstration. In: Proceedings of ACM CHI ’91Conference on Human Factors in Computing Systems. ACM Press, NewYork, pp. 307^314. 37. R. Duisberg (1987) Visual programming of program visualizations. In: Proceedingsofthe IEEE 1987 Visual Language Workshop. IEEE Computer Society Press, Los Alamitos, CA. 38. A. Michail (1996) Teaching binary tree algorithms through visual programming. In: Proceedings of the 12th IEEE Symposium onVisual Languages. IEEE Computer Society Press, Los Alamitos, CA, pp. 38^45. 39. C. D. Hundhausen & S. A. Douglas (2000) Using visualizations to learn algorithms: should students construct their own, or view an expert’s? In: Proceedings 2000 IEEE International Symposium onVisual Languages. IEEE Computer Society Press, Los Alamitos, pp. 21^28.