| Decomposition benefit | Practical effect |
|---|---|
| Reduced complexity | Smaller subproblems are easier to reason about |
| Parallel development | Different team members can build different modules |
| Reuse | Shared sub-solutions reused across system |
| Easier testing/debugging | Faults isolated within smaller units |
| Team collaboration | Clear component ownership |
| Project scalability | Large systems become manageable |
Problem Decomposition
2.2.2 Computational methods · Paper 2 · 1 flashcard · 2 questions
Definition
Problem decomposition is breaking down a complex problem into smaller, more manageable subproblems. This continues until each subproblem can be addressed independently.
Key Point
Card 1 of 1100%
Browse all 1 flashcards on Problem Decomposition
Problem Decomposition
Splitting a problem into smaller sub-problems, and splitting those again, until each is manageable enough to be solved independently; this reveals the subroutines needed and lets the work be shared between programmers.
Exam questions on Problem Decomposition
2 OCR past paper questions (11 marks) with mark schemes
Past paper questions
- Question 1H446/02 · June 20239 marks
Discuss how programmers could make use of problem recognition and problem decomposition when designing a delivery driver scheduling system.
Show mark scheme
Levels of response (9 marks) Problem recognition: Identifying this is a scheduling/routing problem / Similar to travelling salesman / Recognizing constraints (time windows, capacity) Decomposition: Split into route planning, scheduling, driver assignment / Break down into manageable modules / Each can be solved separately Benefits: Recognition allows using known algorithms / Decomposition enables team work / Easier to test and maintainMark yourself: how many marks did you get?/ 9 - Question 2H446/02 · June 20192 marks
Explain how decomposition can aid the design of a computer game program.
Show mark scheme
Breaking problem into smaller sub-problems / Each sub-problem can be solved independently / Makes the problem more manageable / Allows different team members to work on different parts / Easier to test individual components (2 marks)Mark yourself: how many marks did you get?/ 2