Software visualization and algorithm animation are topics of growing interest in computer science education. We propose a new interface to support the interaction between learners and the dynamic data structure of standard algorithms. Based on their source code users generate and configure so-called concept keyboards to explore the data structures and to execute the methods of the algorithms. This access is in contrast with a simple step interface which allows visualization of the steps of the algorithm in the right order. The results of the various evaluation phases are given. At this moment a larger study is being undertaken with undergraduates which focuses on the usability of the keyboard.
Visualization of algorithmsThere is growing interest in algorithm visualization (AV) to help instructors to explain and learners to understand algorithms. An algorithm animation (AA) shows relevant parameters and variables, the current state and a visual representation of the objects being manipulated and often an animated formal description of the algorithm. Complex model structures are simplified in order to highlight only the important aspects by omitting irrelevant details. A first coarse implementation level only mirrors important strategies like Divide-and-Conquer, Union-Find or Greedy methods. Finer data structures also focus on efficient use of memory implementing the algorithm in place, and during the execution the number of different basic operations like swapping or comparing two objects is accumulated.To achieve better comprehension, the designer scales down data to coarser structures and slows down algorithms that process data.Smooth transitions between different states of moving objects, such as elements inside an array while a sorting algorithm is being performed, can make it easier to follow the way the algorithm works on graphical representations of data structures. In most cases algorithms work only locally on data structures in a serial way. Thus, learners can run the algorithm step by step both forward and backward selecting input parameters, step size and execution speed while interactively exploring a configurable animation of algorithms on their own. The intention of this kind of interactive software is to gain insight into the dynamic behavior of the algorithm.We will not review past AV systems, which are referenced in three books on software visualization edited by John Stasko et al [1998] and Stephan Diehl et al [2000;. Rößling [2003] describes methods of generating animations and classifies known systems.It has been noted that there have been only minor attempts to produce interfaces mirroring the concepts and data structures of the algorithms. In most cases, control and visualization are not separated; thus, interaction uses and modifies the graphic representation of data structures directly. Usually users initialize the visualization by specifying the type of visualization, size of the probe, speed of the animation and granularity of the steps to be executed. During the execution of the animat...