Course Calendar
Future lecture and lab topics and guided problem set/homework deadlines are subject to change.
All guided problem sets and written homeworks are due by 9pm unless announced otherwise.
Exam dates are fixed.
Semester progress: 0 / 15 weeks complete MT1 MT2 Final
Week 1
- Tue Aug 25
- Lecture: Course goals and administrivia; strings and induction — [Erickson Models 1; induction notes; helpful advice on writing proofs]
- Wed Aug 26
- Lab 1a: String induction — [induction notes; helpful advice on writing proofs]
- Thu Aug 27
- Lecture: Languages and regular expressions — [Erickson Models 2; helpful advice on writing proofs]
- Fri Aug 28
- Lab 1b: Regular expressions
- Mon Aug 31
- Guided problem set 1: Prerequisite material, string induction, and regular expressions
- Tue Sep 01
- Homework 1: Strings and induction
Week 2
- Tue Sep 01
- Lecture: DFAs: intuition, definitions, examples — [Erickson Models 3]
- Wed Sep 02
- Lab 2a: DFA design
- Thu Sep 03
- Lecture: DFAs: product construction, closure, automatic=regular — [Erickson Models 3]
- Fri Sep 04
- Lab 2b: DFA product construction
- Fri Sep 04
⚠️ Registration deadline (11:59pm)
- Mon Sep 07
Labor Day — GPS1 and HW1 due one day later than usual
— [Labor Day]- Tue Sep 08
- Guided problem set 2: Regular expressions and DFAs
- Wed Sep 09
- Homework 2: Strings and induction
Week 3
- Tue Sep 08
- Lecture: Proving nonregularity: fooling sets (and closure properties); NFAs: intuition and examples — [Erickson Models 3; Erickson Models 4]
- Wed Sep 09
- Lab 3a: Proving nonregularity
- Thu Sep 10
- Lecture: NFAs: ε-transitions, equivalence with DFAs and regular expressions — [Erickson Models 4]
- Fri Sep 11
- Lab 3b: NFA design
- Mon Sep 14
- Guided problem set 3: DFAs and NFAs
- Tue Sep 15
- Homework 3: Proving irregularity, regular or not?
Week 4
- Tue Sep 15
- Lecture: Language transformations — [Erickson Models 4; extra language transformation notes by Pranay Midha]
- Wed Sep 16
- Lab 4a: Language transformations
- Thu Sep 17
- Lecture: Context-free grammars and languages — [Erickson Models 5]
- Fri Sep 18
- Lab 4b: Context-free grammars
- Mon Sep 21
- Guided problem set 4: Fooling sets, language transformations, and CFGs
- Tue Sep 22
- Homework 4: Language transformations, CFGs
Week 5
- Tue Sep 22
- Lecture: Turing machines — [Erickson Models 6]
- Wed Sep 23
- Lab 5: Language transformation practice
- Thu Sep 24
No lecture — Optional review for Midterm 1
- Fri Sep 25
No labs — Optional review for Midterm 1
- Mon Sep 28
- Midterm 1: 7:00pm- 9:00pm
- Tue Sep 29
- Conflict Midterm 1: (time TBA)
Week 6
- Tue Sep 29
- Lecture: Recursion: Tower of Hanoi, mergesort, and quicksort — [Erickson Algorithms 1]
- Wed Sep 30
- Lab 6a: Try Binary searching
- Thu Oct 01
- Lab 6b: Fun with Karatsuba
- Thu Oct 01
- Lecture: Divide and conquer: linear-time selection, multiplication — [Erickson Algorithms 1]
- Mon Oct 05
- Guided problem set 5: Divide and conquer, recursion, and recurrences
- Tue Oct 06
- Homework 5: Divide and conquer
Week 7
- Tue Oct 06
- Lecture: Backtracking: $n$ queens, text segmentation, subset sum(?) — [Erickson Algorithms 2]
- Wed Oct 07
- Lab 7a: Backtracking
- Thu Oct 08
- Lecture: Dynamic programming: Fibonacci numbers, faster text segmentation — [Erickson Algorithms 3]
- Fri Oct 09
- Lab 7b: Dynamic programming
- Mon Oct 12
- Guided problem set 6: Dynamic programming
- Tue Oct 13
- Homework 6: Dynamic programming
Week 8
- Tue Oct 13
- Lecture: Dynamic programming with sequences: Edit distance — [Erickson Algorithms 3]
- Wed Oct 14
- Lab 8a: More dynamic programming
- Thu Oct 15
- Lecture: Tree shaped dynamic programming: woodcutting, maximum independent set in trees — [Erickson Algorithms 3]
- Fri Oct 16
- Lab 8b: Dynamic Programming: Return of the King
- Fri Oct 16
⚠️ Drop deadline (11:59pm)
- Mon Oct 19
- Guided problem set 7: More dynamic programming
- Tue Oct 20
- Homework 7: More dynamic programming
Week 9
- Tue Oct 20
- Lecture: Graphs: definitions, representations, traversal, reductions, layering — [Erickson Algorithms 5]
- Wed Oct 21
- Lab 9a: Applying graph traversals
- Thu Oct 22
- Lecture: Depth-first search, topological sort, dynamic programming on dags — [Erickson Algorithms 6]
- Fri Oct 23
- Lab 9b: Applying DAGs
- Mon Oct 26
- Guided problem set 8: Graph algorithms
- Tue Oct 27
- Homework 8: Graph algorithms
Week 10
- Tue Oct 27
- Lecture: Single-source shortest paths: generic single-source shortest paths, breadth-first search, Dijkstra's algorithm — [Erickson Algorithms 8]
- Wed Oct 28
- Lab 10a: Applying shortest paths
- Thu Oct 29
- Lecture: Single-source shortest paths via dags: DagSSSP, Bellman-Ford (kind of) via layering — [Erickson Algorithms 8]
- Fri Oct 30
- Lab 10b: More applying shortest paths
- Mon Nov 02
- Guided problem set 9: More graph algorithms
- Tue Nov 03
- Homework 9: More graph algorithms
Week 11
- Tue Nov 03
- Lecture: Shortest paths via direct dynamic programming: Bellman-Ford for real this time, Floyd-Warshall all-pairs shortest paths — [Erickson Algorithms 8; Erickson Algorithms 9]
- Wed Nov 04
- Lab 11: Solve it both ways
- Thu Nov 05
No lecture — Optional review for Midterm 2
- Fri Nov 06
No labs — Optional review for Midterm 2
- Mon Nov 09
- Midterm 2: 7:00pm- 9:00pm
- Tue Nov 10
- Conflict Midterm 2: (time TBA)
Week 12
- Tue Nov 10
- Lecture: Polynomial time (Karp) reductions: definitions, IndependentSet and friends — [Erickson Algorithms 12]
- Wed Nov 11
- Lab 12a: Polynomial time reductions
- Thu Nov 12
- Lecture: NP-hardness: definitions, SAT, 3SAT — [Erickson Algorithms 12]
- Fri Nov 13
- Lab 12b: NP-hardness proofs
- Mon Nov 16
- Guided problem set 10: Polynomial time reductions and NP-hardness
- Tue Nov 17
- Homework 10: NP-hardness
Week 13
- Tue Nov 17
- Lecture: NP-hardness proofs: 3SAT to IndependentSet, 3SAT to HamCycle, VertexCover to SubsetSum — [Erickson Algorithms 12]
- Wed Nov 18
- Lab 13a: More NP-hardness proofs
- Thu Nov 19
- Lecture: NP-hardness proofs: spill from earlier, why bother, choosing which problem to reduce from — [Erickson Algorithms 12]
- Fri Nov 20
- Lab 13b: The NP-hardness Proofs Revolutions
- Mon Nov 23
No guided problem set this week
- Tue Nov 24
Fall Break — HW11 due one week later than usual
- Tue Nov 24
Fall Break — HW11 due one week later than usual
- Wed Dec 02
- Homework 11: More NP-hardness
Nov 21-29 — Inconveniently Timed Fall Break 🦃
Week 14
- Tue Dec 01
- Lecture: Undecidability: review of (Turing) machines, SelfReject, Halt — [Erickson Models 7]
- Wed Dec 02
- Lab 14a: Undecidability via diagonalization
- Thu Dec 03
- Lecture: Undecidability: reductions, Rice's theorem — [Erickson Models 7]
- Fri Dec 04
- Lab 14b: Undecidability via reductions and Rice's theorem
- Mon Dec 07
Homework 12 (practice only) “due” by tomorrow
- Mon Dec 07
- Guided problem set 11: Undecidability
Week 15
- Tue Dec 08
- Lecture: Wrap-up and review for Final Exam
- Wed Dec 09
No labs — Optional review for Final Exam
- Thu Dec 10
Reading Day — FLEX feedback due
- Fri Dec 11
- Final Exam: 8:00am-11:00am