Computational Thinking
When a situation describes a problem, ask what the description is mainly doing. The table shows how to match the description to a computational thinking principle.
| What the description does | Principle |
|---|---|
| Breaks one large problem into smaller sub-problems that can each be solved on its own | Decomposition |
| Removes or ignores unnecessary detail and keeps only the details that are needed | Abstraction |
| Works out the precise steps of a solution and their order, including where steps repeat or a decision is needed | Algorithmic thinking |
Suppose you plan a program for a school garden watering rota. You use decomposition to split it into smaller jobs: storing volunteers, building the weekly rota and sending reminders. You use abstraction to keep the details the rota needs, such as each volunteer's name and the days they are free, and ignore details it does not need, such as the colour of their wellingtons or which pets they own. You use algorithmic thinking to order the steps: for each day, check each volunteer in turn; if they are free that day, add them to the rota; repeat for every day. Algorithmic thinking is the ordered steps, not the program code itself.
Decomposition and abstraction are not the same. Splitting the work into separate jobs is decomposition; deciding which information each job needs is abstraction. A simpler model, such as a variable storing whether a volunteer is free, is also abstraction.
When you explain a principle, name it and point to the part of the situation that shows it. For example, say that splitting the watering rota into storing volunteers and building the rota is decomposition, rather than only saying that a big problem is broken into small ones. To apply computational thinking, state sensible smaller jobs, say which details to keep and which to remove, and list the steps in order, marking where steps repeat and where a decision is needed.
OCR GCSE Computer Science · Computational Thinking