### Schedule

This schedule is tentative, and will be updated as the semester progresses.

 WEEK DATE TOPIC READING ASSIGNMENT LAB 0 9/4 Class intro. Warmup with searching (linear and binary) and sorting (bubble sort, insertion sort, selection sort). Notes: L0.pdf | bbsort.pdf | selsort.pdf CLRS 1 1 9/9 Analysis: The RAM model. Asymptotic analysis and asymptotic notation. Case studies. Notes: Analysis.pdf | inssort.pdf | e1 | e2 CLRS 2, 3 Lab 1 9/11 2 9/16 Analysis: Summations and recurrence relations. Mergesort. Notes: Summations.pdf | e1 | Recurrences.pdf | e1 | e2 | e3 | e4 CLRS A, 2.3, 4.4 Lab 2 9/18 3 9/23 [More recurrences.] Heaps and heapsort. Notes: Heaps.pdf | e1 CLRS 6 Lab 3 9/25 4 9/30 Quicksort. Sorting lower bound and sorting in linear time. Notes: Quicksort.pdf | e1 | sortLB.pdf | e2 | linsort.pdf CLRS 7, 8 Lab 4 10/2 5 10/7 Selection. Notes: Selection.pdf | e1 CLRS 9 Lab 5 10/9 6 10/14 FALL BREAK Exam 1. 10/16 Divide-and-conquer algorithms (Strassen, maximum sub-array) Notes: Divide-and-conquer.pdf | Max-subarray.pdf CLRS 4.1, 4.2 7 10/21 Dynamic programming. Notes: Board.pdf | Rod.pdf CLRS 15.1 Lab 6 10/23 8 10/28 Dynamic programming and greedy algorithms. Notes: LCS.pdf | Weightedinterval.pdf | Greedy.pdf CLRS 15.4, 16.1, 16.2 Lab 7 10/30 9 11/4 Graphs: BFS, DFS. Notes: Basics.pdf | BfsDfs.pdf | Applications.pdf | KevinBaconGame.pdf CLRS 22.1 - 22.3 Lab 8 11/6 10 11/11 Graphs: Topological sort. Strongly connected components. Notes: topsort.pdf | SCC.pdf CLRS 22.4, 22.5 Lab 9 11/13 11 11/18 Graphs: Minimum spanning tree (Kruskal and Prim's algorithms). Notes: MST.pdf CLRS 23 Lab 10 11/20 12 11/25 Union-find structure. Pessimal algorithms. CLRS 23 11/27 THANKSGIVING 13 12/2 Graphs: Single-source shortest paths (Bellman-Ford and Dijkstra's algorithms). Notes: sp.pdf CLRS 24.1-24.3 Lab 11 12/4 14 12/9 NP-completeness. Last class: Questions from technical interviews. CLRS 34 12/11 Exam 2 will be take-home, due on December 17th at 5pm.