GCSEPaper 2AlgorithmsComputational thinking
2.1.1

Computational thinking

Abstraction, decomposition and algorithmic thinking and how they help solve problems.

Learning Objectives

  • 1Understand the three principles of computational thinking: abstraction, decomposition and algorithmic thinking
  • 2Explain how each principle is used to define and refine a problem
  • 3Apply these principles to a given, specific scenario rather than describing them generically

What is computational thinking?

Computational thinking is a way of solving problems by thinking like a computer scientist. Before you can write a program, you first need to understand and plan out the problem, computational thinking is how you do that. There are three principles you need to know: decomposition, abstraction, and algorithmic thinking.
Computational thinking is the process of thinking about a problem in a way that makes it easier to solve, usually before any code is written. It is a planning and problem-solving skill, not a programming skill. The specification requires you to understand three principles: decomposition, abstraction, and algorithmic thinking, and how each one is used to define and refine problems.
Computational thinking describes the set of problem-solving principles used to define and refine a problem before a solution is designed or coded. OCR requires three specific principles: decomposition, abstraction, and algorithmic thinking. Exam questions almost always ask you to apply one of these principles to a specific given scenario, not to define the term in the abstract, generic definitions with no reference to the scenario are not awarded marks.

Think of it like...

Computational thinking is like planning a house before building it, you work out the rooms, what to focus on, and the steps to build it, all before laying a single brick.

Decomposition

Decomposition means breaking a big, complicated problem down into smaller, simpler sub-problems. Each smaller part is easier to understand and solve on its own. For example, "build a website" could be broken into "design the pages", "write the code", and "test it".
Decomposition is the process of breaking down a complex problem into smaller, more manageable sub-problems, each with a clear, identifiable task. These sub-problems can sometimes be broken down further themselves. Using decomposition makes a problem easier to understand, design, implement and debug, and allows different sub-problems to be worked on separately, for example by different members of a team.
Decomposition is the deliberate division of a complex problem into smaller, self-contained sub-problems, each solvable independently before being recombined into a complete solution. Correct exam answers identify a genuine sub-division of the specific scenario given, for example splitting a program into a separate algorithm for each distinct task it performs, rather than simply describing how data happens to already be stored or organised.
Run a cafeTake orderCook foodTake paymentEach sub-problem is smaller andEasier to solve on its ownSub-problems can be broken down further too

Abstraction

Abstraction means removing unnecessary detail from a problem so you can focus on what actually matters. A map is a good example, it leaves out things like individual trees and buildings so you can focus on the roads you need.
Abstraction is the process of removing unnecessary detail from a problem, so that only the essential features needed to solve it remain. This helps you focus on the important aspects of a problem and avoids wasting time developing parts that are not actually needed for the solution.
Abstraction is the removal of irrelevant detail from a problem or model, retaining only the features essential to solving the task at hand. Correct exam answers identify something specific that could sensibly be focused on or ignored within the given scenario, for example focusing only on event names in a scheduling program while ignoring irrelevant details like a person's exact address.

Algorithmic thinking

Algorithmic thinking is the ability to come up with a clear, step-by-step set of instructions (an algorithm) that solves a problem. It is the "how do I actually do this, in order" part of problem solving.
Algorithmic thinking is the ability to create a clear, logical set of steps (an algorithm) that solves a problem. It helps you develop step-by-step solutions and identify the most efficient way to solve a problem, once decomposition and abstraction have clarified what actually needs solving.
Algorithmic thinking is the process of expressing a solution as a precise, ordered sequence of steps that can be followed unambiguously, typically by a computer. It builds directly on decomposition and abstraction: once a problem has been broken down and simplified, algorithmic thinking is used to work out the exact sequence of actions required to solve each part.

Applying computational thinking to a scenario

Exam questions almost always give you a scenario (like a sports day results system or a cafe ordering app) and ask you to explain how decomposition or abstraction was used in that scenario. Just defining the word "decomposition" is not enough, you need to explain it using details from the actual scenario.
The biggest skill examiners test is applying a principle to the scenario given in the question, not reciting a textbook definition. A generic definition of decomposition or abstraction, with no link to the scenario, scores no marks. Instead, identify something specific: what was broken down into sub-problems, or what detail was focused on or ignored, and explain it using the scenario's own details.
No marks are given for a generic definition of abstraction or decomposition alone, examiners require the answer to reference the specific context provided. For decomposition, strong answers describe genuine sub-division, such as a separate algorithm or sub-program for each distinct task, rather than simply restating how data happens to already be organised. For abstraction, strong answers name something specific in the scenario that was focused on or deliberately ignored, and justify why.

