Computational Thinking¶
The discipline of reframing a messy real-world problem into something a machine can solve — by breaking it down, spotting structure, abstracting away noise, and expressing the result as an algorithm.
This section covers the four classic pillars — decomposition, pattern recognition, abstraction, and algorithm design — and then closes the loop by mapping a problem onto concrete code and data structures. The through-line is a repeatable pipeline: take an ambiguous task, carve it into tractable parts, find what repeats, hide what doesn't matter, and encode the rest as steps a computer can execute.
Topics¶
| # | Topic | What you'll learn |
|---|---|---|
| 01 | Decomposition | Functional vs data decomposition, coupling and cohesion, Conway's law, cutting along natural seams instead of arbitrary lines |
| 02 | Pattern Recognition | Spotting recurring structure, isomorphism between problems, when a "new" problem is an old one in disguise, and the trap of false patterns |
| 03 | Abstraction and Generalization | Choosing the right level of detail, leaky abstractions, the rule of three before generalizing, premature-abstraction cost |
| 04 | Algorithmic Thinking | Expressing a solution as deterministic steps, invariants, termination, correctness vs efficiency, and reasoning about edge cases |
| 05 | Modeling a Problem in Code | Mapping domain concepts to types and data structures, choosing representations that make the right operations cheap, model–reality drift |
How to use this section¶
Each topic has five depth levels — junior → middle → senior → professional — plus an interview Q&A bank and hands-on tasks. Start at your level and climb. Read it in order: decomposition and pattern recognition feed abstraction, which feeds algorithm design, which finally lands in real code.
Part of the Engineering Thinking roadmap. Once you can frame problems computationally, Problem-Solving gives you the process for actually working through them.