Object-Oriented Programming

IB Syllabus: B3.1 – OOP for a single class (SL+HL), B3.2 – OOP for multiple classes (HL only)

Object-oriented programming is a way of organising code around objects – self-contained units that combine data and the operations that act on that data. Instead of writing one long program with variables scattered everywhere, you model the problem as interacting objects, each responsible for its own state and behaviour.

This matters because real-world systems are complex. A school has students, teachers, courses, and grades. A hospital has patients, doctors, appointments, and records. OOP lets you model each of these as a separate class, keep their data private, and define clear interfaces for how they interact.


SL Core (B3.1)

# Topic Syllabus Key Concepts Level
1 What is OOP? B3.1 Procedural vs OOP, four principles, key terminology SL + HL
2 Classes and Objects B3.1 Class definition, attributes, methods, instantiation, arrays of objects SL + HL
3 Constructors B3.1 Default, parameterised, overloaded constructors SL + HL
4 The this Keyword B3.1 Parameter shadowing, when this is required SL + HL
5 Encapsulation B3.1 Private fields, getters/setters, validation, data hiding SL + HL
6 Access Modifiers B3.1 private, public, protected, which to use when SL + HL
7 Static Members B3.1 Static vs instance, shared counters, why main is static SL + HL
8 Object References B3.1 Aliasing, null, == vs .equals() SL + HL
9 UML Class Diagrams B3.1 Three-section box, access modifier symbols, relationships SL + HL

HL (B3.2)

# Topic Syllabus Key Concepts Level
10 Aggregation B3.2.4 Has-a relationship, objects as attributes, delegation HL
11 Inheritance B3.2 extends, super(), constructor chaining, is-a HL
12 Method Overriding B3.2 @Override, replacing parent behaviour HL
13 Polymorphism B3.2 Polymorphic arrays, runtime method dispatch HL
14 Abstract Classes B3.2 abstract keyword, forcing subclass implementation HL
15 Interfaces B3.2 interface, implements, contracts HL
16 Composition vs Inheritance B3.2.4 Design decisions, tight coupling HL

Exam Skills

# Topic Syllabus Key Concepts Level
17 OOP Method Patterns B3.1, B3.2 Filter, accumulate, find-by-ID, null checks SL + HL
18 Selection Sort on Objects B2.4.3, B3.1 Sorting by attribute, .compareTo() SL + HL
19 OOP Terminology Reference B3.1, B3.2 Every key term with exam-ready definitions SL + HL

IA Preparation

# Topic Syllabus Key Concepts Level
20 JavaFX Basics Stage, Scene, FXML, event handlers IA tooling
21 MVC Architecture Model-View-Controller pattern IA tooling
22 FXML and Controllers .fxml files, FXMLLoader, @FXML binding IA tooling
23 Multi-Window Apps Stage management, Singleton, data sharing IA tooling
24 File I/O in Apps Persistence, CSV, load/save patterns IA tooling
25 Structuring Your IA Planning classes, project structure IA tooling

Table of contents


© EduCS.me — A resource hub for Computer Science education

This site uses Just the Docs, a documentation theme for Jekyll.