IB Computer Science HL · Year 2 · Lesson 11

OOP foundations + UML class design

Object-oriented programming models a problem through classes and objects, with clear responsibilities and controlled access to state.

Paper 250 minutesB3.1.1 · B3.1.2
Today’s targets

What you need to be able to do

2 / 9
  • EvaluateThe fundamentals of OOP
  • ConstructA design of classes, their methods and behaviour
B3.1.1B3.1.2
Paper 2 lensMatch the depth of every response to the command term. Previously learned content can move quickly, but retrieval must still be accurate.
Retrieve

Rapid Recall Deck

3 / 9

Say the answer aloud before flipping. Mark secure knowledge quickly and spend time on the gaps.

  • What is the difference between a class and an object?: A class is a blueprint that defines data and behaviour; an object is a specific instance created from that class.
  • What are attributes and methods?: Attributes store an object's state; methods define operations or behaviour associated with the class.
  • What are the core OOP concepts?: Classes, objects, inheritance, encapsulation, and polymorphism.
  • What does a UML class diagram represent?: A class's name, attributes, methods, and relationships with other classes to support software design and planning.
  • Why can OOP be useful for modelling real-world systems?: It groups related state and behaviour into objects that can mirror entities and responsibilities in the problem domain.
  • What is one potential disadvantage of OOP?: For small or simple problems it can introduce extra classes, indirection, and design complexity that may not be necessary.
B3.1.1 + B3.1.2 · Learn

Core knowledge and application

4 / 9
B3.1.1Evaluate

The fundamentals of OOP

Object-oriented programming models a problem through classes and objects, with clear responsibilities and controlled access to state.

Exam moveWeigh strengths and limitations in context, then reach a supported judgement.
Required detail 1Model real-world entities using OOP concepts: classes, objects, inheritance, encapsulation, polymorphism
Required detail 2The advantages and disadvantages of using OOP in various programming scenarios
Assessment boundaryPaper 2

Explain it without notes

Evaluate: The fundamentals of OOP in the context of a library-management application.

  • Model real-world entities using OOP concepts: classes, objects, inheritance, encapsulation, polymorphism
  • The advantages and disadvantages of using OOP in various programming scenarios
B3.1.2Construct

A design of classes, their methods and behaviour

Object-oriented programming models a problem through classes and objects, with clear responsibilities and controlled access to state.

Exam moveProduce the required code, diagram, query, model or representation accurately.
Required detail 1Classes and their methods, based on application requirements
Required detail 2Use of unified modelling language (UML) class diagrams to represent class relationships, attributes and methods, to aid effective software design and planning
Assessment boundaryPaper 2

Explain it without notes

Construct: A design of classes, their methods and behaviour in the context of a library-management application.

  • Classes and their methods, based on application requirements
  • Use of unified modelling language (UML) class diagrams to represent class relationships, attributes and methods, to aid effective software design and planning
Trace / construct

Programming checkpoint

5 / 9
class Book:
    def __init__(self, title):
        self.title = title
        self.on_loan = False

    def borrow(self):
        self.on_loan = True
Before you run itTrace the code by hand. Identify state changes, branch/loop behaviour, and the final result.

Modify it

Change one condition, input or operation so the program solves a slightly different problem. Predict the effect before editing.

Worked example · B3.1.2

Turn requirements into a UML class design

6 / 9

Requirement: “A library book has a title, an ISBN and a loan status. It can be borrowed and returned.”

Book
- title: String
- isbn: String
- onLoan: Boolean

+ borrow(): void
+ returnBook(): void
+ isAvailable(): Boolean

Read the design: the class name is separated from attributes and methods. Visibility, names and data/return types make the intended behaviour precise enough to guide implementation.

ConstructDesign a Member class with at least two attributes and two behaviours needed by the same library system. Explain one advantage and one disadvantage of using an OOP design here.
Apply

Transfer to a new scenario

7 / 9
ScenarioA library-management application needs a design or technical decision related to today’s topic. Explain what matters and why.
  • Model real-world entities using OOP concepts: classes, objects, inheritance, encapsulation, polymorphism
  • The advantages and disadvantages of using OOP in various programming scenarios
  • Classes and their methods, based on application requirements
  • Use of unified modelling language (UML) class diagrams to represent class relationships, attributes and methods, to aid effective software design and planning
Exam lens

Paper 2 practice

8 / 9
Build the response before checking notesUse precise terminology and match the required depth.
  1. Evaluate: The fundamentals of OOP in the context of a library-management application.
  2. Construct: A design of classes, their methods and behaviour in the context of a library-management application.
Self-checkAnswer the exact command term. For explain, include mechanism/reason; for compare, pair criteria; for discuss/evaluate/justify, build supported reasoning and a conclusion.
Homework

Finish the learning cycle

9 / 9

IA — main task

Continue Criterion D development. Keep code readable, record meaningful implementation decisions, and maintain testing/evidence notes as you work.

Syllabus — short

Complete one targeted Paper 2/Paper 1 retrieval task from today’s lesson.