What are abstraction and automation, and how do we solve problems computationally?
Understand abstraction, the different forms of abstraction, decomposition, automation, and the components of computational thinking used to solve problems.
A focused answer to AQA A-Level Computer Science 4.4.1, covering abstraction and its forms, decomposition, automation, and the components of computational thinking used to solve problems with computers.
Reviewed by: AI editorial process; not yet individually human-reviewed
Have a quick question? Jump to the Q&A page
Jump to a section
What this dot point is asking
AQA wants you to define abstraction and its forms, explain decomposition, define automation, and describe the components of computational thinking used to solve problems.
Abstraction
Forms of abstraction in the specification include:
- Representational abstraction: removing detail to leave only the information needed (a model).
- Abstraction by generalisation: grouping things by their shared characteristics, ignoring differences.
- Data abstraction: hiding how data is actually stored behind a simple interface (as an abstract data type does).
- Procedural abstraction: treating the result of a process separately from how it is computed (as a subroutine does).
These forms recur throughout the whole course, which is why abstraction is treated as a foundational idea. Data abstraction is exactly what makes a stack or dictionary usable without knowing its implementation; procedural abstraction is what lets you call a subroutine knowing only its interface; representational abstraction underlies every model and data type. Recognising abstraction at work across the specification, not just defining it in isolation, is what higher-mark answers show.
Decomposition
Decomposition is the practical counterpart to the modular programming covered under subroutines: once a problem is broken into sub-problems, each sub-problem typically becomes a subroutine or module that can be written, tested and maintained on its own. This is why a well-decomposed design is easier to debug, since a fault is localised to one small, independently testable part rather than tangled through the whole program.
Automation and computational thinking
The components of computational thinking are abstraction, decomposition and algorithmic thinking (devising step-by-step solutions). Applying them in turn lets a real-world problem be turned into something a computer can solve: abstraction decides what to represent, decomposition splits the work into parts, and algorithmic thinking specifies the exact steps for each part. Automation is then the final step of running those algorithms on hardware so the task happens by itself, which connects this topic to the broader theory of what computers can do.
Exam-style practice questions
Practice questions written in the style of AQA exam questions on this dot point, with worked answer explainers. The year tag is the paper they imitate, not the source.
AQA 20194 marksExplain what is meant by abstraction and describe two different forms of abstraction, giving an example of each.Show worked answer →
Abstraction is the process of removing unnecessary detail from a problem to focus on its essential features, producing a simplified model that is easier to work with.
Representational abstraction removes detail to leave only the information needed; for example, an underground railway map shows stations and connections but discards real geography and exact distances. Abstraction by generalisation groups things by their shared characteristics and ignores their differences; for example, treating cars, lorries and motorbikes all as vehicles with a speed and a position so one set of rules applies to all. (Data abstraction and procedural abstraction are also acceptable forms, with a stack or a subroutine as examples.)
Markers reward a correct definition of abstraction and two distinct named forms, each with a valid example.
AQA 20214 marksDescribe how abstraction, decomposition and algorithmic thinking are used together to solve a complex problem such as writing a program to manage a library.Show worked answer →
Abstraction is used to model the library by keeping only the essential features, for example representing each book by its title, author and availability and ignoring irrelevant physical detail. Decomposition breaks the overall task into smaller sub-problems, such as searching the catalogue, issuing a loan, returning a book and calculating fines, each of which can be solved and tested separately. Algorithmic thinking then devises a clear step-by-step solution for each sub-problem, such as the exact steps to check availability and record a loan.
Used together, these let a large, vague problem be turned into a set of well-defined, programmable parts: abstraction decides what to model, decomposition divides the work, and algorithmic thinking specifies how each part is solved.
Markers reward a correct role for each of the three components and a sense of how they combine to make the problem solvable by a computer.
Related dot points
- Understand finite state machines with and without output, state transition diagrams and tables, and the use of an FSM to recognise inputs or model behaviour.
A focused answer to AQA A-Level Computer Science 4.4.2, covering finite state machines with and without output, state transition diagrams and tables, and using an FSM to recognise inputs or model behaviour.
- Understand tractable and intractable problems, the classes P and NP, the idea of computable and non-computable problems, and the use of heuristics for intractable problems.
A focused answer to AQA A-Level Computer Science 4.4.6 and 4.4.7, covering tractable and intractable problems, the classes P and NP, computable and non-computable problems, and the use of heuristics to tackle intractable problems.
- Understand the Turing machine model, its components, the idea of a universal Turing machine, and the link to the limits of computation and the halting problem.
A focused answer to AQA A-Level Computer Science 4.4.5, covering the Turing machine model and its components, the transition rules, the universal Turing machine, and its link to computability and the halting problem.
- Understand regular expressions and regular languages, the link between regular expressions and finite state machines, the limits of regular languages, and context-free languages described by a BNF grammar.
A focused answer to AQA A-Level Computer Science 4.4.3 and 4.4.4, covering regular expressions and regular languages, their link to finite state machines, the limits of regular languages, and context-free languages described using BNF.
- Understand the relationship between hardware and software, the classification of software into system and application software, and the role of the operating system and utility programs.
A focused answer to AQA A-Level Computer Science 4.6.1, covering the relationship between hardware and software, the classification of software into system and application software, and the role of the operating system and utility programs.
Sources & how we know this
- AQA A-level Computer Science (7517) specification — AQA (2015)