Learning Object-Oriented Programming Concepts Through Visual Analogies - Lian, Victor; Varoy, Elliot; Giacaman, Nasser (IEEE transactions on learning technologies, 2022)
Object-oriented programming (OOP) is a widely used programming paradigm in modern software industry. This makes it an essential skill for students in many disciplines to learn. However, OOP is known to be challenging to learn and teach due to its abstract nature. Studies have shown that students often face difficulties and develop misconceptions in multiple aspects when learning OOP. This article presents a systematic way of developing a teaching tool that uses a combination of visualization and analogies to help students overcome these barriers and understand the OOP concepts better. To ensure the tool would have pedagogical value and novelty, we first reviewed the educational theories on using analogies and visualization, as well as numerous existing tools. A set of activities in the form of code snippets were then designed to target these misconceptions and difficulties, along with a set of analogies and their interaction mechanisms that mapped to the OOP concepts. A teaching tool was then developed based on those designs and evaluated with engineering students in a CS2 course ( n = 253). The results and our analysis show that a statistically significant improvement was achieved in student understanding and confidence through interaction with visualization of OOP concepts with analogies (VOOPA) exercises. Similar gains were also observed using more traditional methods. No statistically significant positive difference in understanding and confidence can be attributed to use of VOOPA through the current study.