Foundations · Module 02

Programming & Computational Thinking

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.

0%0 / 5 complete
03

Recursion and induction in code

How can a function that calls itself ever stop?

CourseFree
6.0001 — Recursion ↗

MIT OCW

04

The shell, version control and the missing semester

What do working programmers know that no course teaches?

CourseFree
The Missing Semester of Your CS Education ↗

MIT

Shell, git, debugging, editors. Genuinely fills the biggest gap in most curricula.

Check yourself

End-of-module quiz

Every answer comes with the reasoning, not just a verdict. Getting one wrong and reading why is the point.

  1. 01A recursive function terminates only if:

  2. 02Abstraction is valuable primarily because:

  3. 03Which is the strongest reason to use version control on a solo project?

Answer all 3 to finish the module.