Augment Education
  • Blog
Log inStart free
augment

Augment Education

IB Diploma revision built around the syllabus.

contact@augment-education.com

Product

  • Features
  • Question bank
  • Quick fire
  • Worksheets
  • Flashcards
  • Notes
  • Subjects
  • What's new

Learn

  • IB guide
  • Booklets, explained
  • Blog
  • Free tools
  • Grade calculator
  • Subject checker

Company

  • About
  • Help
  • For parents
  • For teachers
  • Student stories
  • Comparisons

Augment Education is developed independently of the International Baccalaureate Organization and is not endorsed by it. “IB” and “International Baccalaureate” are its trademarks.

© 2026 Augment Education. All rights reserved.

PrivacyTerms
  1. Subjects
  2. Computer Science
  3. B3 Object-oriented programming

B3 Object-oriented programming

How object-oriented programming moves from a single class (SL) to several related classes (HL), what each subtopic covers, and how OOP links to programming, databases and abstract data types.

  • IB Computer Science
  • SL and HL

What B3 covers

From the subject guide: what you need to know and be able to do.

Designing classes and objects, and building programs from several classes.

2 subtopics in Object-oriented programming

Each one has its own page once something is published for it.

  1. B3.1Fundamentals of OOP for a single class155 questions · notes · 65 quick fire
  2. B3.2Fundamentals of OOP for multiple classesHL only115 questions · notes · 60 quick fire

An overview of B3 Object-oriented programming

4 min readLast reviewed 14 Oct 2026

Introduction

Object-oriented programming (OOP) organises a program around objects, each combining data with the methods that act on that data. Every object is created from a class, a template that fixes which attributes its objects hold and which methods they can perform. The topic covers how to design, write and use one class at SL, and how several classes work together at HL.

Large programs, such as games, banking systems and apps with graphical interfaces, model many kinds of thing at once. Keeping each kind's data and behaviour together in one class makes the code easier to test, reuse and change, because a change inside a class need not affect the code that uses it. OOP also has costs: more planning before coding, and more structure than a short script needs.

How the subtopics connect

The two subtopics move from one class to many. Subtopic B3.1, Fundamentals of OOP for a single class, introduces programming paradigms, classes and objects, constructors, static and instance members, encapsulation with access modifiers, and UML class diagrams. It also explains inheritance and polymorphism as ideas, so that SL students can weigh up the strengths and weaknesses of OOP without writing code for them.

B3.1 One class: objects, constructors, static members, encapsulation, UML, inheritance, polymorphism as ideas. Arrow to HL (shaded) B3.2 Many classes: inheritance in code, overriding, overloading, abstract classes, composition, design patterns. Dashed: B2.3, B1.1, A3, B4.
B3.1 teaches everything about a single class and introduces inheritance and polymorphism as ideas; B3.2 (HL, shaded) puts them into code across several classes. Dashed boxes are related topics.

Subtopic B3.2, Fundamentals of OOP for multiple classes, is HL only. It writes the code for inheritance (superclasses, subclasses and calls to the superclass constructor) and polymorphism (method overriding and overloading), then adds abstract classes and interfaces, composition and aggregation between classes, and the singleton, factory and observer design patterns.

Subtopics at SL and HL

The split between the levels falls between the two subtopics, and neither contains statements of the other level.

Subtopic

Level

HL-only statements inside it

B3.1 Fundamentals of OOP for a single class

SL and HL

None

B3.2 Fundamentals of OOP for multiple classes

HL only

The whole subtopic: inheritance, polymorphism, abstraction, composition and aggregation, and design patterns

Inheritance and polymorphism therefore appear at both levels in different depth. SL students explain what they are and evaluate them; HL students also construct subclasses, override and overload methods, and trace which version of a method runs. The two course languages differ here: Java enforces access modifiers such as private, while Python relies on naming conventions, and Python has no method overloading.

Links to other topics

OOP grows out of topic B2, Programming. A method is a subprogram that belongs to a class, an attribute is a variable that belongs to an object, and modularisation becomes the division of a program into classes. In topic B4 (HL), each abstract data type is built as a class, such as a linked list made of node objects joined by references.

Computational thinking: Designing a class is abstraction in the sense of subtopic B1.1: a Student class keeps only the attributes and methods the program needs, such as a name and a list of grades, and ignores everything else about a real student. The word has a narrower meaning in B3.2 (HL), where an abstract class is one that cannot be instantiated.

UML class diagrams resemble the entity–relationship diagrams of subtopic A3.2, and many classes map onto database tables. The match is not exact: an entity–relationship diagram has no methods, and a class diagram has no foreign keys.

Linking question: Can OOP be applied to database development (A3)? A class resembles an entity, an object a record and an attribute a field, so programs often save objects as table rows. Objects can hold references to other objects and inherit from superclasses, which tables cannot store directly, so programs use an object-relational mapper to translate between the two.

Exam tip

OOP is examined in Paper 2. Expect to construct a class from a description or a UML class diagram, with its constructor, accessor and mutator methods, to create and use objects, and to distinguish between static and instance members. Evaluate questions on OOP need strengths and limitations with a conclusion. HL papers add questions that construct subclasses and polymorphic methods across several classes.

Flashcards for B3

The official decks for this part of the syllabus.

  • B3.1 Fundamentals of OOP for a single class293 cards
  • B3.2 Fundamentals of OOP for multiple classes270 cards

On this page

  • Syllabus points
  • Subtopics
  • Notes
  • Flashcards

Published for B3

Exam-style questions
245
Notes pages
3
Quick-fire questions
140
Key terms
54
Counted on 20 October 2026Open it in Augment

More of IB Computer Science

  • IB Computer ScienceThe Computer Science syllabus, assessment and what Augment has for it.

Carry on with B3 in Augment

With a free account, Augment remembers where you stopped and what you have practiced.

Start freeOpen B3 in Augment