Stephen Kirby, Benjamin Toland – Institutes of Technology Blanchardstown

Program Visualisation involves presenting the learner with a visual representation of an executing computer program. It has been found that many students struggle with programming as they do not have a coherent mental model of how a computer works. By allowing beginner programmers to observe a graphical representation of their program in execution they are greatly helped in developing this computational mental model and thus the learning of programming is simplified. It has been found that Program Visualisation tools help in the teaching of the Java programming language but there is no commercially available such tool for the C language which is the main language used in Computer Engineering education.

With the introduction of C++ and Java to the Programming world, much of industry has moved away from the C language.   C, however remains an important language in Engineering, embedded systems and system level programming. The few available visualisation tools for the C language deal with abstract algorithmic concepts and do not focus on Program Visualisation – visualisation of the program executing on the basic computational mental model of the language. 
Jeliot 3 is a program visualisation tool developed in the University of Joensuu, Finland, which visualises Java code at a fine grained level aimed at beginner programmers. The developers are actively seeking others to extend the tool to provide alternate visualisations of Java and the integration of interpreters for new languages such as C/C++. Jeliot 3 uses an intermediately language called MCode which links the Java interpreter of the program to the animation engine of Jeliot 3.
VIP is another program visualisation tool being developed in the Tampere University of Technology, in Finland. It is a tool that aims to visualise a subset of C++ called C–. This tool is still in development and while it has a command line interface it does not support a rich Graphical User Interface (GUI) like Jeliot 3.
This project aims to create a new visualisation tool for the C language by integrating the interpreter from the VIP project into the Jeliot 3 framework. This requires modifying the VIP interpreter such that it can produce MCode that can be read by the Jeliot 3 animation engine and modifying Jeliot 3 such that in can animate C-specific concepts.
It is hoped that a tool that provides a rich graphical visualisation of a C program in execution will improve the educational experience of novice C programmers as it has for novice programmers in other languages such as Java.