Composition means combining sub-solutions to form the complete solution to a problem. After decomposing a problem and solving each sub-problem, you compose those solutions together.
// Three sub-solutions composed to form a complete system: readData() → data // read input processData(data) → result // process it displayResult(result) // output it // Composed as a pipeline: displayResult(processData(readData()))
In functional programming, composition is explicit: f(g(x)) applies g then f.
Automation means using a computer to carry out the steps of an algorithm, turning a solution into a process that runs without human intervention.
| Step | Concept used |
|---|---|
| Identify the core problem | Abstraction |
| Break into sub-problems | Decomposition |
| Spot reusable patterns | Pattern recognition |
| Design step-by-step solution | Algorithm design |
| Combine sub-solutions | Composition |
| Implement and run on computer | Automation |
An algorithm is a finite, step-by-step set of instructions that solves a problem or completes a task. Algorithm design is the fourth key aspect of computational thinking.
| Representation | Description | Pros |
|---|---|---|
| Pseudocode | Structured English-like code | Language-independent, readable |
| Flowchart | Diagram with shapes for decisions/actions | Visual, shows flow clearly |
| Structure diagram | Hierarchical decomposition diagram | Shows how sub-problems relate |
The full computational problem-solving cycle brings together all the concepts:
1. Identify the problem 2. Abstract key features (remove irrelevant detail) 3. Decompose into sub-problems 4. Recognise patterns (reuse known solutions) 5. Design algorithms for each sub-problem 6. Compose sub-solutions into the complete solution 7. Implement on a computer (automation) 8. Test and evaluate the solution
8 questions · instantly marked · AQA 7517 standard
| Term | Definition |
|---|
10 questions · 10 minutes