Augment Education
    • Question bank
    • Quick fire
    • Worksheets
    • Flashcards
    • Notes
    • Try a quick-fire round
    • All features
    • Business
    • Digital Society
    • Economics
    • Geography
    • Global Politics
    • History
    • Philosophy
    • Psychology
    • Anthropology
    • World Religions
    • Biology
    • Chemistry
    • Physics
    • Computer Science
    • Design Technology
    • ESS
    • SEHS
    • Language and literature
    • Language acquisition
    • Maths AA
    • Maths AI
    • Dance
    • Film
    • Music
    • Theatre
    • Visual Arts
    • Grade calculator
    • Grade boundaries
    • Subject checker
    • Focus timer
    • Exam countdown
    • All free tools
    • IB guide
    • All subjects
  • Blog

Search

Search subjects, the syllabus, glossary terms, the booklets, the IB guide, help and the 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
  • Glossary
  • Blog
  • Free tools
  • Grade calculator
  • Subject checker

Company

  • About
  • Help
  • For parents
  • For teachers
  • Comparisons

Subjects

  • English A Lit
  • English A Lang & Lit
  • Chinese A Lit
  • Chinese A Lang & Lit
  • Spanish A Lit
  • Spanish A Lang & Lit
  • English Lit & Perf
  • Spanish Lit & Perf
  • English B
  • Mandarin B
  • Spanish B
  • English ab initio
  • Mandarin ab initio
  • Spanish ab initio
  • Business
  • Digital Society
  • Economics
  • Geography
  • Global Politics
  • History
  • Philosophy
  • Psychology
  • Anthropology
  • World Religions
  • Biology
  • Chemistry
  • Physics
  • Computer Science
  • Design Technology
  • ESS
  • SEHS
  • Maths AA
  • Maths AI
  • Dance
  • Film
  • Music
  • Theatre
  • Visual Arts

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.

  • Privacy
  • Terms
  1. Subjects
  2. Computer Science
  3. What changes at HL

What changes at HL

Know how the HL papers build on the SL ones, which HL-only topics add question parts and whole questions, how to answer recursion, multi-class OOP and ADT questions, and how to pace two-hour papers.

  • IB Computer Science
  • Exam skills
  • HL only

12 min readLast reviewed 14 Oct 2026

The same exams, extended

HL students sit the same two papers in structure as SL students, but longer, and every statement in the course can be examined, SL and HL alike. The SL papers never contain HL-only content; the HL papers contain everything. The course describes the HL difference as breadth and depth: an extra topic (B4, abstract data types), extra statements inside the SL topics, deeper research into the case study, and "networked knowledge", meaning more connections between different areas of the course.

In practice that gives three changes to prepare for. Paper 1 Section A reuses the SL questions and adds parts on HL-only topics. Paper 1 Section B is worth twice as much and draws on four case-study challenges instead of two. Paper 2 repeats two SL questions, including the no-code algorithmic thinking question, and fills the rest of its time with questions on HL-only programming topics.

HL only

Everything on the other Exam skills pages applies to you as well: command terms, Paper 1 technique, Paper 2 code questions and the algorithmic thinking question. What follows is only what is different at HL.

The structure (marks, timings, extra parts, four challenges, two repeated SL questions) comes from the course guide. No HL specimen paper is public yet, so what the extra parts and HL questions are "likely to ask" is inferred from the command terms of the statements and from earlier IB Computer Science papers.

HL Paper 1

Section A: SL questions with extra parts

HL Section A is made of the SL questions with additional question parts on HL-only topics in theme A. An extra part is likely to keep the context of the question it sits in: a question about a school network can gain a part on the TCP/IP model or on servers, and a database question can gain a part on aggregate functions or transactions. Nothing in the guide says the extra parts come only at the end of a question, so read every part in order.

HL-only content in theme A

What an extra part is likely to ask

A1.1.3 CPU and GPU differences; A1.1.6 pipelining in multi-core architectures

explain a difference in design or use; describe the stages of a pipeline

A1.3.5 multitasking and resource allocation; A1.3.6–A1.3.7 control systems

explain how the OS manages multitasking and shares resources; describe a control system's components and explain its use in a context

