SLIDE 1
CSZone.co.uk
Click to advance · Arrow keys also work
Cambridge IGCSE 0478 · Topic 7 · 7.1a

Computational
Thinking

Decomposition · Abstraction · Pattern Recognition · Algorithmic Thinking

CSZoneCambridge IGCSE Computer Science 0478
Decomposition

Breaking Problems Down

Decomposition: breaking a complex problem into smaller, more manageable sub-problems. Each sub-problem can then be solved individually and combined.
Example — building a website: decompose into sub-tasks: design layout, write HTML, add CSS styling, create navigation, write content, test
Sub-problems can be solved independently — teams can work in parallel on different parts
Each sub-problem may be further decomposed — a hierarchical approach to problem-solving
Abstraction

Focusing on What Matters

Abstraction: removing or hiding unnecessary details to focus on what is relevant to solving the problem. Produces a simplified model or representation.
Example: a map — abstracts away buildings, trees, and terrain texture to show only roads and key locations
In programming: a function is an abstraction — you call it without needing to know how it works internally
Abstraction makes problems more manageable — unnecessary complexity is hidden from the programmer
Pattern Recognition & Algorithmic Thinking

Spotting Patterns, Designing Solutions

Pattern recognition: identifying similarities or common features in problems. Allows solutions to be reused — if a pattern is recognised, a known solution can be applied.
Algorithmic thinking: developing a step-by-step solution (algorithm) that a computer can follow. The solution must be logical, precise, and finite.
Together these four skills — decomposition, abstraction, pattern recognition, algorithmic thinking — make up computational thinking
Exam Practice

Have a go at this question

Cambridge IGCSE 0478 style
A programmer is designing a school management system. Explain how decomposition could be used to help design this system.
3 marks
The large problem (school management system) is broken down into smaller, more manageable sub-problems [1], for example: student records, timetabling, attendance tracking, staff payroll [1]. Each sub-problem can then be solved individually and independently [1], making the whole system easier to design, code, and test.
Key Takeaways

What to Remember

Decomposition: break problem into smaller sub-problems that can be solved individually
Abstraction: remove irrelevant details; focus on what matters for solving the problem
Pattern recognition: find similarities to apply known solutions to new problems
Algorithmic thinking: produce a clear, step-by-step, finite solution a computer can follow