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.

Final Exam: Released Monday 5/18; due Wednesday 5/20