A1.4 Translation

evaluate interpreters, compilers, JIT compilation or bytecode interpreters for a scenario (rapid development, performance-critical, cross-platform)

A2.1.5 TCP/IP model; A2.2.2 servers; A2.3.4 static and dynamic routing

describe a layer's role or a server's function; explain how static or dynamic routing moves data

A2.4.2–A2.4.3 network vulnerabilities and countermeasures

describe an attack and a countermeasure for it

A3.3.4–A3.3.6 SQL aggregate functions, views, transactions

construct a query with AVG, COUNT, MAX, MIN or SUM; describe a view or how a transaction keeps data consistent

A3.4 Alternative databases and data warehouses

outline types of database; explain the objectives of a data warehouse or the role of OLAP and data mining; describe distributed databases

A4.2 Data preprocessing; A4.3 Machine learning approaches

describe data cleaning, feature selection or dimensionality reduction; explain linear regression or a classification technique; describe clustering such as k-means

The sports centre table Booking stores one row per court booking. An SL question about it might ask for a simple SELECT … WHERE; the HL extra part asks for a calculation.

booking_id

member_id

court

hours

1

101

1

2.0

2

102

2

1.0

3

101

1

1.0

4

103

2

3.0

5

104

1

1.5

6

102

3

2.0

Worked example

Construct an SQL query that shows each court and the total number of hours it has been booked, only for courts booked for more than 3 hours in total. [4]

Show the model answer
SQL
SELECT court, SUM(hours) AS total_hours
FROM Booking
GROUP BY court
HAVING SUM(hours) > 3;

Award [1] for each of:

  • SELECT court with SUM(hours);

  • FROM Booking;

  • GROUP BY court;

  • HAVING SUM(hours) > 3 (not WHERE, because the condition is on a group total).

Result: court 1 with 4.5 hours and court 2 with 4.0 hours; court 3 (2.0 hours) is left out.

The extra part tests HL knowledge in an SL setting, so the setting still matters. An answer that names the table's own columns and uses the scenario's numbers is marked as applied; a generic definition of an aggregate function is not.

Section B: four challenges

The case study booklet gives HL students four challenges to research instead of two, and Section B is worth 24 marks at HL against 12 at SL, with extended-response questions as well as short ones. The Exam skills page on the case study sets out the research plan and answer technique for both levels. At HL, give all four challenge sheets the same care, and expect at least one longer answer that weighs strategies using new stimulus material in the paper and ends in a justified recommendation.

Exam tip

HL Section A takes about 84 minutes and Section B about 36 at 1.5 minutes per mark. Within Section A, budget each HL extra part by its marks as you reach it (a 4-mark part is about 6 minutes) instead of leaving the HL parts until the end: they sit inside SL questions, so the context is freshest when you meet them.

HL Paper 2

The repeated SL questions

Two questions on HL Paper 2 are taken from the SL paper, and one of them is the algorithmic thinking question with no code. These are the questions with the most predictable shapes on the paper, so they are where well-practised technique earns marks fastest. Treat them exactly as an SL student would, without adding HL material they do not ask for.

The HL-only questions

The rest of HL Paper 2 covers the HL-only programming content of theme B. The command term of each statement sets the ceiling of what can be asked: a statement that says construct can ask you to write code, while one that says explain asks for reasons and diagrams.

HL-only content in theme B

Command term

Be ready to

B2.4.4 recursion and its applications

explain

explain base case, recursive case and the call stack; explain how quicksort works; weigh recursion against iteration

B2.4.5 recursive algorithms

construct, trace

write and trace simple, non-branching recursive functions with a call table

B3.2.1 inheritance

explain, apply

write a subclass that extends a class and calls the superclass constructor; explain access to private, protected, public and default members

B3.2.2 polymorphism

construct

override a method; in Java, overload one; explain which version runs

B3.2.3 abstraction (OOP)

explain

explain abstract classes and abstract methods

B3.2.4 composition and aggregation

explain

explain the difference between them and draw them in a UML class diagram

B3.2.5 design patterns

explain

explain singleton, factory and observer and where each helps

B4.1.1, B4.1.6 ADTs, hash tables

explain

