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