Lecture Schedule
This schedule is tentative and may change as the quarter progresses. I will try not to change scheduled days of quizzes and the midterm, however. The topics listed for each lecture are an estimate. After the lecture, I will alter the topics to reflect what we actually covered.
The reading assignment is to be done before lecture. In particular, the online Canvas reading quiz for a lecture will contain some questions about the reading assignment. If you're dismayed to notice that there is a reading assignment for the first lecture, there's no reading quiz before the first lecture. This reading is a review of discrete math (ECS 20), a prerequisite for this course, so I'm essentially just saying you should know that stuff already, but it's good to review just in case.
Any section/subsection in the lecture notes labeled "Optional" is something we will not cover. Topics from those sections will not appear on homeworks, quizzes, or exams.
lecture | date | in-lecture quiz/exam | reading assignment | topics |
1a | 1/8 | 1.1, 1.2, 1.3, 1.4 | introduction to theory of computation, course policies, string notation, intuitive introduction to deterministic finite automata (DFA) | |
1b | 1/10 |
2.1, 2.2, 2.3, 3.1, 3.2, 3.3, 3.4, 3.5 |
formal models of computation, formal definition of DFA, formal definition of DFA computation |
|
2a | 1/15 |
4.1, 4.2 |
regular expressions (regex), context-free grammars (CFG) |
|
2b | 1/17 |
4.3 |
nondeterministic finite automata (NFA) |
|
3a | 1/22 | 5.1, 5.2 |
introduction to closure properties, product construction, DFA closure properties for complement, ∪, ∩ |
|
3b | 1/24 | 5.3 |
NFA closure properties for ∪, ○, * |
|
4a | 1/29 | quiz for HW1 |
6.1, 6.2 |
equivalence of DFAs and NFAs (subset construction), equivalence of RGs and NFAs |
4b | 1/31 | 6.3 | equivalence of regex's and NFAs | |
5a | 2/5 | 7.1 | proving languages are not regular (Pumping Lemma) | |
5b | 2/7 | 8.1, 8.2, 8.3, 8.5 | Turing machines (TM) | |
6a | 2/12 | quiz for HW2 | 8.6 | variants of TMs |
6b | 2/14 | midterm exam | Part 1: automata theory | |
7a | 2/19 | Appendix A, 9.1, 9.2 | asymptotic time analysis, the class P, analyzing running time of algorithms | |
7b | 2/21 | 10.1 | examples of problems in P, the class NP | |
8a | 2/26 | 10.1 | examples of problems in NP, the P versus NP question, exponential-time algorithms for NP problems | |
8b | 2/28 | quiz for HW3 | 10.2 | reducibility among problems |
9a | 3/5 | 10.3, 11.1 | NP-completeness, proving problems are NP-complete, halting problem | |
9b | 3/7 | 11.2 | proving problems are undecidable | |
10a | 3/12 | 11.4 | the halting problem is undecidable | |
10b | 3/14 | quiz for HW4 | 11.5 | other consequences of undecidability |
final exam week | 3/21, 3:30pm | final exam | Part 2: Turing machines, computational complexity, computability |