First exams 2027 · SL & HL

B1.1.2 · Approaches to computational thinking

Fundamental Concepts of Computational Thinking

Long before a problem specification turns into working code, a computer scientist leans on four specific habits of thought to actually get from "here's a mess of a problem" to "here's a solution." Those four habits have names, and IB Computer Science expects you to know all four.

Core for SL & HL Typically 3–6 marks · AO1 Command term: describe

Explainer

Computational thinking isn't a single skill, it's a small toolkit of four distinct techniques, each suited to a different part of turning a real-world problem into something a computer can actually help solve. They're used together, but they each do a genuinely different job.

Df

Computational thinking is a set of problem-solving habits built from four fundamental concepts: abstraction, decomposition, pattern recognition and algorithmic design. None of the four is programming itself, all four happen before or alongside it, to make the eventual solution simpler, faster to build and easier to get right.

Worked example

Four concepts, one canteen app

A school wants to build an app that lets students pre-order their lunch so they can skip the queue. Click each concept to see exactly what it means and how it shows up in that one project.

Check your understanding

The canteen app's designers decide the ordering screen should only show an item's name, photo and price, and hide every other detail (supplier codes, storage temperature, allergen database IDs) that staff track internally. Which concept is this?

Common mistake

A recurring confusion in how this term first gets defined

RecurringA common weak answer defines decomposition as splitting a finished PROGRAM into smaller sub-programs or files. That's too late: decomposition happens while the PROBLEM is still being understood, before a single line of code exists to split up. What actually gets broken into smaller pieces is the problem itself, the resulting pieces then each get their own function, method or module once coding starts.

✕

Splits the code, not the problem: "Decomposition means splitting the canteen app's finished code into separate files for the menu, payment and kitchen dispatch." This describes organising a program that already exists, which is a design choice made afterwards, not decomposition itself.

✓

Splits the problem, before any code exists: "Decomposition means splitting the problem 'build a canteen ordering system' into smaller parts, choosing items, taking payment, notifying the kitchen, confirming pickup, before deciding how any of it will be coded." Correctly places decomposition at the problem stage, ahead of any actual programming decision.

Revision questions

Past-paper style. Write an answer, then reveal the marking points and mark yourself.

Question 1 · 2 marks

[2]Define the term decomposition.

Question 2 · 3 marks

[3]Identify the four fundamental concepts of computational thinking and give one real-world example of each.

Question 3 · 4 marks

[4]A school library wants an app to recommend books to students. Explain how pattern recognition and abstraction could each be applied when designing this system.

Flashcards

Active recall for this statement’s key terms.