Skip to main content
EnglandComputer ScienceSyllabus dot point

How do we break a problem down so a computer can solve it?

Computational thinking through abstraction, decomposition and algorithmic thinking, and understanding what an algorithm is and the difference between an algorithm and a program.

A focused answer to AQA GCSE Computer Science 3.1.1, covering abstraction, decomposition and algorithmic thinking, what an algorithm is, and how an algorithm differs from a program.

Generated by Claude Opus 4.87 min answer

Reviewed by: AI editorial process; not yet individually human-reviewed

Have a quick question? Jump to the Q&A page

Jump to a section
  1. What this dot point is asking
  2. Abstraction
  3. Decomposition
  4. Algorithmic thinking
  5. Algorithm versus program
  6. Try this

What this dot point is asking

AQA wants you to understand and use the three pillars of computational thinking (abstraction, decomposition and algorithmic thinking), to say what an algorithm is, and to explain the difference between an algorithm and a program.

Abstraction

A classic example is the London Underground map: it shows the order of stations and which lines connect, but deliberately hides the true distances, the curves of the track and the streets above, because none of those help a passenger plan a route. The exam point is that abstraction is selective: you keep the relevant detail and discard the rest, which is not the same as just making something shorter.

Decomposition

Writing a game, for example, decomposes into handling player input, updating the score, drawing the screen and checking for a win. Each part can be solved, tested and even written by a different person on its own, then combined. Decomposition is the reason large software can be built at all: no one solves the whole thing in one go.

Algorithmic thinking

Algorithmic thinking is identifying the precise steps needed to solve a problem and putting them in the correct order. It is what turns a decomposed problem into a clear, repeatable set of instructions that always produces the right result.

Algorithm versus program

A common exam point is the difference between the two:

  • An algorithm is the plan: the ordered steps that solve the problem, which can be written as a flowchart, in pseudocode, or in plain structured English.
  • A program is that algorithm written in a specific programming language (such as Python) so that a computer can execute it.

Try this

Q1. State what is meant by decomposition. [1 mark]

  • Cue. Breaking a problem down into smaller sub-problems that are easier to solve.

Q2. Explain one difference between an algorithm and a program. [2 marks]

  • Cue. An algorithm is the sequence of steps to solve a problem; a program is that algorithm written in a programming language so a computer can run it.

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 20184 marksA team is designing software for a self-service supermarket checkout. Explain how abstraction and decomposition could each be used in designing this system. Give one example of each.
Show worked answer →

Abstraction means removing detail that does not matter so the designers focus on what does. For the checkout, they model only the relevant data (item barcode, price, quantity, total) and ignore irrelevant details such as the customer's name or the shelf the item came from.

Decomposition means breaking the problem into smaller sub-problems. The checkout can be split into scanning an item, looking up its price, updating the running total, taking payment, and printing a receipt, each of which can be designed and tested separately.

Markers reward a correct definition of each technique and a sensible example tied to the checkout scenario, not generic definitions alone.

AQA 20213 marksExplain the difference between an algorithm and a program, and state two ways an algorithm can be represented before it is coded.
Show worked answer →

An algorithm is the plan: a precise, ordered sequence of steps that solves a problem, independent of any programming language. A program is that algorithm written in a specific programming language (such as Python) so that a computer can execute it.

Two ways to represent an algorithm before coding are a flowchart (a diagram of standard symbols) and pseudocode (structured, language-neutral text); plain structured English is also accepted.

Markers reward the plan-versus-coded-implementation distinction and two valid representations.

Related dot points

Sources & how we know this