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 |
|
|
|