The role of Visualisation in the study of Computer Programming
This paper presents a study of how visualization tools and methods are used to support the study of computer programming. The purpose of this study was to establish whether visualization could be exploited more fully or more effectively to support this learning. Furthermore, if that were the case, then this study would aim to define the requirements of novice programmers. Greater understanding of the requirements of novice programmers is expected to steer this research towards finding better solutions to the challenges faced by students of programming. Visualisation tools are used in many academic institutions to support learning in many diverse areas. Programming is no exception. Indeed, it is common for teachers and students to use visual tools to trace the execution of a program as well as showing the outcome from each statement of code as it is executed. The use of visualisation tools is an alternative to the use of paper and whiteboards to demonstrate the execution of the program. However, visualization tools deliver a more effective understanding of the execution as the students can interactively "see" exactly what changes are happening in the hardware as each line of code executes.Alhammad S, Atkinson S, Stuart L
This paper presents a study of three distinct visualisation tools Jeliot(Moreno, Myller, Sutinen, & Ben-Ari, 2004), Online Python Tutor (Guo, 2013) and Visual Logic (Gudmundsen & Olivieri, 2011). The nature of how visualization is exploited in each of these tools is evaluated. This evaluation is based on how the tool visualises the execution of (i) loops, (ii) object-oriented programming and (iii) the calling of procedures. These three tasks are a sample of tasks that students find complex when writing programs (Eckerdal et al., 2006; Boustedt et al., 2007; Sanders et al., 2008).
The results presented in this paper show the characteristics in the visualization tools and the students' preferences in using them. The students evaluated the following eight characteristics: tool availability, error explanation, expression evaluation, the interface, programming languages the tool supports, animation, class hierarchy and save the execution history.