The calendar below lists the topics of each lecture and lab section for the semester, with links to relevant lecture notes, lecture videos, and lab handouts.
Topics for future lectures and labs are subject to change; exam dates are not.
Week | Tuesday Lecture | Wednesday Lab | Thursday Lecture | Friday Lab |
---|---|---|---|---|
Aug 24-28 |
Administrivia, course goals, introduction
[slides-part1] [slides-part2] |
Induction
[Induction notes] [lab work] More on induction |
Strings, languages, and regular expressions
[string notes], [languages & regular expressions notes] [slideshow | pdf ] |
String induction & regular expressions [lab work] |
Aug 31–Sept 4 |
DFAs: definitions, examples, design, product construction
& closure properties
[notes] [slideshow | pdf ] |
DFA constructions [lab work] | Nondeterminism: intuition, examples, NFA definitions, equivalence with DFAs, ε-transitions [notes] [slideshow | pdf ] |
NFA constructions
[lab work] |
Sept 7–11 | Equivalence among NFAs, DFAs & Regular Expressions, closure properties of regular languages [notes] [slideshow | pdf ] |
NFAs to DFAs
[lab work] |
Non-regularity [notes (sec. 3.8)] [slideshow | pdf ] |
Regular or not?
[lab work] |
Sept 14-18 |
Context-free grammars
[notes] [slideshow | pdf ] |
Context-free grammars constructions
[lab work] (End of Midterm 1 material) |
Reductions, Recursion, Divide and Conquer, Sorting
[notes] [slides] Jeff's [notes] on recurrences Chapter 5 of KT book, Chapter 2 of DPV book |
Binary Search
[lab work] |
Sept 21-25 |
Divide and Conquer: Linear-time selection, Karatsuba's Alg.
[notes] [slides] Jeff's [notes] on recurrences Chapter 5 of KT book, Chapter 2 of DPV book |
Divide and conquer
[lab work] |
Optional review for Midterm 1 (No lecture) | Optional review for Midterm 1 (No lab) |
Sept 28 | Midterm 1, 7–9pm, Monday Sept 28 | |||
Sept 28-Oct 2 |
Backtracking, Intro to Dynamic Programming: Fibonacci
[notes] [slides] |
Backtracking
[lab work] |
Dynamic Programming: Longest Increasing Subsequence, String splitting
[notes] [slides] Chapter 6 of KT book, Chapter 6 of DPV book |
Dynamic Programming
[lab work] |
Oct 5-9 |
Dynamic Programming: Edit Distance, Max Independent Set in Trees
[notes] [slides] Chapter 6 of KT book, Chapter 6 of DPV book |
Dynamic Programming
[lab work] |
Greedy Algorithms: techniques, examples
[notes] [slides] Chapter 4 of KT book, Chapter 5 of DPV book |
Greedy Algorithms
[lab work] |
Oct 12-16 |
Graph search
[notes] [slides] Chapter 3 of KT book, Chapter 3 of DPV book |
Graph modeling
[lab work] |
Directed graphs, Strong components, DAGs, Topological sort
[Notes] [slides] Chapter 3 of KT book, Chapter 3 of DPV book |
Directed graphs
[lab work] Drop deadline |
Oct 19–23 |
BFS, Single-source shortest paths, Dijkstra
[notes] [slides] Chapter 4 of DPV book, Chapter 4 of KT book |
Shortest Paths
[lab work] |
Shortest Paths with negative lengths, DFA to Regexp
[notes] [slides] Chapter 4 of DPV book, Chapter 6 of KT book |
Shortest paths with negative lengths
[lab work] |
Oct 26–30 |
Minimum spanning tree algorithms
[notes] [slides] Chapter 5 of DPV book, Chapter 4 of KT book |
Minimum spanning trees
[lab work] (End of Midterm 2 material) |
Turing machines: history, definitions, examples, variations and extensions
[notes] [slideshow | pdf ] |
Turing machine design
[lab work] |
Nov 2-6 |
Multi-tape TM, Universal TM, RAM computer, Church-Turing thesis.
[notes] [slideshow | pdf ] |
More TM design
[lab work] |
Optional review for Midterm 2 (No lecture) | Optional review for Midterm 2 (No lab) |
Nov 9 | Midterm 2, 7–9pm, Monday Nov 9 | |||
Nov 9-13 |
Undecidability, reductions
[notes] [slideshow | pdf ] |
Undecidability, reductions
[lab work] |
P, NP
[notes] [slideshow | pdf ] |
NP, NP-completeness, coNP
[lab work] |
Nov 16-20 |
Polynomial-time Reductions [notes] | [slides] Chapter 8 of Kleinberg-Tardos |
Reductions
[lab work] |
NP-Completeness via Reductions
[notes] | [slides] Chapter 8 of Kleinberg-Tardos Video on P vs NP |
NP-hardness proofs
[lab work] |
Nov 23–27 | Thanksgiving Break | |||
Nov 30 - Dec 4 |
More hard problems, Cook-Levin theorem
[notes] [slides] Chapter 8 of Kleinberg-Tardos, Chapter 7 of Sipser |
NP-Completeness proofs
[lab work] |
Undecidability: reductions again, Rice's theorem
[notes] [slides] ICES Forms |
Rice's Theorem, r.e. and non-r.e. languages
[lab work] ICES Forms |
Dec 8-10 | Review for final | Review for final | Reading Day | |
Dec 11-18 | Final Exam: 8-11am on Friday, Dec 11 |