Schedule
This is my prediction of the pace at which we will be able to move through topics, but reality may differ from this prediction. The schedule will evolve to adjust to the real pace as the semester progresses.
DPV stands for our textbook Algorithms, by Dasgupta, Papadimitriou, and Vazirani. In the reading column, an entry such as 0.1 indicates Section 1 of Chapter 0 of DPV. An entry such as #A1 stands for Lecture Note A1. Sometimes I have indicated an ending page number, such as 2.2–p.24. In those cases, you should read up through the indicated page, though if the page ends with a transitional paragraph, you needn’t concern yourself with it.
Date | Reading | Topic | Project Due |
---|---|---|---|
9/4 | #A0 | Introduction | |
9/6 | #A1, 0.1-0.2 | Machine Models & Complexity Analysis | |
9/7 | #A2, 0.3 | Pseudocode & Asymptotics | |
9/10 | #A3 | Insertion Sort | |
9/11 | #A3 | Insertion Sort (continued) | |
9/13 | #A4, p.235 | Subset Sum Problem | |
9/14 | #A4, p.242 | Traveling Salesman Problem | |
9/17 | Backtracking | ||
9/18 | #DS1, 3.3.3-2.3.4 | Binary Trees | |
9/20 | #DS2, 5.1, 5.3, 5.4 | Heaps, priority queues, heapsort | |
9/21 | #DS3, 3.1.1-3.1.5 | Binary Search Trees | |
9/24 | #DS4, 4.1 | BST Rotations | |
9/25 | #DS5, 4.5 | Splay Trees | |
9/27 | #DS6 | Augmented BSTs | Assignment 1 |
9/28 | |||
10/1 | Catch-up | ||
10/2 | Nobel Conference | ||
10/4 | Review | ||
10/5 | Test 1 | ||
10/8 | #DP1 | Review of Set Theory & Recurrences | |
10/9 | #DP2 | Flight Problem | |
10/11 | #DP3 | Subset Sum Revisited | |
10/12 | #DP4, 6.2 | Longest Increasing Subsequence | Assignment 2 |
10/15 | #DP5 | Longest Common Subsequence | |
10/16 | #DP6, 6.5 | Matrix Chain Multiplication | |
10/18 | |||
10/19 | |||
10/22 | Fall Break | ||
10/23 | Fall Break | ||
10/25 | #G1 | Activity Scheduling | |
10/26 | #G2, 5.2 | Huffman Codes | Assignment 3 |
10/29 | Review | ||
10/30 | Test 2 | ||
11/1 | #GF1, 3.1 | Graph Theory Review | |
11/2 | #GF2 | Graph Data Structures | |
11/5 | #GF3, 3.2–3.3 | Depth-first search (DFS) | |
11/6 | #GF3, 3.2–3.3 | DFS (continued) | |
11/8 | #GF4, 3.3, 4.7 | Algorithms on DAGs | |
11/9 | #GF4, 3.3, 4.7 | Algorithms on DAGs | |
11/12 | SCC paper, 3.4 | Path-based dfs for Strongly-Connected Components Problem | |
11/13 | Path-based SCC Problem (continued) | ||
11/15 | #GF5, 4.2 | Breadth-first Search (BFS) | |
11/16 | #GF6, 5.1 | Kruskal's Algoithm | Assignment 4 |
11/19 | #GF6, 5.1 | Prim's Algorithm | |
11/20 | #GF7, 4.4 | Dijkstra's Shortest-Path Algorithm | |
11/22 | Thanksgiving | ||
11/23 | Thanksgiving | ||
11/26 | |||
11/27 | |||
11/29 | |||
11/30 | #SS1 | Binary Search | Assignment 5 |
12/3 | #DC1, 2.2 | Master Theorem | |
12/4 | #DC2, p.50, 1.2.2 | Binary Search & Fast Exponentiation | |
12/6 | #DC3, 2.1 | Integer Multiplication | |
12/7 | #DC4, 2.5 | Strassen’s Matrix Multiplication | |
12/10 | note | Cryptography | |
12/11 | note, 2.3 | Mergesort | |
12/13 | 9.2.3 | Metric TSP | |
12/14 | Review & Evaluation | Assignment 6 |