####
Fundamental Algorithms, G22.1170

Fall 2004

###
COURSE SCHEDULE

This course emphasizes the basic algorithmic techniques
for efficient algorithms, and the
analytical tools for understanding them.
There will be no programming.
We will distribute lecture notes (Lect 1, Lect 2, etc).
There are no required textbooks, but if
you want to refer to one, we
recommend Cormen, Leiserson, Rivest, Stein [CLRS].
There is usually a good matching chapter in [CLRS] to each
of our topics below.

The following outline gives the sequence of lecture topics.
Each topic is covered in 1-2 weeks. The "week indicator" is
a rough guide only.

We do not expect you to read the entire set Lecture Notes
(a separate Reading Guide will tell you want is needed)

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).

Week |
TOPIC |
Chapter, Comments |

1 |
Background |
Lect 1. Asymptotic Notation must be mastered |

2 |
Recurrences |
Lect 2. Know the techniques leading to the
Master Theorem |

3 |
Search Trees |
Lect 3. AVL Trees. (a,b)-Trees. Sorting. |

4 |
Pure Graph Algorithms |
Lect 4. BFS, DFS, Topological Sort, Strong Components |

5 |
Greedy Algorithms |
Lect 5. Huffman Tree, MST |

6 |
Amortization |
Lect 6. Splay Trees, Applications. |

7 |
Dynamic Programming |
Lect 7. String Problems, Optimal Triangulation |

8 |
Probabilistic Algorithms |
Lect 8,10. Randomized Search Trees |

9 |
Hashing |
Lect 11. Basic concepts, Universal hashing |

10 |
Shortest Paths |
Lect 14. Dijkstra, Floyd-Warshall, Transitive Closure |

11 |
NP-Completeness |
Lect 30. Basic Concepts of Complexity Theory |

NOTES:
Week 1 refers to the first lecture on Sep 9.