📁 Paper 1 · 3.1 Fundamentals of Algorithms
3.1.1a Computational Thinking — Abstraction and Decomposition
AQA 8525 · GCSE Computer Science · ~10 min read
Notes
──
Video
──
Slides
──
Worksheet
──
Quiz

What is Computational Thinking?

Computational thinking is a set of problem-solving skills and techniques that allow us to approach complex problems in a structured way that a computer can help solve. It is the foundation of all programming and algorithm design.

The AQA 8525 specification focuses on two core aspects of computational thinking: decomposition and abstraction. Both are used before any code is written — they are thinking tools, not programming concepts.

Algorithms

Before covering decomposition and abstraction, it is important to understand what an algorithm is, because both techniques are used to help create one.

An algorithm is a sequence of steps that can be followed to complete a task. Key points:

  • An algorithm must have a clear starting point and produce a result
  • Each step must be precise and unambiguous
  • A computer program is an implementation of an algorithm — it is the algorithm written in a programming language
  • An algorithm is not a computer program — it is a plan or design that can be expressed in pseudo-code, flowcharts, or plain English before any code is written
Exam tip: AQA will test whether you know the difference between an algorithm and a computer program. An algorithm is the plan; a program is the implementation of that plan in a specific language.

Decomposition

Decomposition means breaking a problem down into a number of smaller sub-problems, so that each sub-problem accomplishes an identifiable task. Each sub-problem might itself be further subdivided until each part is small enough to be solved directly.

Why decompose?

  • Large problems are overwhelming — decomposition makes them manageable
  • Sub-problems can be worked on independently or in parallel by different people
  • Each sub-problem can be tested separately
  • Solutions to sub-problems can be reused in other projects

Example: Building a school library system

The main problem — "build a library system" — can be decomposed into:

  • Manage book catalogue (search, add, remove)
  • Manage member accounts (sign up, log in, view history)
  • Handle borrowing and returning books
  • Send overdue reminders
  • Generate reports for the librarian

Each of these could be decomposed further. For example, "manage member accounts" could break into: create account, verify login credentials, display borrowing history, update personal details.

Abstraction

Abstraction is the process of removing unnecessary detail from a problem, focusing only on what is relevant to the solution.

When solving a problem, there is always more information available than is needed. Abstraction means identifying and keeping only the essential details while ignoring or hiding everything else.

Why abstract?

  • Makes the problem simpler to understand and solve
  • Prevents getting distracted by irrelevant details
  • Produces a more general solution that can apply to similar problems
  • Reduces complexity, making programs easier to design and maintain

Example: A sat-nav app

A sat-nav needs to represent roads and routes. The real world has enormous detail. Abstraction removes what is not needed:

Kept (relevant)Abstracted away (not needed)
Road names and numbersColour of road surface
Speed limitsTrees and hedges alongside roads
Junctions and directionsIndividual buildings (unless routing to them)
Distances between pointsNumber of lanes on each road

Example: A school timetable

A timetabling program needs: teacher names, subjects, rooms, class sizes, available times. It does not need: teachers' shoe sizes, room paint colours, subjects' historical origins, students' home addresses.

How Decomposition and Abstraction Work Together

These two techniques are used together at the start of any project:

  1. Decompose the big problem into manageable sub-problems
  2. Abstract each sub-problem — identify only the data and processes that are needed
  3. Design an algorithm for each sub-problem
  4. Implement the algorithms as a computer program
Exam tip: Decomposition = breaking the problem into smaller parts. Abstraction = removing unnecessary detail from each part. Learn both definitions word-for-word — AQA often asks you to "define" or "explain" these terms for 1–2 marks.
⚠️ Common Mistakes
  • Confusing abstraction with decomposition — decomposition breaks things apart; abstraction removes irrelevant detail
  • Saying a computer program IS an algorithm — a program implements an algorithm; they are different things
  • Thinking abstraction means making something vague — it means making something simpler by removing what is not needed
  • Forgetting that sub-problems from decomposition can themselves be further decomposed
✅ Notes completed — well done!
Video coming soon
This lesson video is in production

Key points covered in this video

  • What an algorithm is and how it differs from a computer program
  • Decomposition — breaking a problem into sub-problems with worked examples
  • Abstraction — removing unnecessary detail with real-world examples
  • How decomposition and abstraction work together in the design process
  • Exam technique: how to answer "define" and "explain" questions on these topics
Click slide or press arrow keys to navigate
✍️

Exam-style Worksheet — 3.1.1a Computational Thinking

8 AQA-style questions · 20 marks total · AI will mark your answers and give feedback

Q1Define the term algorithm.[1 mark]
✅ Mark scheme
Mark scheme
A sequence of steps that can be followed to complete a task. [1 mark]
Q2Define the term decomposition.[1 mark]
✅ Mark scheme
Mark scheme
Breaking a problem into a number of sub-problems so that each sub-problem accomplishes an identifiable task. [1 mark]
Q3Define the term abstraction.[1 mark]
✅ Mark scheme
Mark scheme
The process of removing unnecessary detail from a problem. [1 mark]
Q4Explain the difference between an algorithm and a computer program.[2 marks]
✅ Mark scheme
Mark scheme
An algorithm is a sequence of steps that describes how to solve a problem [1]; a computer program is an implementation of an algorithm written in a programming language [1].
Q5A student is designing a program to manage a school sports day. Describe how decomposition could be applied to this problem.[3 marks]
✅ Mark scheme
Mark scheme (any 3)
Decomposition means breaking the problem into smaller sub-problems [1]. Examples of sub-problems (any 3 for 3 marks): manage event entries (which students enter which events) [1]; record results for each event [1]; calculate points totals for each team/house [1]; produce a report or leaderboard [1]; manage scheduling of events [1].
Q6A programmer is building a mapping app. Give THREE examples of details that could be abstracted away (removed as unnecessary) when representing the road network.[3 marks]
✅ Mark scheme
Mark scheme (any 3)
One mark each for any three reasonable examples such as: colour of road surface [1]; trees or vegetation beside roads [1]; number of lanes [1]; road surface material [1]; buildings that are not destinations [1]; lamp posts [1]; road markings [1].
Q7Explain why abstraction is useful when designing a solution to a complex problem.[3 marks]
✅ Mark scheme
Mark scheme (any 3)
Removes unnecessary detail so the problem is simpler to understand [1]; prevents distraction from irrelevant information [1]; makes the solution easier to design and implement [1]; can produce a more general solution that works for similar problems [1]; reduces complexity making the program easier to maintain [1].
Q8A company wants to build an online shopping system. Describe how decomposition and abstraction could each be applied, giving an example of each.[4 marks]
✅ Mark scheme
Mark scheme
Decomposition: breaking the system into sub-problems [1] e.g. product catalogue, shopping basket, payment processing, order tracking [1]. Abstraction: removing unnecessary detail from each sub-problem [1] e.g. the product database stores name, price, stock level but not the factory where items were made [1].
out of 18 marks
Topic Quiz
Question 1 of 15
You scored
out of 15
Card 1 of 6
Algorithm
A sequence of steps that can be followed to complete a task. Not the same as a computer program.
Click to flip
🎉
All cards reviewed!
TermDefinition
🎯

Mini Test — 3.1.1a Computational Thinking

Timed exam conditions. No feedback until you submit.

  • 10 questions · 10 marks · 10 minutes
  • 5 multiple choice + 5 short answer
  • No hints or immediate feedback
  • Mark schemes revealed after submission
First lesson
1 of 57 · AQA 8525
3.1.1b Representing Algorithms →