Skip to content

Object-Oriented Programming

The lab activities I have here stem mostly directly from those that I prepared during my time teaching ITS42004 Object-Oriented Programming in Taylor's College from Apr 2021 to Dec 2022. The course follows an introductory course on programming concepts (i.e., ITS41804 Problem Solving & Programming Design), and introduces students to a new paradigm of programming with a different set of approach in contrast to procedural programming. This course would have been better spent on focusing on object-oriented programming and design concepts alone, but due to needing to adhere to instructions by the higher-ups (and to help students ease into a different language), the first half of the course was treated like an introduction to Java section altogether. This leaves only roughly 7 weeks to cover the foundations of object-oriented programming, along with some extras like Exception Handling and File I/O.

However, given this knowledge, I would very much like to try remaking some of my labs to focus solely on the pillars of Object-Oriented Programming, independent of what language you wish to learn in. For now, I intend on prioritizing Java, followed by C++, C# and Python (not in this exact order). I will populate more of this page as I develop them in my own time.

For now, what I sort of have in mind is the following structure:

  • Lab 01: Classes and Objects
  • Lab 02: Inheritance
  • Lab 03: Polymorphism
  • Lab 04: Abstraction and Interfaces
  • Lab 05 onwards: some OO design principles (include some theory stuff from one of my other classes, i.e., ITS42104)

Motivation Behind Learning OOP