Lectures

Date Meeting Material covered Required reading Other materials
9/9 Lecture 1 Course introduction; array with fast initialization   slides
9/11 Lecture 2 Finish initializable arrays; logs and asymptotic order   array slides; logs and order slides
9/12 Lecture 3 Induction practice; AVL trees have logarithmic height Review BSTs slides
9/13 Lecture 4 Maintaining AVL tree balance; introducing recurences   AVL slides; recurrence slides
9/16 Lecture 5 Recurrences and solving them Section 2.3 slides
9/18 Lecture 6 Maximizing profit; grade-school multiplication   slides
9/19 Lecture 7 Karatsuba's algorithm; practice problems   slides
9/20 Lecture 8 Linear-time selection; practice problems Section 9.3 slides
9/23 Lecture 9 Multithreaded algorithms; spawn/sync; parallel for Chapter 26 intro and Section 26.1 part 1 (pp. 748-759; up to "scheduling") slides
9/25 Lecture 10 Race conditions; multithreaded practice problems Finish Section 26.1 slides
9/26 Lecture 11 Parallel merge and mergesort   slides
9/27 Lecture 12 Dynamic programming Section 14.1 slides
9/30 Lecture 13 Dynamic programming practice problems   slides
10/2 Lecture 14 Dynamic programming: Longest common subsequence, party planning Section 14.4 slides
10/3 No class - work on Exam 1
10/4 Lecture 15 Matrix chain multiplication   slides
10/7 Lecture 16 More practice: Subset sum, making change   slides
10/9 Lecture 17 Graphs; DFS/BFS   slides
10/10 Lecture 18 Shortest path (Dijkstra's alg); MST; choosing a graph problem   slides; handout
10/11 Lecture 19 More graph applications; computing an MST   slides; handout
10/14 Lecture 20 Topological sorting; network flow and applications   top sort slides; network flow slides
10/16 No class - Fall Institute Day
10/17 Lecture 21 More network flow applications; Fork-Fulkerson; max flow-min cut   slides
10/18 Lecture 22 Finishing network flow; greedy algorithms (activity selection)   flow slides; greed slides
10/21 No class - work on Exam 2
10/23 Lecture 23 More greedy algorithms: Scheduling to minimize lateness and flow, making change, start of Huffman encoding   slides
10/24 Lecture 24 More greedy algorithms: Huffman encoding, scheduling to meet deadlines w/ release times and preemption   slides
10/25 Lecture 25 Amortized analysis   slides
10/28 Lecture 26 Union-find (disjoint set data structure)   slides; notes
10/30 Lecture 27 Analysis of Move-to-front; decision problems and reductions; CIRCUIT SAT   move-to-front slides; hardness slides
10/31 Lecture 28 Transitivity of poly-time reductions; More problems: SAT, 3SAT, CLIQUE, INDEPDENDENT SET   slides
11/1 Lecture 29 P and NP; NP-completeness; more hard problems: VERTEX COVER, SET COVER, HAM CYCLE   slides
11/4 Lecture 30 More NP-complete problems: HAM PATH, LONGEST PATH, TSP, SUBSET SUM   slides
11/6 Lecture 31      
11/7 Lecture 32      
11/8 Lecture 33      
11/11 Lecture 34