Lesson 020
Problem Decomposition
Break Big Into Small
1:00How to break one overwhelming problem into smaller, independently solvable sub-problems — and why that skill underlies every large software project.
By the end, you can
- Explain what problem decomposition is and how it differs from simply listing solution steps.
- Apply the top-down refinement process to a new problem: state the goal, find major parts, refine until leaves are solvable, then recombine.
- Evaluate whether a sub-problem is sized too big, too small, or just right using the single-responsibility criterion.
- Describe the four benefits of decomposing into small, independent pieces: easier testing, easier debugging, team parallelism, and reuse.
- Explain how divide and conquer (e.g., merge sort) is decomposition applied to algorithm design.
- Distinguish functional, object-oriented, and algorithmic decomposition and give an example of each.
Up next in Programming Foundations




