Pattern generalisation and abstraction are two core skills in computational thinking. They help you recognise shared structures, remove unnecessary detail and build solutions that work across multiple scenarios. This tutorial gives you the full, exam-ready coverage of both concepts.
Pattern generalisation means taking multiple examples and identifying what they all have in common. Once you find the shared structure, you can create a general rule, model or solution that fits them all.
Example:
Cars, vans and trucks may look different, but they share:
- wheels
- axles
- chassis
- steering system
Generalising these shared elements allows you to design a reusable model instead of three separate ones.
This is the foundation of reusable algorithms, reusable code and modular system design.
Pattern generalisation helps you:
- spot common behaviour
- avoid rewriting solutions
- build models that can be reused
- reduce code duplication
- simplify complex systems
- uncover hidden relationships
- predict how different cases behave
Recognising patterns across different forms allows you to solve future problems much faster.
Abstraction is the process of removing unnecessary detail so you can focus on only what matters for solving the problem.
The aim is not to ignore details completely, but to ignore everything that is irrelevant.
Aerial photo → Contains everything
OS map → Simplifies to roads and geography
Tube map → Removes geography completely and shows only stations and connections
Each layer hides more detail until only the essential information remains.
This is abstraction.
Abstraction gives programmers the ability to:
- focus on essential behaviour
- hide complexity beneath simpler layers
- work with simplified models
- reuse code through functions and classes
- treat components as “black boxes”
Functions in Python are a form of abstraction:
You use them without caring how they work internally.
Example:
from math import sqrt
print(sqrt(49))
You don’t need to know how square roots are calculated — that complexity is abstracted away.
Pattern generalisation identifies the similarities.
Abstraction strips away the differences that don’t matter.
Together they allow you to create:
- general rules
- templates
- class structures
- reusable algorithms
- predictable models
These underpin the entire design of software systems.
To solve a problem efficiently, you must know:
- what information the solution needs
- why that information is needed
- what format the information should be in
- when the information is required
Example: building a weighing machine
Required:
- platform for weight
- internal measurement system
- display
Not required:
- colour
- style
- decoration
This is abstraction combined with pattern generalisation.
Just as you identify what matters, you must identify what does not matter.
Irrelevant data:
- distracts the design
- complicates the algorithm
- doesn’t help solve the problem
- creates inefficiency
Example: A college information system
Required: name, course, ID
Not required: favourite music, political views, hobbies
Filtering reduces cognitive load and speeds up problem solving.
For exam answers, know these six key elements:
Variables
Values that change.
Constants
Values that stay fixed.
Key processes
Essential steps the system must perform.
Repeated processes
Steps that recur and could be looped.
Inputs
Data entering the system.
Outputs
Information produced by the system.
Recognising these helps you define the general structure of any solution.
Patterns commonly appear as sequences:
- 2, 4, 6 → +2
- 1, 3, 9, 27 → ×3
- Fibonacci → sum of previous two
- Factorial-style growth
Understanding these patterns helps in algorithm design.
Example: multiply by 3 and add 2 for 10 numbers.
num = 1
for i in range(10):
print(num)
num = num * 3 + 2
Patterns in code → predictable transformations.
When given a complex picture, object or system:
- convert it to simple shapes
- draw only the necessary features
- exclude colours, textures, fine detail
- keep only structural components
This models exactly how abstraction simplifies problem spaces.
Once you identify a general pattern, you can reuse the solution.
Example: building a shape-area calculator
You create one reusable function per shape instead of rewriting the calculations every time.
This is both abstraction and generalisation working together.
Because they allow you to:
- build reusable code
- reduce complexity
- avoid duplicated logic
- create scalable solutions
- understand systems on a deeper level
- develop efficient algorithms
They are core exam skills and appear frequently in both scenario questions and short-answer questions.
Pattern generalisation helps you find common elements across examples.
Abstraction removes unnecessary detail so you can focus on what matters.
Together they let you create reusable, simplified and efficient solutions — exactly what computational thinking aims to achieve.
Mastering these two skills will boost your marks across Unit 1, especially in algorithm design, problem-solving and system-analysis tasks.
Create a customised learning path powered by AI — stay focused, track progress, and earn certificates.
Build Your Learning Path →