18.404J | Fall 2020 | Undergraduate, Graduate

Theory of Computation

Readings

This course is taught using Professor Sipser’s textbook:

Sipser, Michael. Introduction to the Theory of Computation. 3rd ed. Cengage Learning, 2012. ISBN: 9781133187790.

We will cover Chapters 1, 2 (except 2.4), 3, 4, 5, 6.1, 7, 8, 9.1, 9.2, 10.2 (except the part on Primality), and 10.4 through Theorem 10.33.

LEC # TOPICS READINGS
1 Introduction, Finite Automata, Regular Expressions Section 1.1
2 Nondeterminism, Closure Properties, Regular Expressions → Finite Automata Sections 1.2 and 1.3
3 The Regular Pumping Lemma, Finite Automata → Regular Expressions, CFGs Sections 1.4, 2.0, and 2.1
4 Pushdown Automata, CFG ↔ PDA Section 2.2
5 The CF Pumping Lemma, Turing Machines Sections 2.3 and 3.1
6 TM Variants, the Church-Turing Thesis Sections 3.2 and 3.3
7 Decision Problems for Automata and Grammars Section 4.1
8 Undecidability Section 4.2
9 Reducibility Section 5.1
10 The Computation History Method Section 5.2
11 The Recursion Theorem and Logic Sections 6.1 and 6.2
12 Time Complexity Section 7.1
13 Midterm Exam [no readings]
14 P and NP, SAT, Poly-time Reducibility Sections 7.2 and 7.3
15 NP-Completeness Section 7.5
16 Cook-Levin Theorem Section 7.4
17 Space Complexity, PSPACE, Savitch’s Theorem Sections 8.1 and 8.2
18 PSPACE-Completeness Section 8.3
19 Games, Generalized Geography Section 8.3
20 L and NL, NL = coNL Section 8.4
21 Hierarchy Theorems Section 9.1
22 Provably Intractable Problems, Oracles Section 9.2
23 Probabilistic Computation, BPP Section 10.2
24 Probabilistic Computation (cont.) Section 10.2
25 Interactive Proof Systems, IP Section 10.4
26 coNP ⊆ IP Section 10.4

Course Info

Learning Resource Types
Lecture Videos
Problem Sets
Exams
Lecture Notes
Instructor Insights