explain ADTs, hashing, collision resolution and load factor; use HashMap/HashSet or dict/set

B4.1.2–B4.1.3 linked lists

evaluate, construct

sketch and code insertion, deletion, traversal and search (singly, doubly, circular); evaluate against arrays

B4.1.4 binary search trees

explain

sketch a BST after insertions and deletions; describe a search; give the three traversal orders

B4.1.5 sets

construct

write membership, add, remove, subset and superset checks; union, intersection and difference

Recursion and multi-class OOP each have a standard answer format worth practising; linked lists and sets are practised in subtopic B4.1, Fundamentals of ADTs. A recursion question is answered with a call table, which records each call, its parameters and its return value, because a normal trace table cannot show several unfinished calls at once. The function power raises a number to a whole-number power.

Python
def power(base, exp):
    if exp == 0:
        return 1
    return base * power(base, exp - 1)


print(power(2, 5))
Java version
Java
public class Power {
    public static int power(int base, int exp) {
        if (exp == 0) {
            return 1;
        }
        return base * power(base, exp - 1);
    }

    public static void main(String[] args) {
        System.out.println(power(2, 5));
    }
}

Worked example

(a) Identify the base case of power. [1]

(b) Trace the call power(2, 5) and state the value returned. [4]

(c) Explain what happens if power is called with a negative value of exp. [2]

Show the model answer

(a) exp == 0, which returns 1 without a further call. [1]

(b) The calls go down to the base case, then the return values come back up in reverse order:

Call

base

exp

Returns

1

2

5

2 × 16 = 32

2

2

4

2 × 8 = 16

3

2

3

2 × 4 = 8

4

2

2

2 × 2 = 4

5

2

1

2 × 1 = 2

6

2

0

1 (base case)

Value returned: 32.

Award [1] for the six calls with exp falling from 5 to 0, [1] for the base case returning 1, [1] for the return values 2, 4, 8, 16 built in reverse order, [1] for 32.

(c) exp keeps falling (−1, −2, −3, …) and never reaches 0, so the base case is never met [1]; each call adds a frame to the call stack until it runs out of space, raising a RecursionError in Python or a StackOverflowError in Java [1].

Common mistake

Writing the return values in a recursion trace in the order the calls are made. Nothing is returned until the base case is reached; the multiplications happen during unwinding, from the deepest call back to the first. Draw the call table downwards for the calls, then fill the "Returns" column from the bottom up.

Multi-class OOP questions usually give a class and ask you to extend it. The class Ticket stores an event and a price; the subclass StudentTicket adds a school and overrides get_price to apply a 20% discount.

Python
class Ticket:
    def __init__(self, event, price):
        self._event = event
        self._price = price

    def get_price(self):
        return self._price

    def describe(self):
        return self._event + ": " + str(self.get_price())


class StudentTicket(Ticket):
    def __init__(self, event, price, school):
        super().__init__(event, price)
        self._school = school

    def get_price(self):
        return self._price * 0.8


tickets = [Ticket("Concert", 12.5), StudentTicket("Concert", 12.5, "Westfield")]
total = 0
for t in tickets:
    print(t.describe())
    total = total + t.get_price()
print(total)
Java version
Java
import java.util.ArrayList;

class Ticket {
    protected String event;
    protected double price;

    public Ticket(String event, double price) {
        this.event = event;
        this.price = price;
    }

    public double getPrice() {
        return price;
    }

    public String describe() {
        return event + ": " + getPrice();
    }
}

class StudentTicket extends Ticket {
    private String school;

    public StudentTicket(String event, double price, String school) {
        super(event, price);
        this.school = school;
    }

    @Override
    public double getPrice() {
        return price * 0.8;
    }
}

public class TicketDemo {
    public static void main(String[] args) {
        ArrayList<Ticket> tickets = new ArrayList<Ticket>();
        tickets.add(new Ticket("Concert", 12.5));
        tickets.add(new StudentTicket("Concert", 12.5, "Westfield"));
        double total = 0;
        for (Ticket t : tickets) {
            System.out.println(t.describe());
            total = total + t.getPrice();
        }
        System.out.println(total);
    }
}
Plain text
Concert: 12.5
Concert: 10.0
22.5

Worked example

