Foundations of Object Oriented Programming

QQI Level 5 (5N1352) | Blackrock Further Education Institute | 2024–25


About This Course

FOOP was taught as the natural successor to PDP (Programming Design Principles). Students arrived having written Python procedurally — functions, loops, basic data structures. FOOP's job was to give them a reason to want OOP before showing them how it works.

The main vehicle for this was the Solar System project: a three-part sequence where students first implement a solar system explorer using dictionaries and lists, then rebuild it using a proper class hierarchy, then extend it with advanced features. Each part demonstrates concretely why the previous approach had limits.

The course ran in C#, which meant students were also navigating a new language alongside new concepts. This turned out to be an advantage — the explicit type system in C# made some OOP ideas (inheritance, polymorphism, abstract classes) clearer than they would have been in Python.


Materials

  • Solar System OOP 1 of 3 — Procedural approach, then a class-based rebuild. Covers CelestialLocation base class, Planet, Moon, and SpaceStation subclasses, and a SolarSystemMap manager class.

  • Solar System 2 of 3 — Notebook version of the class-based implementation, designed for step-by-step exploration in a C# polyglot notebook.

  • Solar System Bonus 3 of 3 — Advanced extensions. New celestial types (Asteroid, BlackHole), a fuel system with distance-based travel costs, and a weather system demonstrating polymorphic design.


Skills Demo Sequence

Beyond the Solar System project, the course included four skills demos integrated with mathematics and computational methods. See the Cross-Module Integration Summary for the full picture of how assessment worked across modules.

The culminating group project extended a digit recogniser (MNIST neural network) into an Eircode recognition system using EMNIST, run as two Agile sprint cycles.


The FOOP approach — giving students a concrete frustration with procedural code before introducing OOP — is described in more detail in the consulting page.

Built with LogoFlowershow