Theory of Computation

What can be computed, and how hard is it? From finite automata and formal languages up through Turing machines, undecidability, and the great open question of P versus NP — the deep theory that draws the boundaries of the possible.

This subject course follows the topic vertically, across the years it spans. Some lessons are already written; the rest are shown as placeholders.

Year 2 — Theory of Computation

  1. Finite State Machines
  2. Regular Expressions and Languages
  3. The Pumping Lemma
  4. Pushdown Automata
  5. Turing Machines
  6. Computability and the Halting Problem
  7. Tractable vs Intractable: P vs NP

Year 3 — Advanced Complexity

  1. Complexity Classes: P, NP, PSPACE
  2. NP-Completeness and Reductions
  3. Undecidability via Reductions
  4. Space Complexity and Hierarchy