Course Schedule
Unit 1: Introduction and Fundamental Concepts
Week | Topics | Text | Assignments |
---|---|---|---|
1/27 |
Course Introduction; Summation Loop Invariants and Correctness |
Appendix A 2.1, 2.2 |
|
2/3 |
Asymptotic Analysis [Asymptotic Analysis, Part 1] [Asymptotic Analysis, Part 2] |
3.1, 3.2 | |
2/10 | Divide and Conquer | 4.1, 4.3–4.5 | HW #1 due before 9:00 pm on 2/13. |
Unit 1 Quiz: Monday/Tuesday, February 17/18
Unit 2: Sorting
Week | Topics | Text | Assignments |
---|---|---|---|
2/17 | Heapsort Quicksort | 6.1–6.4, 7.1, 7.2 | |
2/24 | Linear-Time Sorting | 8.1–8.3 | HW #2 due before 9:00 pm on 2/27. |
Unit 2 Quiz: Monday/Tuesday, March 2/3
Unit 3: Advanced Design & Analysis
Week | Topics | Text | Assignments |
---|---|---|---|
3/2 |
Dynamic Programming [RMQ Slides (from 341)] [Python RMQ (Jupyter Notebook)] [Python RMQ (PDF)] |
||
3/9 |
More Dynamic Programming Longest Common Subsequence [Wed: Notes, Video] [Thu: Notes, Video] |
15.1, 15.3, 15.4 | |
3/16 | SPRING BREAK | ||
3/23 |
Greedy Algorithms, Part 1 [Tue: Notes, Video] [Wed: Notes, Video] Greedy Algorithms, Part 2 [Thu: Notes, Video] |
16.1–16.3 | |
3/30 |
Greedy Algorithms, Part 3 [Greedy Choice Property for Huffman Codes] [Mon: Notes, Video] [Tue: Notes, Video] Single-Source Shortest Path [Wed: Notes, Video] [Thu: Notes, Video] |
24.1–24.3 | HW #3 due before 9:00 pm on Sunday 4/5. |
Unit 3 Quiz: Monday/Tuesday, April 6/7
Unit 4: Algebra & Cryptography
Week | Topics | Text | Assignments |
---|---|---|---|
4/6 |
Number Theory Review Euclid's Algorithm [Wed: Notes, Video] [Thu: Notes, Video] |
31.1–31.3 | |
4/13 |
More Euclid & Modular Arithmetic [Mon: Notes, Video] [Tue: Notes, Video] Primality Testing & RSA [RSA Notes, PKC and RSA Slides (426)] [Wed: Notes, Video] [Thu: Notes, Video] |
31.6–31.8 | Project Assigned |
4/20 |
Integer Factorization [Tue: Notes, Video] [Notes on Pollard rho and p-1] Catch-up / Project Day |
31.9 |
Project Part 1a (4/23 before 9:00 pm) |
Unit 4 Quiz: Monday/Tuesday, April 27/28
Unit 5: Computability and Complexity
Week | Topics | Text | Assignments |
---|---|---|---|
4/27 |
Turing Machines [Mon: Notes, Video] [Tue: Notes, Video] Computability [Wed: Notes, Video] [Thu: Notes, Video] |
Project Part 1b (4/27 before 9:00 pm) |
|
5/4 |
Complexity [Mon: Notes, Video] [Tue: Notes, Video] Complexity, Part 2 [Wed: Notes, Video] [Thu: Notes, Video] |
34.1–34.3 |
Project Part 2 (5/7 before 9:00 pm) |
Unit 5 Quiz: Monday/Tuesday, May 11/12
Course Wrap-up
Week | Topics | Text | Assignments |
---|---|---|---|
5/11 |
Final Quiz; Wrap-up [Mon: Video] [Tue: Video] |
HW #5 due before
11:59 pm on Friday 5/15. Quiz 5 due before 11:59 pm on Sunday 5/17. |