CS161 Class Schedule for Winter Quarter '17-'18
|
Monday
|
Wednesday
|
|
January 8
|
January 10
|
|
Administrivia. Introduction: models of computation, algorithms. Insertion sort, mergesort and their analysis. Reading: Chapters 1, 2. |
O-notation, growth of functions. Divide and conquer, recurrences. Reading: Chapters 3, 4. |
|
January 15
|
January 17
|
|
[No class – Martin Luther King day holiday] |
More on recurrences, the master theorem. Reading: Chapters 4, 5. Homework 1 out. |
|
January 22
|
January 24
|
|
Probabilistic analysis, randomized algorithms. Quicksort and randomized quicksort. Reading: Chapter 7. |
Selection: medians, order statistics. Reading: Chapter 9. Homework 1 due. Homework 2 out. |
|
January 29
|
January 31 |
|
Sorting: heapsort, priority queues. Reading: Chapter 6. |
Sorting: lower bounds, counting sort, radix sort. Reading: Chapter 8. Homework 2 due. Homework 3 out. |
|
February 5
|
February 7
|
|
Data structures: hashing, collision resolution, chaining, universal hashing, open addressing. Reading: Chapter 11. [Guest Lecture: Greg Valiant] Notes from Prof. Valiant |
Data structures: binary search trees, tree walks, relation to quicksort. Reading: Chapter 12. [Guest Lecture: Mary Wootters] Homework 3 due. Homework 4 out. |
|
February 12
|
February 14
|
Data structures: red-black trees, rotations, insertion, deletion. Reading: Chapter 13. |
Dynamic programming: shortest paths; longest common subsequence; martrix products. Reading: Chapter 15. Homework 4 due. Homework 5 out. |
|
February 19
|
February 21
|
|
[No class – President day holiday] |
Augmenting data structures: dynamic order statistics, interval trees. Amortized analysis: the accounting and potential methods. Reading: Chapter 15, 17. Homework 5 due. Programming project out. |
|
February 26
|
February 28
|
|
Midterm examination, in class, closed book. |
Introduction to graph algorithms: representation, breadth first search, depth first search, topological sort. Reading: Chapter 22. Homework 6 out. |
|
March 5
|
March 7
|
|
Graph algorithms: minimum spanning tree algorithms, Prim's algorithm, Kruskal's algorithm. Reading: Chapter 22, 23. |
Graph algorithms: Single-source shortest paths, Dijkstra's algorithm, Bellman-Ford Algorithm, difference constraints. Reading: Chapter 24. Homework 6 due. |
|
March 12
|
March 14
|
|
Graph algorithms: all-pairs shortest paths, matrix multiplication, Floyd-Warshall algorithm. Reading: Chapter 25. |
Class summary. Programming project due. All course work is due by this date. |