PBL in Object-Oriented Programming course, HUST

Course overview

The course focuses on Object-Oriented Programming (OOP), a programming paradigm based on the concept of “objects”. OOP is one of the core developing approaches which is widely accepted around the world. Many of the most widely used programming languages (such as C++, Java, Python, etc.) are multi-paradigm and support object-oriented programming to a greater or lesser degree. This course aims to introduce students to the idea of programming with OOP, basic concept of Objects and Classes, the fundamental features of OOP (such as encapsulation, composition, inheritance, and delegation) and how to use OOP in the deployment process of a software. Applying OOP benefits in re-usability, data redundancy, security, extensibility, easy troubleshooting and maintaining, etc. Concepts and schemes of OOP can be applied to improve programming and designing skill, which is highly important in almost every field of IT in general, especially software engineering. The course furthermore focuses on transversal skills including analytical thinking, critical thinking, entrepreneurial thinking, problem solving, planning and designing, ability to work in a team, etc.

Participants in piloting 

The course is obligatory in the 3rd year of undergraduate studies at the School of Information Communication and Technology of the Hanoi University of Science and Technology. Approximately 100 students are engaged in the course every semester.

Timeframe

Fall 2019 and Spring 2020.

Use of ALIEN services and tools

Object-Oriented Programming is both theorical and practical learning course. At the first half of the course, students learn the fundamental concepts of OOP, schemes and features that OOP provides and the benefits of OOP in the class. Students are also asked to try implementing these theories on known programming language that supports OOP to understand how OOP improves programming capability. This activity aims to demonstrate the usage of OOP paradigm directly reflecting on the programming language and help students have the first idea of actual applying OOP schemes in programming.

Later of the course, students are divided into teams of four and work together in a project of making a program that applying OOP scheme. The students will have to cooperate to create a program from scratch, including planning, designing, programming and debugging. The program can be various (for example, a sale program, a parking lot program, a game, etc.) and the scale of the program is not necessary to be large. As OOP scheme reflects on every step, this activity aims to help students understand the procedure of making a program with OOP paradigm in mind, from the beginning to the end. Students then see the importance of using OOP in improving the programming experience, developing systematical thinking and software designing.