Fundamental Algorithms, G22.1170
Fall 2002

Reading Guide

The following reading recommendations give more detail guides, based on the weekly lecture and recitation feedback.

We strongly suggest reading ahead: this kind of reading does not require full understanding, but gives you a general orientation. Just read as far as you can, starting from the introduction (even 10 minutes of reading just before class would be helpful). Even learning the few buzz words on the topic is useful to help understand lectures.

We encourage doing extra exercises on your own. We would be happy to discuss your solutions in person or in recitation.
Week TOPIC Chapter, Comments
0 Background Read at your leisure Chaps 1 and 2.
-- We discussed Merge Sort in lecture 1. This is described in 2.3.1 and 2.3.1.
1 (Sep 10) Recurrences Chap 3,4 and Appendix A.
-- In Chap 3, skip the small-oh and small-omega notation for now. In Chap. 4, read 4.2 (recursion tree) only lightly. In Appendix A, understand the bounding techniques.
2 (Sep 17) Probabilistic Analysis Chap 5. Appendix C.
-- In Appendix C, focus on sections C.1 and C.2. You must be comfortable with the concept of random variables.
-- Read sections 1, 2, 3. Also, read section 4.3 (on streaks).
3 (Sep 24, Oct 1) Quick Sort and Medians Chap 7,9.
-- Read sections 1, 2, 3, 4 in Chapter 7.
-- Read sections 1, 2, 3 in Chapter 9.
4 (Oct 8) Hashing Chap 11.
-- Read sections 1, 2, 3, 4, 5.
-- For section 4, skip the analysis (pages 241 onwords)
5 (Oct 15) Binary Search Trees
(Randomized, Balanced)
Chap 12 and 13 (Lecture Notes).
-- Read sections 1, 2, 3 of Chapter 12 (Binary Search Trees).
-- Read section 2 of Chapter 13 (rotations). DO NOT READ ABOUT THE RED-BLACK TREE ALGORITHMS IN THIS CHAPTER. In place of Red-Black Trees, we will cover AVL Trees. This is exercise 13-3 (p.296), but I provide our own lecture notes here.
6 (Oct 29) Dynamic Programming Chap 15.
-- Read Sections 2, 3 and 4.
-- The two concrete examples you need to know are Optimal Matrix Multiplication and Longest Common Subsequence.
7 (Nov 5) Greedy Methods Chap 16.
-- Read Sections 1, 2 and 3.
-- The concrete examples are Actitivity Selection and Huffman Codes.
8 (Nov 12) Amortization Chap 17.
-- Read Sections 1, 2, 3 and 4.
-- The concrete examples here are binary counters and dynamic tables.
-- See also the Union-Find problem (also known as ``Disjoint Sets Data Structure'') below.
9 (Nov 12, 19) Advanced Data Structures Disjoint Sets (Chapter 21)
-- Read Sections 1, 2 and 3. Skip Section 4.
-- This is another example of amortization analysis, and is used for Kruskal's MST algorithm.
-- Our lower bound for path-compression heuristic is not in the text, but uses the concept of binomial trees. These trees are described in section 19.1.1 (p.457).
10 (Nov 19) Basic Graph Algorithms Chap 22, 23.
-- Read all of Chapter 22 and 23.
-- You will need to know: BFS, DFS, Topological sort, strong components, MST algorithms (Prim's and Kruskal's).
11 (Nov 26) Shortest Paths Chap 24.
-- Read Chap. 24 (first 3 sections) and Chap. 25 (first 3 sections)
-- Algorithms of Dijkstra, Floyd-Warshall and Johnson. You must know how to perform hand simulation on these algorithms.
12 (Dec 3) Computational Geometry Chap 33.
-- Read all 4 sections.
--
13 (Dec 10) NP Completeness Chap 34, 35.