Week | Topics | Readings | Tutorial | Notes | |
---|---|---|---|---|---|
1 | May 8 | Course Introduction Review of time complexity of algorithms and asymptotic notation Abstract data types vs. data structures Priority queues: heaps |
Ch. 1,2,3 | asymptotic bounds | Asymptotic bounds on worst-case time complexity (PS) lecture notes |
2 | May 15 | Priority queues: heaps, mergeable heaps (binomial heaps) | Ch. 6, 19 | heapify and build-heap | lecture notes |
3 | May 22 | Dictionaries: binary search trees Balanced search trees: AVL trees |
12.1, 12.2, 12.3, AVL notes (PS) |
AVL tree delete | lecture notes |
4 | May 29 | Balanced search trees: B-trees Augmenting data structures |
Ch.18, Ch. 14 | B-trees operations | lecture notes |
5 | June 5 | Hashing: basic definitions Hashing: chaining, probabilistic analysis Probabilistic vs. randomized algorithms: Quicksort |
11.1-11.3.2, Ch. 5, 7 |
probability review | lecture notes |
6 | June 12 | Disjoint sets | Ch. 21 | augmenting AVL trees: intervals | lecture notes |
7 | June 19 | Disjoint sets Midterm exam |
Ch. 17 | ||
8 | June 26 | Amortized analysis, dynamic tables Graphs: defintions, data structures |
Ch. 17, Appendix B.4 |
amortized analysis | lecture notes |
-- | July 3 | Reading week -- no classes | |||
9 | July 10 | Graphs: breadth-first search Graphs: depth-first search |
Ch. 22 | BFS computes shortest-path proof (PDF)
(PS) lecture notes |
|
10 | July 17 | Graph problems: connected components, shortest paths, topological sort | Ch. 23 | disjoint sets for connected components Dijkstra's algorithm topological sort |
lecture notes |
11 | July 24 | Graphs: minimum spanning trees Graphs: approximating solutions |
35.2 | MST algorithms | lecture notes Alternate MST construction proof summary (PS) |
12 | July 31 | Lower bounds: decision trees, adversary arguments Lower bound for sorting Course wrap-up |
8.1, 9.1 | decision trees and proving lower bounds | lecture notes |
-- | Final exams -- August 9 - 22 -- 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 an algorithm.
For more affordable hard-copy options, look on Amazon ($60) or sites that sell the cheaper paperback (overseas/international) version, such as CampusI.com or AbeBooks (sites suggested by past students), but be aware of the shipping cost, currency conversion and time.
|