This is a 25-lecture course, with each lecture being about 60-90 minutes, given online by Michael Sipser. It gives an introduction to computability.

This course emphasizes computability and computational complexity theory. Topics include regular and context-free languages, decidable and undecidable problems, reducibility, recursive function theory, time and space measures on computation, completeness, hierarchy theorems, inherently complex problems, oracles, probabilistic computation, and interactive proof systems.

  1. Introduction, Finite Automata, Regular Expressions
  2. Non-determinism, Closure Properties, Conversion of Regular Expressions to FA
  3. Regular Pumping Lemma, Conversion of FA to Regular Expressions
  4. Pushdown Automata, CFG ⟷ PDA
  5. CF Pumping Lemma, Turing Machines
  6. TM Variants, Church-Turing Thesis
  7. Decision Problems for Automata and Grammars
  8. Undecidability
  9. Reducibility
  10. Computation History Method
  11. Recursion Theorem and Logic
  12. Time Complexity
  13. P and NP, SAT, Poly-Time Reducibility
  14. NP-Completeness
  15. Cook-Levin Theorem
  16. Space Complexity, PSPACE, Savitch’s Theorem
  17. PSPACE-Completeness
  18. Games, Generalized Geography
  19. L and NL, NL = coNL
  20. Hierarchy Theorems
  21. Provably Intractable Problems, Oracles
  22. Probabilistic Computation, BPP
  23. Probabilistic Computation (cont.)
  24. Interactive Proof Systems, IP
  25. coNP is a subset of IP

These videos are of a lecture course by Michael Sipser at the Massachusetts Institute of Technology in 2020, and made available as part of its OpenCourseWare initiative.