2024 Volume 41 Issue 3 Pages 224-239
Object-oriented programming (OOP) features program extensibility which is obtained through basic concepts such as inheritance and polymorphism. To foster organization of knowledge about OOP, we investigate a learning design for learners to understand the “causal relationship” between the extensibility and the basic concepts. Since the extensibility of OOP is an “invisible nature” that it is not necessary to modify the higher-level program when extending the function, the design features comparison of OOP with procedural programing requiring “explicit” modification of higher-level program, intending the learners to be aware of the invisible nature of OOP. In addition, according to the first principle of instructional design, learners are asked to perform two program extension tasks: one in demonstration phase incorporating OOP/procedural-programing comparison and another in application phase in which learners are expected to reflect on the “causal relationship” between extensibility and basic concepts. As a result of control experiment concerning OOP/procedural-programing comparison, a significant difference in the understanding of the causal relationship was observed, suggesting the usefulness of the comparison.