Abstract
As demonstrated in our earlier paper (Milne and Rowe, 2002), students learning object-oriented programming find topics related to the computer's handling of memory the most difficult to understand. Our results indicated that a visualization of a running object-oriented program, with particular emphasis on the display of how objects are related to each other in memory, would help students to learn these topics.
Here we describe OGRE (Object-oriented GRaphical Environment) – a program visualization tool that has been developed to specifically address these memory related issues by providing three-dimensional, interactive visualizations that aid higher-level understanding of a program's execution in memory. OGRE has been evaluated with positive results that show significant improvements in students' understanding of C++'s memory-related topics.
Similar content being viewed by others
References
Arab, M. (1992) Enhancing program comprehension: Formatting and documenting. ACM Sigplan Notices, 27(2), 37–46.
Baecker, R. and Marcus, A. (1990) Human Factors and Typography for More Readable Programs. Addison-Wesley, Reading, MA.
Ball, T. and Eick, S. (1996) Software visualization in the large. Computer, 29(4), 33–43.
Brooks, F. P. (1987) No silver bullet, essence and accidents of software engineering. Computer, 20(4), 10–19.
Cockburn, A. (2001) Supporting tailorable program visualisation through literate programming and fisheye views. Information and Software Technology, 43(13), 745–758.
De Pauw, W. and Vlissides, J. (1998) Visualizing object-oriented programs with JInsight. Lecture Notes in Computer Science, 1543, 541–542.
De Pauw, W. and Sevitsky, G. (1999) Visualizing reference patterns for solving memory leaks in Java. Lecture Notes in Computer Science, 1628, 116–134.
Fernandez, A., Rossi, G., Moreilli, P., et al. (1998) A learning environment to improve object-oriented thinking, Presented at OOPSLA '98.
Jerding, D. F. and Stasko, J. (1994) Using Visualization to Foster Object-Oriented Programming Understanding, Technical Report GIT-GVU-94-33, Georgia Institute of Technology.
Knight, C. and Munro, M. (2000) Virtual but Visible Software. In Proceedings of Information Visualization, IV 20000, London, pp. 198–205.
Levy, R. B., Ben-Ari, M., and Uronen, P. (2000) An extended experiment with Jeliot 2000. In Proceedings of the First Program Visualization Workshop, Porvoo, July 2000, pp. 131–140.
Maletic, J. I., Leigh, J., and Marcus, A. (2001) Visualizing software in an immersive virtual reality environment. In Proceedings of the ICSE'01 Workshop on Software Visualization, Toronto, pp. 49–54.
Miara, R. J., Musselman, J. A., Navarro, J. A., et al. (1983) Program indentation and comprehensibility. Commu-nications of the ACM, 26(11), 861–867.
Milne, I. and Rowe, G. (2002) Difficulties in learning and teaching programming – Views of students and tutors. Education and Information Technologies, 7(1), 55–66.
Price, B. (1998) In Software Visualization: Programming as a Multimedia Experience, J. Stasko (ed.). MIT Press, Cambridge, MA.
Rowe, G. and Thorburn, G. (2000) VINCE – An on-line tutorial for teaching introductory programming. British Journal of Educational Technology, 31(4), 359–369.
Smith, P. A. and Webb, G. I. (2000) The efficacy of a low-level program visualization tool for teaching program-ming concepts to novice C programmers. Journal of Educational Computing Research, 22(2).
Staples, M. L. and Bieman, J. M. (1999) 3-D visualization of software structure. Advances in Computers, 49.
Stasko, J. (1996) Using Student-Built Algorithm Animations as Learning Aids, Technical Report GIT-GVU-96-19, Georgia Institute of Technology.
Walker, R. J., Murphy, G. C., Freeman-Benson, B., et al. (1998) Visualizing dynamic software system information through high-level models. ACM SIGPLAN Notices, 33(10), 271–283.
West, A. (1993) Animating C ++Programs, Technical Report, Objective Software Technology. http://www. objectivesoft.com
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Milne, I., Rowe, G. OGRE: Three-Dimensional Program Visualization for Novice Programmers. Education and Information Technologies 9, 219–237 (2004). https://doi.org/10.1023/B:EAIT.0000042041.04999.17
Issue Date:
DOI: https://doi.org/10.1023/B:EAIT.0000042041.04999.17