Visualization of Data Structures and Algorithms

Although data structure visualization (or animation) has been studied for more than twenty years, existing systems have not gained wide acceptance in the classroom by students and their instructors. The main reason is that animation preparation is too time consuming. A more technical reason is that when a particular data structure is encoded into an animation, it does not have the flexibility often needed in a classroom setting. There is also a pedagogical reason: a number of prior studies have found that using algorithm visualization in a classroom had no significant effect on student’s performance. We believe that the Tablet PC, empowered by digital ink, will challenge the current boundaries imposed upon algorithm animation. One of the potential advantages of this new technology is that it allows the expression and exchange of ideas in an interactive environment using sketch based interfaces. We do not guarantee that merely integrating animation with the TabletPC capabilities will make improvements in students’ learning. However, it is worthwhile researching whether adding the Tablet PC technologies to undergraduate education will affect teaching and learning.

We propose to create an environment in which students using a stylus would draw a particular instance of a data structure and then invoke an algorithm to animate over this data structure. The cornerstone of our project is the concept of geometrical sketching dynamically combined with an underlying computational model. A completely natural way of drawing using a digital pen will generate a data structure model. Once it is checked for accuracy, it will serve as a basis for execution of various computational algorithms. The algorithm animation will be performed in two different modes, either in demonstration/visualization mode or in user’s step-by-step execution. The later will be supported by automated algorithm correctness verification.


Last updated January 26, 2004.
Please send corrections to Victor S. Adamchik
Computer Science Department, 
Carnegie Mellon University, Pittsburgh, PA.