Extra copies of handouts will be kept in 303 Upson, and
on the racks outside.
We will post some of the handouts to the course home page.
Review Questions for Final Exam on May 12.
Books
For the first time this semester, we will be using a
draft of a book by Jon Kleinberg and Eva Tardos, which
we developed while teaching last year's version of CS 482.
It is available at the Campus Store.
Although the book is organized around the structure of
the course, we will still cover things in lecture that
are not written down there; there are also things in the book
that we will not cover.
The content of the lectures forms the material that
you are responsible for knowing in the course.
An optional book for the course, which has a lot of
material, is
- T. Cormen, C. Leiserson, R. Rivest. Introduction to Algorithms.
McGraw-Hill, 1990.
It is on reserve in the Engineering Library.
Other useful books, also on reserve in the Engineering Library, are
- A. Aho, J. Hopcroft, J. Ullman. The Design and Analysis of
Computer Algorithms. Addison-Wesley, 1974.
- G. Brassard, P. Bratley. Fundamentals of Algorithmics.
Prentice-Hall, 1996.
- M. Garey and D. Johnson. Computers and Intractability:
A Guide to the Theory of NP-Completeness. W.H. Freeman, 1979.
- D. Kozen. The Design and Analysis of Algorithms.
Springer-Verlag, 1992.
Prerequisites
The official prerequisites for the course are CS 280 and 381/481.
- We will assume that everyone has seen the material in
CS 211/212 and 280,
and we will use it as necessary in 482.
This includes elementary data structures, sorting,
and basic terminology involving graphs
(including the concepts of depth-first search and breadth-first search).
- From 381/481, we mainly expect you to be familiar
with the Turing machine model.
- The lectures and homework will involve the analysis of
algorithms at a fairly mathematical level.
We expect everyone to be comfortable with reading and writing
mathematical proofs, at the level of CS 280 and 381/481.
Prelims and Final
- Prelim 1: Thursday, February 24th at 7:30 pm.
- Prelim 2: Tuesday, April 11th at 7:30 pm.
- Final: Friday, May 12th, 3-5:30 pm.
Homework
There will be weekly homework sets, generally due on Fridays.
Homework should be handed in in lecture, at the end of class,
on the day it is due.
- Late homeworks will not receive credit.
(If a genuine emergency situation prevents you from handing
in an assignment on time, come talk to one of us and we can work
something out.)
- Most homework will consist of written questions asking
you to design algorithms for various problems.
(There will not be any programming assignments.)
A complete answer consists of a clear description of an algorithm
(an English description is fine), followed by an analysis
of its running time and a proof that it works correctly.
You should try to make your algorithms as efficient as possible.
Academic Integrity
You are expected to maintain the utmost level of
academic integrity in the course.
Any violation of the code of academic integrity
will be penalized severely.
You are allowed to collaborate on the homework to the extent of
formulating ideas as a group.
However, you must write up the solutions to each problem set completely on
your own.
You must also list the names of everyone that you discussed
the problem set with.