(a) Construct the class StudentTicket as a subclass of Ticket, with an extra attribute school and a version of get_price (getPrice in Java) that returns the price with a 20% discount. [4]

(b) Explain why the second line of output shows 10.0 although describe is defined only in Ticket. [2]

Show the model answer

(a) The StudentTicket class in the listing. Award [1] for each of:

  • the class header showing inheritance (class StudentTicket(Ticket): / class StudentTicket extends Ticket);

  • a constructor that takes three parameters and passes event and price to the superclass constructor (super().__init__(event, price) / super(event, price) as the first line);

  • the attribute school stored in the new object (private in Java);

  • get_price / getPrice overridden to return the price multiplied by 0.8.

(b) describe calls get_price() on the object it belongs to [1]; for a StudentTicket object, the overriding version in the subclass runs at run time (dynamic polymorphism), so it returns 12.5 × 0.8 = 10.0 [1].

In Java, price is protected in Ticket so the subclass can read it directly; if it were private, StudentTicket would have to call super.getPrice() instead. B3.2.1 names access to parent class members explicitly, so expect this rule to be tested. Python enforces no such rule; it relies only on the _price naming convention.

Questions that link topics

Networked knowledge shows up as questions whose parts come from different topics, joined by one context. A question on a hospital booking system could ask for a linked list of waiting patients (B4.1), a SQL query on the bookings (A3.3) and an explanation of why a hash table speeds up patient lookup (B4.1.6); a question on a game could combine a recursive function (B2.4.5) with a subclass hierarchy for game characters (B3.2). The linking questions printed at the end of each topic in the course, such as how stacks and queues relate to CPU interrupts, are good revision prompts for this style.

Exam tip

In a linked question, say which idea you are using and tie it back to the context: "a hash table, because looking up a patient by ID takes about the same time however many patients are stored". Examiners reward the connection made explicit; an answer that is correct in general but never mentions the hospital or the game is treated as unapplied.

Pacing two-hour papers

Both HL papers last two hours for 80 marks, the same 1.5 minutes per mark as SL, so the pressure is the length rather than the speed. Long code answers in Paper 2 take more than their share of time if you start them without a plan, so sketch the structure first: the class header and attributes, the method headers, then the bodies. If a recursion or linked-list part stalls, write the parts you are sure of (the base case, the loop that walks the list) and move on, because each feature earns its own mark.

Tip

Improve your notes: For each HL-only statement in the two tables, write one exam-style part of your own, with its command term and marks, and a markscheme of three or four marking points. Swap them with another HL student and answer each other's parts under timed conditions at 1.5 minutes per mark.

Checklist

  • To do:

    I know that HL papers examine every statement, and that SL papers never contain HL-only content.

  • To do:

    I expect HL extra parts inside SL questions in Paper 1 Section A, including in the middle of a question.

  • To do:

    I can list the HL-only statements in theme A and the kind of part each could produce.

  • To do:

    I have a challenge sheet for all four case-study challenges and have practised an extended Section B answer.

  • To do:

    I know which two SL questions HL Paper 2 repeats, including the no-code question.

  • To do:

    I can trace a non-branching recursive function with a call table and explain what happens without a reachable base case.

  • To do:

    I can construct a subclass with a superclass constructor call and an overridden method in my language.

  • To do:

    I can explain access to private, protected and public members from a subclass.

  • To do:

    I can sketch and code linked-list operations and sketch a BST with its traversals.

  • To do:

    I can write set operations and explain hash tables, collisions and load factor.

  • To do:

    I tie every answer in a linked question back to its context.

  • To do:

    I can pace an 80-mark, two-hour paper at 1.5 minutes per mark.

Keep your place

In Augment the notes remember where you stopped and which pages you have finished.

Open in Augment

More IB Computer Science notes

  • The algorithmic thinking questionThe page before this.
  • The computational solution: overviewThe next page.
  • Computer Science assessmentEach Computer Science paper, the internal assessment and grade boundaries.
  • IB Computer ScienceThe Computer Science syllabus, how it is assessed and every notes page.

Carry on with Computer Science in Augment

With a free account, Augment remembers where you stopped in the notes and which questions you have marked.

Start free