Students wishing to add should submit an enrollment agreement form to the ICS undergraduate student affairs office (forms are available from the USAO); there will be announcements in the discussion sections listing students whose forms have been processed and for whom add cards will be signed. Adds will only be accepted for students meeting the course prerequisites, and prioritized according to expected date of graduation (as verified by the USAO). If you intend to add, you should turn in all homework assignments as they are due; these will be graded once your add card has been signed.
Week 1:  
Jan 6:  Introduction. Growth of functions. Fibonacci numbers. Dynamic programming. [CLR 1 & 2]  
Jan 8:  Sorting, comparison trees, and lower bounds. Mergesort. Divide and conquer. Solution of recurrences. [CLR 1, 4, & 9.1]  
Homework due Jan 15 (note change of date):  


Week 2:  
Jan 13:  Divide and conquer. Merge sort. Heap sort. [CLR 1 & 7]  
Jan 15:  Quicksort. Average case analysis. [CLR 8]  
Homework due Jan 22: CLR exercises 1.37*, 7.14, 7.15, 8.31, 8.32  
Week 3:  
Jan 20:  Integer sorting. [CLR 9]  
Jan 22:  Medians and order statistics. Heapselect. Quickselect. [CLR 10]  
Homework due Jan 29: CLR exercises 9.31, 10.23, 10.39  
Week 4:  
Jan 27:  Deterministic selection. [CLR 10.3]  
Jan 29:  Midterm I  
Week 5:  
Feb 3:  Dynamic programming. Matrix chain multiplication. [CLR 16.1 & 16.2]  
Feb 5:  Common subsequences. [CLR 16.3 & 16.4]  
Homework due Feb 12:  


Week 6:  
Feb 10:  Graphs algorithms. Depth first search. Topological ordering. [CLR 23]  
Feb 12:  Shortest paths. [CLR 25]  
Homework due Feb 19: CLR exercises 23.34, 23.36, 25.11, 25.22, 25.24  
Week 7:  
Feb 17:  Strongly connected components. Minimum spanning trees. [CLR 23.5,24]  
Feb 19:  String matching. [CLR 34]  
Homework due Feb 26: CLR
exercises 23.53, 24.13, 24.22, 34.14. (Note: in ex. 23.53, either prove the statement or give a counterexample, don't just answer yes or no.) 

Week 8:  
Feb 24:  KnuthMorrisPratt algorithm. [CLR 34.4]  
Feb 26:  Midterm II  
Week 9:  
Mar 3:  Computational geometry. Plane sweep. Line segment intersection. Convex hulls. [CLR 35.1,35.2]  
Mar 5:  Convex hulls. Closest and farthest pairs. Nearest neighbors. [CLR 35.3]  
Homework due Mar 12: CLR exercises 35.21, 35.23, 35.33; CLR problem 35.1a  
Week 10:  
Mar 10:  NPCompleteness and undecidability. [CLR 36]  
Mar 12:  Approximation and greedy algorithms. [CLR 37] 