Week | Topics | Readings | Notes | |
---|---|---|---|---|
1 | Jan 8 | Course Introduction Review of time complexity of algorithms and asymptotic notation Abstract data types Priority queues: heaps |
Ch. 1,2,3 | Asymptotic bounds on worst-case time complexity (PS) Tutorial: asymptotic bounds Week 1 lecture notes |
2 | Jan 15 | Priority queues: heaps, mergeable heaps (binomial heaps) Dictionaries: binary search trees |
Ch. 6, 19 | Tutorial: heapify and build-heap Week 2 lecture notes |
3 | Jan 22 | Balanced search trees: AVL trees, B-trees | 12.1, 12.2, 12.3, AVL notes (PS) |
Tutorial: AVL tree delete Week 3 lecture notes |
4 | Jan 29 | Augmenting data structures Hashing: basic definitions |
Ch.18, Ch. 14 | Tutorial: B-trees operations Week 4 lecture notes |
5 | Feb 5 | Hashing: chaining, probabilistic analysis Probabilistic vs. randomized algorithms: Quicksort |
11.1-11.3.2, Ch. 5, 7 |
Tutorial: Probability review Week 5 lecture notes |
6 | Feb 12 | Disjoint sets | Ch. 21 | Tutorial: Augmenting AVL trees Week 6 lecture notes |
-- | Feb 19 | Reading week -- no classes | ||
7 | Feb 26 | Amortized analysis, dynamic tables Midterm exam |
Ch. 17 | Tutorial: Disjoint sets Week 7 lecture notes |
8 | Mar 5 | Graphs: defintions, data structures Graphs: breadth-first search |
Appendix B.4, Ch. 22 |
Tutorial: Amortized analysis Week 8 lecture notes |
9 | Mar 12 | Graphs: single-source shortest-path Graphs: depth-first search |
Ch. 22 | BFS computes shortest-path proof (PDF)
(PS) Tutorial: Dijkstra's algorithm Week 9 lecture notes |
10 | Mar 19 | Graphs: minimum spanning trees | Ch. 23 | Alternate MST construction proof summary (PS) Tutorial: Topological sort Week 10 lecture notes |
11 | Mar 26 | Graphs: approximating solutions | 35.2 | Tutorial: MST algorithms Week 11 lecture notes |
12 | Apr 2 | Lower bounds: decision trees, adversary arguments Lower bound for sorting Course wrap-up |
8.1, 9.1 | Tutorial: decision trees and proving lower bounds |
-- | Final exams -- April 14-May 1 -- check exam schedule |
All readings are from the course textbook, Cormen, Leiserson, Rivest & Stein, Introduction to Algorithms (2nd edition). MIT Press and McGraw-Hill (2001), ISBN: 0-262-03293-7
Some of the notes are in PostScript format only. If you need a PostScript viewer for home, Ghostscript and GSview are free for both Windows and Mac (you'll need to install both programs). On the lab computers, gv should handle PS files automatically.
Lecture schedule is subject to change as the term progresses. Please check back each week to confirm reading assignments.
Though CLRS is thick, heavy and expensive, it contains a LOT of good stuff on algorithms, data structures and algorithmic techniques that you will find useful in later courses and use as a reference once you graduate. Buying it is a good investment. The down-side is that is is at times hard to read and learn from, and they often go overboard with details and lose or obscure the "intuition" of the algorithm.
For cheaper paper options, look on Amazon ($60) or sites that sell the cheaper paperback (overseas/international) version, such as CampusI.com or AbeBooks (site suggested by one of your classmates), but be aware of the shipping cost, currency conversion and time.
|