Computational Thinking
What computational thinking is
Computational thinking is the approach used to solve problems in a way a computer could carry out. It has three key techniques you must know: decomposition, abstraction and algorithmic thinking. A fourth idea, pattern recognition, often appears too.
Decomposition
Decomposition means breaking a large, complex problem down into smaller, more manageable sub-problems.
- Each smaller part is easier to understand, solve and test on its own.
- Different people can work on different parts at the same time.
- Example: writing a game → break it into sub-problems like player movement, scoring, collision detection, graphics.
Abstraction
Abstraction means removing or hiding unnecessary detail so you can focus on the important information.
- You keep only the details that matter for solving the problem and ignore the rest.
- Example: a map of the London Underground is an abstraction — it shows the order of stations and connections, but hides real distances, roads and exact geography.
- In programming, using a variable called
totalwithout worrying about how it's stored in memory is abstraction.
Pattern recognition
Pattern recognition means spotting similarities or trends between problems (or parts of a problem).
- If two sub-problems share a pattern, the same solution can often be reused for both.
- Helps you generalise a solution so it works for many cases, not just one.
Algorithmic thinking
Algorithmic thinking means working out the step-by-step instructions (an algorithm) needed to solve the problem — a clear sequence that always produces the right result.
Ways to express an algorithm
Pseudocode
- A way of writing an algorithm using structured, English-like statements rather than a real programming language.
- Not tied to any one language and doesn't follow strict syntax rules — so it's quick to write and easy to read.
- Focuses on the logic, which can later be turned into real code.
Flowcharts
A flowchart shows an algorithm as a diagram using standard symbols:
| Symbol | Meaning |
|---|---|
| Rounded rectangle (terminator) | Start / Stop |
| Rectangle (process) | An instruction / calculation |
| Parallelogram (I/O) | Input or output |
| Diamond (decision) | A yes/no question that branches the flow |
| Arrows | The order/direction of flow |
The diamond is the one examiners test most — it represents a decision (a condition with two branches).
Worked example
Decompose "make a cup of tea":
- Boil water · Add tea bag to cup · Pour water · Wait · Remove bag · Add milk/sugar.
Each step is a small sub-problem. Abstraction here means ignoring irrelevant detail like the colour of the mug.
Common mistakes
- Confusing decomposition (break down) with abstraction (hide detail).
- Saying a flowchart rectangle is a decision — it's the diamond.
- Thinking pseudocode must follow exact syntax — it doesn't.
Exam tips
- Learn a one-line definition + example for decomposition and abstraction — easy marks.
- Memorise the flowchart symbols, especially the decision diamond and the I/O parallelogram.
- If asked to "decompose" a task, list clear sub-tasks; if asked to "abstract", state what detail you'd ignore.
Key facts to remember
- Decomposition = break a problem into smaller sub-problems.
- Abstraction = hide/remove unnecessary detail to focus on what matters.
- Algorithms can be shown as pseudocode (English-like, no strict syntax) or flowcharts (diamond = decision).