This is a three-credit required course for the undergraduate CS program.
This course provides an introduction to models of computation, computability, and complexity. In particular, we will ask the question, "What are the fundamental capabilities and limitations of computers?"
The course prerequisites are Discrete Math (COMS W3203) and, to a lesser degree, Data Structures (COMS W3137), or the instructor's permission.
Optional text: Introduction to Automata Theory, Languages and Computation by John E. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman
The following courses are closely related to the topics covered in this course:
In addition, the following courses benefit from and relate to some of the topics covered by this course:
| 1/22 | L01: Introduction, Finite Automata | Chap 0, 1.1 | |
| 1/24 | L02: Designing Finite Automata, regular operations | Chap 1.1 | |
| 1/29 | L03: NFA | Chap 1.2 | |
| 1/31 | L04: Equivalence of NFAs and DFAs, closure under regular operations | Chap 1.2 | |
| 2/5 | L05: Regular expressions | Chap 1.3 | HW1 |
| 2/7 | L06: Regular expressions, equivalence with Finite Automata | Chap 1.3 | |
| 2/12 | L07: The pumping lemma | Chap 1.4 | |
| 2/14 | L08: Contrext-free grammars | Chap 2.1 | HW1due,HW2 |
| 2/19 | L09: Pushdown Automata | Chap 2.2 | |
| 2/21 | L10: Pushdown Automata | Chap 2.2 | |
| 2/26 | L11: Non-context-free Lanaguages (guest lecture) | Chap 2.3 | HW2due |
| 2/28 | Review (guest lecture) | ||
| 3/5 | Midterm 1 | HW3 | |
| 3/7 | L12: Turing Machines | Chap 3.1 | |
| 3/12 | L13: Variants of TMs | Chap 3.1, 3.2 | |
| 3/14 | L14: Vairants of TMs | Chap 3.2 | |
| 3/19 | Spring Break | ||
| 3/21 | Spring Break | ||
| 3/26 | L15: Church-Turing Thesis, decidable languages | Chap 3.3, 4.1 | HW3due,HW4 |
| 3/28 | L16: The diagonalization method, an undecidable language | Chap 4.2 | |
| 4/2 | L17: An undecidable language, a Turing-unrecognizable language | Chap 4.2 | |
| 4/4 | L18: Undecidable problems from language theory | Chap 5.1 | HW4due |
| 4/9 | L19: Undecidable problems from language theory II | Chap 5.1 | |
| 4/11 | Midterm 2 | ||
| 4/16 | L20: A simple undecidable problem | Chap 5.2 | |
| 4/18 | L21: Mapping reducibility | Chap 5.3 | HW5 |
| 4/23 | L22: Measuring complexity | Chap 7.1 | |
| 4/25 | L23: Complexity relation ships among models, the class P | Chap 7.1, 7.2 | |
| 4/30 | L24: The class P, the class NP | Chap 7.2, 7.3 | HW5due |
| 5/2 | L25: NP-Completeness | Chap 7.4 | |
| 5/16 | Final |