TEACHING OBJECT ORIENTED PROGRAMMING: PROGRAMMING LANGUAGE CHALLENGE
University of Split, Faculty of Science (CROATIA)
About this paper:
Conference name: 15th annual International Conference of Education, Research and Innovation
Dates: 7-9 November, 2022
Location: Seville, Spain
Abstract:
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.Keywords:
Object-oriented programming, learning programming, C#, JavaScript, game-based learning.