
Object-oriented programming is an integral part of the university curriculum. However, teachers face difficulties teaching object-oriented programming to novice programmers: choosing the appropriate programming language and students’ understanding of basic object-oriented concepts. The choice of the programming language used for teaching is essential. Undergraduate students have difficulties understanding and implementing object-oriented concepts like inheritance, polymorphism, encapsulation, and abstraction. Strong-typed programming languages like C# enforce those concepts through syntax rules, and students often focus on learning syntax instead of learning and understanding object-oriented concepts. The consequence is that they lack a deeper understanding of the object-oriented paradigm. The knowledge based on the syntax level of programming language constructs is not appropriate for the object-oriented programming paradigm. Implementation of more complex object-oriented concepts implies the development of more complex programs. Still, students have limited time during lab exercises and can only solve simple problems, so teachers need to overcome those difficulties by simplifying the learning process. This paper describes teaching methods implemented in our undergraduate object-oriented programming course. We have simplified the learning process by introducing a game-based programming framework combined with a project-based learning approach to enhance the students’ understanding and improve their learning curves. The game development framework was specifically designed for learning, using chosen language for teaching while simplifying game development and hiding the complexity of concepts not closely related to object-oriented programming. Game development was chosen based on the good practice of visualizing program results (the idea behind LOGO-based languages). We will also compare and reflect on the differences between loose-typed language JavaScript, which we introduced last year, and strong-typed programming language like C#, which we used for teaching during previous years. Naturally, the languages are different, but in this paper, we focus on implementing object- oriented concepts.
JavaScript, game-based learning, learning programming, Object-oriented programming ; learning programming ; C# ; JavaScript ; game-based learning, Object-oriented programming, C#
JavaScript, game-based learning, learning programming, Object-oriented programming ; learning programming ; C# ; JavaScript ; game-based learning, Object-oriented programming, C#
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
