CS 787  Advanced Algorithms
Fall 2004 

Course Description
This is an advanced course in the design and analysis of algorithms.
The main focus is on techniques for constructing algorithms for NPhard
problems, and on tools to reason about their correctness and efficiency.
After a quick review of basic algorithmic design paradigms and the notion
of NPcompleteness, we will spend most of the course on approximating
NPhard optimization problems. We will also discuss techniques for
exact and heuristic solutions to such problems.
The material we cover will bring you close to the frontier of current
research in algorithms. Time permitting, we may cover elements of
algorithmic game theory, a new hot topic in the algorithms community.
Text
There is no required text.
Lecture notes will be made available from the course web page.
Prerequisites
CS 577 (Introduction to Algorithms) and, by transitivity,
CS 367 (Data Structures) and CS 240 (Discrete Mathematics).
If you have never taken an algorithms course before and haven't
otherwise mastered
that material
either, I recommend you take CS 577 instead.
Course Work
 Scribes (20%).
Write lecture notes for about 3 lectures in groups of 2. Someone who
missed the class should be able to learn the material from the notes.
We expect a draft within 24 hours after the lecture, and the final version
a week later. You need to type your notes in LaTeX using the
guidelines we provide.
 Homework (80%).
There will be 4 assignments. Expect the problems to be challenging so
start early. You are allowed to discuss the problems in group but you
should write out the solutions on your own and give credit to your
collaborators. The last homework will be assigned during the last week
of the semester.
References
The following books are on reserve in Wendt library (3day loan):

Vazirani, Approximation Algorithms,
QA76.9 A43 V39 2003.

Hochbaum, Approximation Algorithms for NPhard Problems,
T57.7 A68 1997.

Motwani and Raghavan, Randomized Algorithms,
QA274 M68 1995.
In case you need to refresh some of the material of CS 577, the following
reference is also on reserve (2hour loan):
 Cormen, Leiserson, Rivest, and Stein,
Introduction to Algorithms,
QA76.6 C662 2001.
