Track progress, take quizzes and save notes on this lesson.

Free forever · no card needed

Start free
Intermediate

Abstraction and Automation

4.4.1 Abstraction and automation

Aligned to the AQA 7517 specification

Level
Intermediate
Reading time
7 min
Published
13 June 2026
Updated
1 July 2026
On this page
  1. 1.What Is Abstraction?
  2. 2.Types of Abstraction
  3. 3.Decomposition and Composition
  4. 4.Information Hiding and Abstraction Layers
  5. 5.Automation
  6. 6.Problem Reduction
  7. 7.Common Exam Mistakes

Key takeaways

  • Abstraction is the process of removing unnecessary detail to focus on what is essential for the task at hand.
  • AQA's problem-solving process has four stages: define the problem, abstract, design an algorithm, and automate.
  • AQA identifies seven types of abstraction: representational, generalisation/classification, information hiding, procedural, functional, data, and problem reduction.
  • Information hiding makes internal details inaccessible to external code, not destroyed; the implementation still exists inside the module but is not exposed.
  • Automation implements an abstract model as a program a computer can execute; the program is a running instance of the model, not the model itself.

What Is Abstraction?

Abstraction is the process of removing unnecessary detail to focus on what is essential for the task at hand. It is one of the most important ideas in computer science.

A map is a classic example: a road map removes buildings, topography, and irrelevant details to show only roads, junctions, and distances. The abstraction is useful precisely because of what it leaves out.

In computing, abstraction allows programmers to work at a higher level without needing to understand every implementation detail below them.

The problem-solving process in computer science follows four stages:

  1. Define the problem — understand what needs to be solved; identify inputs, outputs, and constraints
  2. Abstract — represent the problem as a model, removing irrelevant detail
  3. Design an algorithm — devise a step-by-step solution to the abstract model
  4. Automate — implement the algorithm as a program that a computer can execute

Types of Abstraction

AQA identifies seven types of abstraction:

TypeMeaningExample
RepresentationalRemove unnecessary detail from a modelLondon Underground map — distances distorted, surface geography removed
Generalisation / classificationIdentify common properties and group similar entities into a classA Shape class generalises Circle, Rectangle, Triangle
Information hidingConceal implementation details; expose only the interfacesort(arr) — you call it without knowing the sorting algorithm used
ProceduralRepresent a process as a named subroutine, hiding the stepsprintReceipt() — the caller does not know what it prints or how
FunctionalTreat a subroutine as a pure mapping from inputs to outputs, ignoring side effectssqrt(x) — known only by its input/output contract
DataHide the implementation of a data structure behind its interface (ADT)A stack — exposed as push/pop/peek; implemented as array or linked list
Problem reductionTransform an unfamiliar problem into one with a known solutionShortest path on a map → single-source shortest path in a weighted graph

Decomposition and Composition

Decomposition means breaking a large problem into smaller, more manageable sub-problems that can each be solved independently.

Benefits of decomposition:

  • Sub-problems are simpler to design, implement, and test
  • Different team members can work on different sub-problems in parallel
  • Sub-solutions can be reused in other projects

Composition is the reverse: combining the solutions to sub-problems to produce the solution to the whole problem. The sub-solutions must have well-defined interfaces so they can be connected.

Decomposition and composition are core practices in structured and object-oriented programming. A function that calls other functions is an example of composition: processOrder() composes validatePayment(), updateStock(), and sendConfirmation().

Information Hiding and Abstraction Layers

Information hiding (also called encapsulation in OOP) separates the what of a component from the how. External code depends only on the interface — it has no knowledge of the internal workings.

Example — a Stack ADT:

Interface (what):    push(item)  pop()  peek()  isEmpty()
Implementation (how): could be array-based or linked-list-based

Switching from an array implementation to a linked-list implementation does not affect any code that uses the stack — only the internal implementation changes.

Abstraction layers stack on top of each other in real systems:

Each layer hides complexity from the layer above. A Python programmer does not need to understand transistor physics to read a file.

How much of this have you taken in?

Quiz yourself on this section, free, no card needed.

Test myself

Automation

Automation is the implementation of an abstract model as a program that a computer can execute. The model (algorithm) was designed at the abstraction stage; automation brings it to life in a programming language.

