Lectures

All chapters are taken from Theory of Computation by Michael Sipser.

Date # Topic Chapters Slides
Sep 5 1 Course Overview 0.0-0.4 Intro ; Math Review
Sep 10 2 DFAs 1.1 DFAs
Sep 12 3 NFAs 1.2 NFAs
Sep 17 4 Regular Expressions 1.2-1.4 Regexes
Sep 19 5 The Pumping Lemma 1.2-1.4 Pumping Lemma
Sep 24 6 Context-Free Grammars 2.1, 2.3 CFGs
Sep 26 7 Pumping Lemma for CFLs 2.1, 2.3 PDAs ; Pumping Lemma for CFLs
Oct 1 8 Turing Machines 3.1-3.2 Turing Machines 1
Oct 3 9 Midterm Review -- --
Oct 8 10 Turing Machine Variations 3.2 Turing Machines 2
Oct 10 11 Algorithms 3.3 Algorithms
Oct 15 12 Decidability 4.1 Decidability
Oct 17 13 Undecidable Languages 5.3, Problem 5.28 Undecidable Languages
Oct 22 14 Reducibility and Rice's Theorem 5.1-5.3 Reducibility & Rice's Theorem; Mapping Reducibility
Oct 24 15 Time Complexity 7.1 Time Complexity
Oct 29 16 P and NP 7.2 P and NP
Oct 31 17 Poly-time Reductions and NP-Completeness 7.4-7.5 NP Completeness
Nov 5 18 NP-Completeness II 7.4 NP-Completeness II
Nov 7 19 NP and CoNP 7.4-7.5 NP and CoNP
Nov 12 20 Space Complexity I 7.4-7.5 Space Complexity I
Nov 14 21 Space Complexity II 7.3 PSPACE-Complete
Nov 19 22 Space Complexity III 8.4-8.6 L and NL
Nov 21 23 Space Complexity II 8.1-8.6 L and NL
Nov 26 No Class - Happy Thanksgiving!
Nov 28 No Class - Happy Thanksgiving!
Dec 3 24 Space Complexity III 8.1-8.6 N/A
Dec 5 25 Approximation Algorithms 10.2 Approximation Algorithms