This is a tentative schedule. It may change during the term!
You can find lecture slides and homework assignments on the blackboard site for this course.
Topics | Readings | |
Part 1: Automata and formal languages | ||
Sep 5 | Intro, finite state automata | Ch. 0, Ch. 1.1, Ch. 1.2 |
Sep 10 | Deterministic vs. non-deterministic automata | Ch. 1.2 |
Sep 12 | More on deterministic vs. non-deterministic automata | Ch. 1.2 |
Sep 17 | Regular expressions | Ch. 1.2, 1.3 |
Sep 19 | Pumping lemma for regular languages | Ch. 1.4 |
Sep 24 | Probabilistic versions of finite-state automata and speech recognition | |
Sep 26 | Context-free grammars | Ch. 2.1 |
Oct 1 | Pushdown automata | Ch. 2.2 |
Oct 3 | Equivalence of context-free grammars and pushdown automata | Ch. 2.2 |
Oct 8 | Pumping Lemma for context-free languages | Ch. 2.3 |
Oct 10 | Turing machines | Ch. 3.1 |
Part 2: Computability | ||
Oct 15 | Variants of Turing machines and the Church-Turing thesis | Ch. 3.2, 3.3 |
Oct 17 | The Halting Problem | Ch. 4.1, 4.2 |
Oct 22 | Proving Undecidability (Reductions) | Ch. 5.1 |
Oct 24 | Post correspondence problem | Ch. 5.2 |
Part 3: Complexity | ||
Oct 29 | Complexity of Algorithms (big-O, little-O) | Ch. 7.1 |
Oct 31 | P and NP | Ch. 7.2, 7.3 |
Nov 5 | NP completeness | Ch. 5.3, 7.4, 7.5 |
Nov 7 | More NP-completeness | Ch. 7.4, 7.5 |
Nov 12 | A peak into space complexity and the concept of intractability; Review |