Three key ideas in automation:

  1. The model must be computationally tractable — it must be expressible as an algorithm that terminates in a reasonable time
  2. The program is a running instance of the model — not the model itself; the same model can be automated in many languages
  3. Bugs often indicate a gap between the model and the implementation — the algorithm is correct but the code does not faithfully implement it (or the model does not correctly represent the problem)

Example — sorting as automation:

  • Problem: given an unsorted list, produce a sorted version
  • Abstract model: a comparison-based algorithm (e.g. merge sort) operating on abstract elements with a defined ordering relation
  • Automation: a Python or pseudocode function implementing merge sort on a concrete list of integers

Problem Reduction

Problem reduction transforms an unfamiliar or hard problem into a known problem with an existing solution.

Examples:

New problemReduced toSolution
Shortest route between two townsSingle-source shortest path in a weighted directed graphDijkstra's algorithm
Matching students to universitiesStable matching problemGale-Shapley algorithm
Scheduling tasks with dependenciesTopological sort of a DAGKahn's algorithm
Searching a sorted listBinary search on an arrayBinary search algorithm

The power of problem reduction is that once a problem class has a known solution, any problem reducible to it is also solved. This is the foundation of algorithm design and also of complexity theory (P vs NP).

Common Exam Mistakes

1. Confusing abstraction with simplification

Abstraction is not simply "making things simpler." It is selectively removing irrelevant detail while preserving the properties needed for the task. The same real-world entity might be abstracted differently for different purposes (e.g. a road for navigation vs. a road for traffic flow modelling).

2. Describing information hiding as "deleting information"

Information hiding means making internal details inaccessible to external code — not destroying them. The implementation still exists inside the module; it is just not exposed.

3. Confusing decomposition with abstraction

Decomposition is the act of splitting a problem into sub-problems. Abstraction is the act of removing detail from a representation. They are complementary but distinct concepts.

4. Omitting automation from the problem-solving process

AQA specifies four stages: define, abstract, design, automate. Omitting automation (or describing it as just "writing code") misses the point that automation converts an abstract model into an executable program.

Key terms

Abstraction
The process of removing unnecessary detail to focus on what is essential for the task at hand.
Representational abstraction
Removing unnecessary detail from a model, such as a London Underground map distorting distances and removing surface geography.
Generalisation / classification
Identifying common properties and grouping similar entities into a class.
Information hiding
Concealing implementation details and exposing only the interface, making internal details inaccessible to external code rather than destroying them.
Procedural abstraction
Representing a process as a named subroutine, hiding the steps from the caller.
Functional abstraction
Treating a subroutine as a pure mapping from inputs to outputs, ignoring side effects.
Data abstraction
Hiding the implementation of a data structure behind its interface, as in an abstract data type (ADT).
Problem reduction
Transforming an unfamiliar or hard problem into a known problem with an existing solution.
Decomposition
Breaking a large problem into smaller, more manageable sub-problems that can each be solved independently.
Composition
Combining the solutions to sub-problems, via well-defined interfaces, to produce the solution to the whole problem.
Automation
The implementation of an abstract model as a program that a computer can execute.
Computationally tractable
Expressible as an algorithm that terminates in a reasonable time.

Frequently asked questions

The four stages are: define the problem (identify inputs, outputs, and constraints), abstract (represent the problem as a model, removing irrelevant detail), design an algorithm (a step-by-step solution to the abstract model), and automate (implement the algorithm as a program a computer can execute).

Decomposition is breaking a large problem into smaller sub-problems that can each be solved independently. Abstraction is removing irrelevant detail from a representation. They are complementary but distinct concepts and should not be confused.

No. Abstraction is not simply making things simpler; it is selectively removing irrelevant detail while preserving the properties needed for the task. The same real-world entity may be abstracted differently for different purposes.

Generate revision on any topic you study

Type any topic you're studying and Aicademy generates a complete lesson, quiz, and flashcard set, personalised to your level.

Lessons on anything

Structured, level-matched lessons on any topic you study

Practice quizzes

Find out what you actually know before the exam does

Flashcard sets

Lock in key concepts with instant revision cards

Ask Aica

Stuck on something? Get a clear explanation, any time

Prev

Dijkstra's Shortest Path Algorithm

Next

Finite State Machines

Related lessons

7 min

6 min

9 min

6 min

Lesson

Turing Machines

A-Level Computer Science · AQA 7517

1 month ago

Top students don’t revise more. They revise what counts.

Start revising free

Free to start. No card needed.