Enhancing object-oriented programming education using static and dynamic visualization - Jeong Yang; Young Lee; Hicks, David; Chang, Kai H. (Frontiers in Education 2015 : launching a new vision in engineering education : proceedings : October 21-24, 2015, Camino Real Hotel & Conference Center, El Paso, Texas, 2015)
While Object-Oriented programming in Java has been widely adopted as an introductory programming course in Computer Science, it is considered difficult to teach and learn. Studies have identified that the difficulty is from the underlying Object-Oriented concepts and principles. To help student programmers better understand the structure of a program and the concepts of Object-Oriented design, visualizations in various formats have been applied to programming environments. This paper presents a web-based interactive educational programming environment, JavlinaCode, and its unique design principles. JavlinaCode is designed for teaching object-oriented programming in Java. It aims to enhance student programmers' programming skill and to help them understand object-oriented design concepts. It provides integrated static and dynamic visualizations: the static state of a Java program in an UML class diagram and the dynamic run-time state of the program execution. With the synchronized multi-view real time visualization along with source code, JavelinaCode is highly expected to reduce student programmers' cognitive workload in Java programming and to enhance comprehension of the objectoriented programming and design concepts.