TR 2:45-4:00 in Edmunds 101

Prof. Chen

2/2/2012: I've archived all of the course materials (ie, most of the links below don't work) and am only leaving up the syllabus for reference. If you're looking for the material, you may be able to find a link to a more recent offering of the class here or here.

The prerequisites for the class are cs55/math55 and cs62/cs70. Exceptions will be made for students who have taken an advanced proof-based math course and cs52/cs60, but not cs62/cs70. Come talk to me if you have questions about these requirements.

The lectures are on Tuesdays and Thursdays from 2:45-4:00 in Edmunds 101.

The textbook is Introduction to Algorithms, 3rd Edition by Cormen, Leiserson, Rivest, and Stein. Copies are available at Huntley bookstore.

Week | Date | In class | Reading | Assignment due |
---|---|---|---|---|

1 | (Tue) 8/30 | introduction, administrivia review (asymptotics) | ||

(Thu) 9/1 | insertion sort, mergesort loop invariants divide & conquer technique pdf slides | 2.1-3 3.1-2 | ps1a | |

2 | (Tue) 9/6 | solving recurrences (tree, master method) quicksort worst/average/best case analysis | 4.1-4, 7.1-4 | ps1b |

(Thu) 9/8 | bounding problems matrix multiplication linear time sorting | 8, 28.2 | ps2a | |

3 | (Tue) 9/13 | order statistics, data structures heaps and heapsort | 9, 10, 6 | ps2b |

(Thu) 9/15 | amortized analysis | 17 | ps3a | |

4 | (Tue) 9/20 | binary search trees red-black trees | 12, 13 | ps3b |

(Thu) 9/22 | AVL trees, mergeable heaps: linked lists, heaps, binomial heaps, Fibonacci heaps | 19, 20 | ps4a | |

5 | (Tue) 9/27 | disjoint sets: linked lists, forests, union-by-rank, path compression, log* analysis | 21 | ps4b |

(Thu) 9/29 | review | ps5a | ||

6 | (Tue) 10/4 | greedy algorithms: change, activity scheduling | 16 | midterm due |

(Thu) 10/6 | dynamic programming: matrix multiplication, longest common subsequence | 15 | ps6a | |

7 | (Tue) 10/11 | dynamic programming: 0-1 knapsack | 15 | ps6b |

(Thu) 10/13 | graphs (review), bfs, dfs, topological sort | B, 22 | ps7a | |

(Fri) 10/14 | blocks assignment due at 11:30PM | |||

8 | (Tue) 10/18 | *** no class: fall recess *** | ||

(Thu) 10/20 | (strongly)) connected components minimum spanning trees: greedy choice property, Prim's | 22, 23 | ps8a | |

9 | (Tue) 10/25 | minimum spanning trees: Prim's, Kruskal's, single source shortest path | 23, 24 | ps8b |

(Thu) 10/27 | single source shortest path: Bellman-Ford, Dijkstra's all pairs shortest path: Floyd-Warshall | 24, 25 | ps9a | |

10 | (Tue) 11/1 | all pairs shortest path: Johnson's network flow | 25, 26 | ps9b |

(Thu) 11/3 | network flow: Ford-Fulkerson, Edmunds Karp | 26 | ps10a | |

11 | (Tue) 11/8 | applications of network flow | 26 | ps10b |

(Thu) 11/10 | review | ps11a | ||

12 | (Tue) 11/15 | linear programming, integer linear programming | 29 |
midterm due |

(Thu) 11/17 | introduction to computational complexity polynomial time reductions | 34.1-4 | ps12a | |

13 | (Tue) 11/22 | NPC reductions more on the polynomial hierarchy | 34.5 | ps12b |

(Thu) 11/24 | *** no class: Thanksgiving *** | |||

14 | (Tue) 11/29 | more NPC reductions approximation algorithms | 34.5, 35.1 | ps13 |

(Thu) 12/1 | wrapping up, course evaluations, TBD | ps14a | ||

15 | (Tue) 12/6 | review |

The scheduled time for the final is 2-5pm on the Monday of finals week.

"Computers do not solve problems, they execute solutions"

--Laurent Gasser