User Experience Design and Experimental Evaluation of Extensible and Dynamic Viewers for Data Structures
Type of DegreeDissertation
Computer Science and Software Engineering
MetadataShow full item record
Many techniques for the visualization of data structures and algorithms have been proposed and shown to be pedagogically effective. Yet, they are not widely adopted because they lack suitable methods for automatically generating the visualizations, lack integration among visualizations, and lack integration with basic integrated development environment (IDE) support. In this work, additionally it was identified that the lack of adoption was because these tools do not focus on one of the main problems students in an introductory level data structures and algorithms class face; that is, the transition from abstract and static concepts to dynamic implementation. To effectively use visualizations when developing code, it is useful to automatically generate multiple synchronized views without leaving the IDE. The jGRASP IDE has been extended to provide object viewers that automatically generate dynamic, state-based visualizations of data structures in Java. Such seamless integration of a lightweight IDE with a set of pedagogically effective software visualizations is unique and is currently unavailable in any other environment. Formal and repeatable controlled experiments were conducted to investigate the effect of these viewers on the performance of students. These studies indicated a statistically significant improvement over traditional methods of visual debugging that use breakpoints. Six controlled experiments were conducted to test various hypotheses. The goal of Experiments I and III was to determine if students would be able to code more accurately and in less time using the jGRASP data structure viewers for a relatively easy (singly linked list) and a relatively hard (linked binary tree) to understand data structure. The goal of Experiments II and IV was to determine if students would be able to find and correct more logical errors accurately and faster using jGRASP viewers for a relatively easy (singly linked list) and a relatively hard (linked binary tree) to understand data structure. Experiment V was conducted using min-max heap to test if students would be able to transition from concept to implementation faster and more accurately using jGRASP viewers for data structures that are covered only conceptually in lectures. Experiment VI was conducted using linked priority queue to test if students would be able to apply concepts for data structures that were not covered in lectures faster and more accurately using jGRASP viewers. In all six experiments, the group using jGRASP viewers performed significantly better than the other group. Thus, this research has shown that automatic generation of visualizations for data structures tightly integrated within an IDE helps students not only learn concepts but also aids in transitioning from static concept to dynamic implementation for both relatively easy and hard to learn data structures.