Data structures and algorithms are abstract concepts, and the understanding of this topic and the material covered in class can be divided into two levels: a) Conceptual - where students learn concepts of operations such as create, add, delete, sort etc and b) Coding - where students implement the data structure and its operations using any programming language (Java in our case).
#JGRASP ORG SOFTWARE#
Our philosophy is that for visualizations to have the most impact on program understanding, they must be generated as needed from the user's actual program during routine development.Īll Computer Science, Software Engineering, and Wireless Engineering majors at Auburn University are required to take the COMP 1210 course (an objects-early CS1 in Java) followed by the COMP 2210 course (a Java-based CS2).
#JGRASP ORG CODE#
We also decided against modifying the user's source code as is required by systems such as LJV. We have specifically avoided basing the visualizations in jGRASP on a scripting language, which is a common approach for algorithm visualization systems such as JHAVE. Although we are planning to add a general linked structure view, we began with the more intuitive "textbook" views to provide the best opportunity for improving the comprehensibility of data structures. binary tree) has its own set of views and subviews which are intended to be similar to those found in textbooks. In jGRASP, each category of data structure (e.g., linked list vs. The data structure visualization in DDD shows each object with its fields and shows field pointers and reference edges. In this respect, jGRASP is similar to DDD. Whereas Jeliot focuses on beginning concepts such as expression evaluation and assignment of variables, jGRASP includes visualizations for more complex structures such as linked lists and trees. However, jGRASP differs significantly from Jeliot in its target audience. This is somewhat similar to the method used in Jeliot.
#JGRASP ORG UPDATE#
The approach we have taken for the state-based viewers in jGRASP to automatically generate the visualization from the user's executing program and then to dynamically update it as the user steps through the source code in either debug or workbench mode. Similar experiments, but which focus on binary search trees, are currently underway. We conducted formal, repeatable experiments to investigate the effect of these viewers for singly linked lists on student performance and we found a statistically significant improvement over traditional methods of visual debugging that use break-points. Multiple instructors have reported positive anecdotal evidence of their usefulness. Visualizations in a classroom environment. Such seamless integration of a lightweight IDE with a set of pedagogically effective software visualizations should have a positive effect on the usefulness of - see front matter © 2007 Elsevier B.V. The jGRASP IDE () provides object viewers that automatically generate dynamic, state-based visualizations of objects and primitive variables in Java. To effectively use visualizations when developing code, it is useful to automatically generate multiple synchronized views without leaving the IDE. The reasons include: lack of suitable methods of automatic-generation of visualizations lack of integration among visualizations and lack of integration with basic integrated development environment (IDE) support. Keywords: Visualization, data structures, IDE, jGRASPĪlthough many visualization techniques have been shown to be pedagogically effective, they are still not widely adopted. The seamless integration of the the IDE with pedagogically effective software visualizations makes jGRASP an interesting tool for both educators and students. This paper presents the data structure animation tool jGRASP, which can automatically generate multiple synchronized views while the underlying code is being developed. Cross2 Jhilmil Jain3 Larry Barowski4ĭepartment of Computer Science and Software Engineering Auburn University Auburn, Alabama 36849 USA Providing Data Structure Animations in a Lightweight IDEĭean Hendrix1 James H. Electronic Notes in Theoretical Computer Science 178 (2007) 101-109