Variables, control flow, functions
What is the smallest set of constructs that can express any computation?
Foundations · Module 02
Programming is not typing. It is the discipline of stating a procedure with no ambiguity left in it — which is why it teaches you to think, whether or not you ever ship software.
By the end of this module
You can decompose a problem and express the solution precisely enough for a machine to execute it.
What is the smallest set of constructs that can express any computation?
Why is naming things genuinely one of the hard problems?
Abelson & Sussman, MIT
The book that treats programming as a way of thinking about ideas.
How can a function that calls itself ever stop?
What do working programmers know that no course teaches?
MIT
Shell, git, debugging, editors. Genuinely fills the biggest gap in most curricula.
Check yourself
Every answer comes with the reasoning, not just a verdict. Getting one wrong and reading why is the point.
01A recursive function terminates only if:
02Abstraction is valuable primarily because:
03Which is the strongest reason to use version control on a solo project?