CS121 and CAS 207: Outline of Lectures

Unit I: Mathematical Background
Reading: Sipser, Chapter 0.
Sept. 18: Introduction and Overview
Sept. 20: Mathematical Preliminaries: Sets, relations, strings, languages

Unit II: Finite Automata and Regular Languages
Reading: Sipser, Chapter 1.
Sept. 25: Doing Proofs
Sept. 27: Finite Automata
Oct. 2: Nondeterminstic Finite Automata, Closure Properties
Oct. 4: Regular Expressions
Oct. 9: Countability and Diagonalization

Unit III: Context-free Languages
Reading: Sipser, Chapter 2.
Oct. 11: Nonregular languages
Oct. 16: Context-Free Grammars
Oct. 18: Pushdown Automata
Oct. 23: Closure Properties of Context-Free Languages, Non-Context-Free Languages

THURSDAY, OCTOBER 25: MIDTERM EXAMINATION

Oct. 30: General Context-Free Recognition


Unit IV: Computability
Reading: Sipser, Chapters 3 & 4 (Sec 1.).
Nov. 1: Turing Machines and Simulations
Nov. 6: Church's Thesis
Nov. 8: Decidability, Universal Turing Machines


Unit V: Uncomputability
Reading: Sipser, Chapters 4 (Sec. 2) & 5.
Nov. 13: Undecidability
Nov. 15: Reductions and Rice's Theorem
Nov. 20: Undecidable Problems and Unprovable Theorems

THURSDAY, NOVEMBER 22: THANKSGIVING

Unit VI: Computational Complexity
Reading: Sipser, Chapter 7.
Nov. 22: Computational Complexity
Nov. 29: Polynomial Time
Dec. 4: NP
Dec 6: NP-Completeness
Dec. 11: Cook-Levin Theorem and Beyond
Dec. 13: Interactive and Zero-Knowledge Proofs
Dec. 18: Conclusions