You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
Abstraction is one of the four pillars of computational thinking. It involves removing unnecessary detail and focusing only on the information that is relevant to solving a problem. Abstraction allows us to create simplified models of complex systems, making them easier to understand, design, and implement. It is a key skill assessed in GCSE Computer Science.
In everyday life, abstraction is everywhere. When you look at a map, you do not see every tree, building, and person — you see a simplified representation that shows only the information you need (roads, place names, distances). The map is an abstraction of the real world.
In computer science, abstraction means:
Exam Tip: A common exam question asks you to explain what abstraction is and give an example. Always define it as "removing unnecessary detail to focus on the important information" and give a concrete example (like a map or a model).
The London Underground map is one of the most famous examples of abstraction:
| Real World | Abstracted Map |
|---|---|
| Actual geographic distances between stations | Simplified, evenly spaced stations |
| Real shapes of tunnels and tracks | Straight lines at 45° and 90° angles |
| Surface-level buildings and streets | Not shown at all |
| Station names and connections | Clearly shown — this is the essential information |
The map removes all the unnecessary geographic detail and focuses only on what a traveller needs: which stations are on which lines and where to change.
graph LR
A["Real-world detail<br/>(streets, tunnels,<br/>buildings, distances,<br/>terrain, traffic)"] --> B{"Abstraction<br/>filter:<br/>What does a<br/>traveller need?"}
B -->|keep| C["Stations<br/>Lines<br/>Interchanges"]
B -->|discard| D["Geography<br/>Surface roads<br/>Exact distances"]
C --> E["Simplified model<br/>(Tube map)"]
When designing a program for a school library system, you might create a class for "Book":
CLASS Book
title: STRING
author: STRING
ISBN: STRING
isAvailable: BOOLEAN
FUNCTION borrowBook()
FUNCTION returnBook()
END CLASS
This is an abstraction of a real book. A real book has weight, colour, number of pages, smell, and texture — but none of those details matter for the library system. Only the title, author, ISBN, and availability are relevant.
A weather forecast is an abstraction of the atmosphere. It simplifies millions of data points about temperature, pressure, humidity, and wind into a simple summary: "Sunny, 18°C, light breeze."
Abstraction is used extensively in programming:
score represents a number stored in memory, but you do not need to know the memory addresscalculateArea(length, width) without needing to know how it works internallyComputer science uses layers of abstraction. Each layer hides the complexity of the layer below:
| Level | Example |
|---|---|
| Application | A web browser displaying a webpage |
| High-level language | Python code that fetches and displays data |
| Low-level language | Assembly language instructions |
| Machine code | Binary instructions (0s and 1s) |
| Hardware | Electrical signals in transistors and circuits |
A programmer working in Python does not need to understand how transistors work. Each layer abstracts away the detail of the layer below.
It is important to understand the difference between abstraction and decomposition:
| Abstraction | Decomposition |
|---|---|
| Removes unnecessary detail | Breaks down a problem into parts |
| Focuses on what is relevant | Focuses on dividing the problem |
| Creates a simplified model | Creates a list of sub-problems |
| Example: A map showing only roads | Example: Planning a journey — book tickets, pack bags, travel to station |
Both techniques are often used together. You decompose a problem into parts, then abstract each part to focus on the essential details.
Exam Tip: If an exam question asks you to "identify the abstraction" in a scenario, look for what details have been left out or simplified. Explain what has been removed and why it is not needed.
Representational abstraction is the process of removing unnecessary details from a representation to make it simpler. For example:
Abstraction by generalisation involves grouping things based on common characteristics so that a single solution can apply to many cases. For example:
sort() function that works on any list, not just a specific oneVehicle class that can represent cars, buses, and lorries through inheritanceGeneralisation saves time because you solve the problem once and apply it many times.
Abstraction is about focusing on what matters and hiding unnecessary complexity. It is used in maps, models, programming languages, and system design. In GCSE Computer Science, you must be able to identify abstraction in scenarios, explain why it is useful, and apply it when designing solutions. Remember: abstraction simplifies, decomposition divides.
Abstraction is often described informally as "hiding detail", but at AQA GCSE level you are expected to understand how abstraction is used to control complexity, why it makes software easier to reason about, and when to apply different kinds of abstraction. This section develops the topic with two extended worked examples — marking a quiz and controlling a set of traffic lights — and finishes with grade-banded model answers.
AQA distinguishes (implicitly) between representational abstraction and abstraction by generalisation:
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.