Thinking Abstractly: Hiding Detail to Solve Problems (OCR A-Level CS 2.1.1)
OCR A-Level CS 2.1.1: what abstraction is, why we need it, how an abstraction differs from reality, and how to devise an abstract model — with worked examples.

Free Thinking Abstractly revision resources (OCR A-Level Computer Science, 2.1.1)
We’ve made exam-style practice for this exact topic, free to download: Thinking Abstractly question sheet, mark scheme and cheat sheet. Grab them, have a go, then read the full guide below.
Welcome to Paper 2 (Algorithms & Programming), where the focus shifts from how computers work to how we solve problems with them. The very first skill is abstraction — and spec point 2.1.1 wants you to know what it is, why we need it, how it differs from reality, and how to build an abstract model. It's a reliable source of marks because the same ideas come up every year.
Let's make it concrete (ironically).

What abstraction is
Abstraction means representing a problem by hiding or removing the details that don't matter, so you can focus on the ones that do. You strip away the irrelevant to reveal the essential.
The classic example is a transit map (like the London Underground). The real network is a tangle of curving tunnels at true distances and depths. The map throws almost all of that away: it keeps which stations exist, which line connects them, and the order — and drops real distances, scale and above-ground geography. For a traveller working out how to get from A to B, the abstraction is actually more useful than an accurate map, because it shows only what they need.
That's abstraction: a simplified model that keeps the relevant and discards the rest.
Why we need abstraction

Real problems are too complex to solve all at once. Abstraction is the tool that makes them manageable:
It reduces complexity by removing detail, so the problem becomes small enough to reason about and solve.
It lets you focus on the key elements and ignore distractions.
It produces a model you can analyse, test and turn into an algorithm.
A good abstraction is often general, so the same solution works for many similar problems (e.g. a "shortest route" algorithm works for sat-navs, networks and delivery planning alike).
Think of designing a school timetabling system. Relevant details: which rooms a subject needs, how many hours each class requires, which classes can't clash. Irrelevant: the names of the teachers and pupils, the colour of the classroom walls, the age of the building. Abstraction means deliberately ignoring the irrelevant so the real problem can be solved.
How an abstraction differs from reality
An abstraction is not the real thing — by design, it leaves things out. That's its strength, but also its limitation. You should be able to name the differences (or drawbacks):
It omits detail, so information is lost — the tube map can't tell you the real walking distance between two close stations.
It can be misleading if you forget what was removed (the map makes far-apart stations look adjacent).
It only models one purpose well; use it for something else and it may fail.
A model is only as good as its assumptions — if those are wrong, so is the result.
The exam phrasing is usually "give differences between an abstraction and reality" or "drawbacks of using this abstraction" — and these points answer it directly.
Worked example: a graph as an abstraction of a road network
Sat-nav software doesn't store the real, physical roads. It stores a graph: each junction becomes a node, each road a weighted edge (the weight = distance or time). Everything else — the tarmac, the scenery, the exact bends — is abstracted away because it's irrelevant to finding a route.
Relevant (kept): junctions, which roads connect them, and their length/time.
Irrelevant (removed): road surface, surrounding buildings, exact shape of each road.
This abstraction is what lets a routing algorithm (like Dijkstra's) work on any network — roads, computer networks, delivery rounds — because the messy reality has been reduced to nodes and edges.
Common exam mistakes
Defining abstraction as "simplifying". Be precise: it's removing/hiding the details that aren't relevant to focus on those that are.
Forgetting the "why". State a benefit: reduces complexity so the problem becomes solvable.
Listing irrelevant details as relevant. In a model, names and cosmetic facts are usually irrelevant; structure and constraints are relevant.
Not naming a difference from reality. Have one ready: an abstraction loses information and can mislead if you forget what's missing.
Confusing abstraction with decomposition. Abstraction = remove detail; decomposition = break into sub-problems. Don't mix them up.
Quick recap
Abstraction = representing a problem by removing/hiding irrelevant detail to focus on what matters.
We need it because it reduces complexity, makes problems solvable, and produces reusable, general models.
An abstraction differs from reality: it omits detail, can mislead, and only fits its intended purpose.
A graph is a classic abstraction of a road network — junctions as nodes, roads as weighted edges.
Keep the relevant (structure, constraints); discard the irrelevant (names, cosmetics).
Frequently asked questions
What is abstraction in computer science? Abstraction is representing a problem by removing or hiding the details that are not relevant, so you can focus on the details that are. It produces a simplified model of reality — like a transit map that keeps stations and connections but drops real distances — that is easier to reason about and turn into a solution.
Why is abstraction needed when solving problems? Abstraction is needed because real problems are too complex to handle all at once. By removing irrelevant detail it reduces complexity, making a problem small enough to reason about and solve, lets you focus on the key elements, and produces a model that can be analysed, tested and reused for similar problems.
How does an abstraction differ from reality? An abstraction differs from reality because it deliberately leaves out detail, so information is lost. It can mislead anyone who forgets what was removed, it only models one purpose well, and it is only as reliable as the assumptions behind it. These differences are the trade-off for the simplicity it provides.
What is an example of an abstract model? A graph used by sat-nav software is an abstract model of a road network: each junction is a node and each road is a weighted edge, with the weight representing distance or time. The physical road surface, scenery and exact shape are abstracted away because they are irrelevant to finding a route.
What is the difference between abstraction and decomposition? Abstraction means removing or hiding irrelevant detail to focus on what matters, producing a simpler model. Decomposition means breaking a large problem down into smaller sub-problems that can be solved individually. They are complementary computational-thinking techniques but they are not the same thing.
Why is a transit map a good example of abstraction? A transit map is a good example because it keeps only the details a traveller needs — which stations exist, which lines connect them and in what order — and removes real distances, scale and geography. For planning a journey this simplified abstraction is more useful than a geographically accurate map.