Exam Phrasing: Use These Exact Phrases

  • ✓Decomposition breaks a complex problem into smaller, more manageable sub-problems
  • ✓Abstraction removes unnecessary detail so you can focus on the essential parts of a problem
  • ✓Algorithmic thinking is creating a clear, step-by-step solution to a problem
  • ✓Answers must reference the specific scenario given, not a generic definition
  • 💡When asked to explain abstraction or decomposition, always name something specific from the scenario, a generic dictionary-style definition on its own scores no marks.
  • 💡For decomposition, a strong answer describes splitting the actual program/task into separate parts (e.g. a separate algorithm per task), not just how existing data is already stored.
  • 💡For abstraction, a strong answer names something specific that was focused on or deliberately ignored, and briefly says why.
  • 💡Decomposition, abstraction and algorithmic thinking are three separate, named principles, don't blend them together in one vague answer.

Wrong:

Decomposition means the data was already split into separate variables or tables

Right:

Decomposition means the program or problem itself was deliberately broken into smaller sub-problems, such as a separate algorithm for each task

Why it matters: Examiners specifically noted that simply describing how data was already stored is not true decomposition, it must be an active breaking-down of the problem.

Wrong:

Abstraction means simplifying the whole problem in general

Right:

Abstraction means removing one specific, identifiable piece of unnecessary detail while keeping something specific

Why it matters: A vague "make it simpler" answer does not show understanding, examiners want a specific example of what was focused on or ignored.

Wrong:

Just defining what decomposition or abstraction means answers the question

Right:

The definition must be applied directly to the scenario given in the question

Why it matters: OCR examiners give no marks for generic definitions with no reference to the specific context provided.

Question:

A school is creating a program to manage its sports day. The program stores each student's name, house, and event, and calculates which house wins overall. Describe one example of decomposition and one example of abstraction the school could use when designing this program. [4]

💡 Attempt this before revealing the answer, practice makes perfect!

Model Answer:

Decomposition: the sports day program could be broken down into separate sub-problems, such as a separate algorithm for registering students, a separate algorithm for recording event results, and a separate algorithm for calculating the winning house. Abstraction: the program could focus only on the details needed to calculate the winner, such as house and points scored, while ignoring irrelevant detail like each student's exact date of birth.

Mark Scheme:

  • 1Identifies a genuine sub-division of the sports day program into separate parts/algorithms (decomposition)
  • 2Links the sub-division directly to the sports day scenario, not a generic description
  • 3Identifies a specific detail that would be focused on or ignored (abstraction)
  • 4Links the abstraction example directly to the sports day scenario, not a generic description

Tap a card to flip it. Use the arrow keys to move and space to flip.

Known 0 Still learning 0
1 / 12

Exam-style questions. Have a go, then reveal the mark scheme to check your answer.

1.Define the term "decomposition".

[1]

2.Define the term "abstraction".

[1]

3.A company is designing an app to manage deliveries. The app tracks each driver's name, vehicle, delivery route, and estimated arrival time. Explain, using this scenario, one example of decomposition the designers could use.

[2]

4.Using the same delivery app scenario, explain one example of abstraction the designers could use.

[2]

5.Explain how algorithmic thinking is used when developing a solution to a problem.

[2]

6.A school wants a program to manage lending books from its library. Explain how abstraction and decomposition would be used when designing this program.

[6]

The examiners' reports are the most useful and least read of the three: they say what candidates actually got wrong each year. All files are hosted by OCR.

Past-paper questions grouped by topic

The same OCR questions, sorted by topic rather than by year (via Physics & Maths Tutor).

2024
Paper 2

When asked about abstraction and decomposition in a given scenario, no marks were given for generic definitions of the terms. Candidates had to reference the specific scenario: abstraction credit went to answers focusing on/ignoring something sensible within the context (e.g. event names), and decomposition credit went to answers describing a genuine breakdown of the program (e.g. a separate algorithm per event) rather than just how data was already stored.

Paper 2

Decomposition was reported as more difficult for candidates to correctly identify than abstraction, many candidates only described how data was already separated (e.g. into different variables), which was not accepted as true decomposition. The most successful answers discussed decomposing the program itself, such as having a separate algorithm for each event.