Abstract Visualization of Algorithms and Data Structures
Examensarbete för kandidatexamen
Software Engineering (300 hp)
Within the field of visualization it is common to distinguish between Algorithm Visualization (AV) and Program Visualization (PV). AV uses high level abstractions to demonstrate how algorithms works, while PVs are debugger-like and display low level information about programs. There exists a variety of visualization tools within both AV and PV today. However, few tools provide a good combination of the two. There is a lack of tools which can produce visualization with a high abstraction level from code in common programming languages. Moreover, most tools are either restricted to a certain programming language or a set of algorithms. Therefore users have to learn a variety of tools for different programming languages and algorithms. The goal of this project is to combine AV and PV in a single system. The system is based around a communication contract which connects programs written in any language to any visualization tool. In this way, a programming language will immediately have a rich selection of visualizations available once an interface has been implemented for it. At the other end, new visualizations and visualization tools can be constructed without concern for how program execution will be recorded. As a proof of concept, we have developed interface prototypes for Java and Python programs. Accompanying these are visualization tool prototypes, one written in Java and the other in HTML5.
Informations- och kommunikationsteknik , Data- och informationsvetenskap , Information & Communication Technology , Computer and Information Science