Foundations: Phase 1 — Computational Thinking
Learn to see like an engineer
Before you write a single line of code, learn to think clearly. Decomposition, abstraction, pattern recognition, systems thinking, and algorithmic thinking — the mental tools that make everything else dramatically easier. Notebook exercises throughout.
Modules
What This Phase Is and Why It Comes First
Why thinking must come before code. The case for building mental models before opening an editor.
Decomposition — Breaking Big Problems Into Small Ones
The foundational skill of all engineering: taking something complex and dividing it into manageable pieces with clear dependencies.
Abstraction — Knowing What to Ignore
Hiding complexity behind simpler interfaces. Levels of abstraction in software and the danger of leaky abstractions.
Pattern Recognition — Seeing What You've Seen Before
CRUD, request-response, input-process-output, queues — the universal patterns underneath every application.
Systems Thinking — Everything Is Connected
Dependencies, feedback loops, emergence, and tracing the chain of consequences when something changes.
Algorithmic Thinking — Step-by-Step Logic
Pseudocode, conditionals, loops, and combining building blocks into clear algorithms that handle edge cases.
Putting It All Together — Thinking Like an Engineer
Design a complete library checkout system on paper: decomposition, abstraction layers, patterns, system diagram, scenario tracing, and pseudocode.