1. Course info | |
2. Proof methodology | |
3. HW 1 | due 1/13 |
4. HW 1 solutions | |
5. HW 2 and examples.py | due 1/25 |
6. HW 2 solutions and NFAtoDFA.py | |
7. half(L) example | |
8. HW 3 | due 2/3 |
9. HW 3 solutions | |
10. HW 4 | due 2/17 |
11. HW 4 solutions | |
12. Bison/flex calculator example | |
13. Midterm | due 3/10 |
14. HW 5 | due 3/17 |
15. HW 5 solutions | |
16. HW 6 | due 3/31 |
17. HW 6 solutions | |
18. Sample final exam questions |
Lecture | Content | Reference |
---|---|---|
Lecture 1 (Jan. 4) | Introduction Alphabets, strings, languages Deterministic finite automata (DFAs) |
Ch. 1, 2.1-2.2, 8.1.1, Handout 1, XKCD |
Lecture 2 (Jan. 6) | Nondeterministic finite automata (NFAs) | Ch. 2.3.1 - 2.3.5, notes |
Lecture 3 (Jan. 13) | NFA to DFA conversion & overhead | notes, Ch. 2.3.5 - 2.3.6 |
Lecture 4 (Jan. 18) | epsilon-NFAs, Regular expressions | notes, Ch. 3 (3.1 and 3.2) |
Lecture 5 (Jan. 20) | Equiv. betwn. Regular expressions & NFAs | notes, Ch. 3.2.1-3.2.2 |
Lecture 6 (Jan. 25) | Closure properties of regular languages | Ch. 4.2-4.3, half(L) example |
Lecture 7 (Jan. 27) | Pumping Lemma | notes, Ch. 4.1 |
Lecture 8 (Feb. 1) | Review of regular languages, Context-free grammars | notes, Ch. 5 |
Lecture 9 (Feb. 3) | CFG ambiguity, Useless symbols, Chomsky normal form | notes, Ch. 5 |
Lecture 10 (Feb. 8) | Applications of CNF: Decision problems for CFGs, Pumping lemma for CFLs | notes, Ch. 7.4, 7.2 bison/flex calculator example, Senizergues paper (Deciding equality for DPDAs) |
Lecture 11 (Feb. 10) | Push-down automata, final-state & empty-stack acceptance | notes, Ch. 6.1, 6.2 |
Lecture 12 (Feb. 15) | CFG to PDA conversion | notes, Ch. 6.3 |
Lecture 13 (Feb. 17) | PDA to CFG conversion | notes, Ch. 6.3 |
Lecture 14 (March 1) | Turing machines | notes, Ch. 8.2-8.3 |
Lecture 15 (March 3) | Turing machine extensions | notes, Ch. 8.4, 8.5.1, 9.2.1 |
Lecture 16 (March 8) | Universal language is undecidable | notes, Ch. 9.1-9.2 |
Lecture 17 (March 10) | Reductions | notes, Ch. 9.3 |
Lecture 18 (March 15) | Reductions and decidability (continued) | |
Lecture 19 (March 17) | Time complexity, NP-complete | Ch. 10.1 |
Lecture 20 (March 22) | Cook-Levin Theorem: SAT is NP-complete | notes, Ch. 10.2 |
Lecture 21 (March 24) | Polynomial-time reductions: More NP-complete problems | notes, Ch. 10.4 |
Lecture 22 (March 29) | NP-complete problems, Time hierarchy theorem | notes, Ch. 10.4 |