Computer Science 6820
Analysis of Algorithms
Cornell University, Fall 2008
Staff and Office Hours
Office hours: Wed. 3:30-4:30, Thurs. 11-12
Office hours: Tues. 1:25-2:30
- The Design and Analysis of Algorithms by Dexter Kozen. (Required)
- Algorithm Design by Jon Kleinberg and Eva Tardos. (Recommended)
- The following are also useful references.
- T. Cormen, C. Leiserson, R. Rivest. Introduction to Algorithms.
- A. Aho, J. Hopcroft, J. Ullman. The Design and Analysis of
- M. Garey and D. Johnson. Computers and Intractability .
- D. Kozen. The Design and Analysis of Algorithms.
The official prerequisites for the course are CS 482 or graduate standing.
We will assume knowledge of:
Homework and Exams
discrete mathematical structures, including
graphs, trees, DAGs
basic data structures such as lists, trees,
heaps, sorting and searching
asymptotic complexity, O( ) and o( ) notation, solving recurrences
machine models and general computability
algebra: matrices and polynomials over the
integers, the real and complex numbers,
and the integers mod p.
probability: sample spaces, random variables,
expectation and variance, independence,
conditional probability and expectation.
- There will be problem sets roughly every two weeks. The problem
sets will generally be handed out on a Friday and will be
due the following Friday. Students will turn in the homework
- There will be an in-class midterm and a take-home final.
- The date of the in-class midterm is TBA. The take-home
final will be due on the last day of class.
- Your course grade will be based on the homework and exams.
Weighting will be roughly as follows:
- 40% homework
- 25% midterm
- 35% final exam
- Grading Criteria: For the most part, you will be asked 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. Compared to CS 482, the grading
in CS 6820 places greater emphasis on writing correct and complete proofs.
- CMS: We are using the CS course management system at http://cms.csuglab.cornell.edu/
to manage course grades. Please check your grades regularly to make sure
we are recording things properly. The system also provides some grading
- Regrade Policy: Regrade requests must be made within one week of
the time that homework or exams are returned to the class.
- Regrade Process: If you believe your solution to a question was
correct and it was marked incorrect then you should write up an explanation
of the grading error, attach it to your homework, and bring it to the TA.
Alternately, you can leave the homework and written
explanation with the instructor. Note that we're talking here about correct
algorithms that were treated as incorrect; in general, we will not look at
regrade requests that are simply arguing about the amount of partial credit
assigned. Regrade requests will be handled periodically in batch mode rather
Basic Course Data
- Any violation of academic integrity will be severely penalized. You are
allowed to collaborate on the homework to the extent of formulating ideas as
a group. However, you are expected to write up (and understand) the homework
on your own.
- Cornell's Code of Academic Integrity: http://www.cuinfo.cornell.edu/Academic/AIC.html
- Time and Place: Monday, Wednesday, and Friday, 2:30 to 3:20 in Hollister 306
Course Description (from the Catalog):
Methodology for developing and analyzing efficient algorithms.
Understanding the inherent complexity of natural problems via
polynomial-time algorithms, advanced data structures, randomized
algorithms, approximation algorithms, and NP-completeness. Additional
topics may include algebraic and number theoretic algorithms, circuit
lower bounds, online algorithms, or algorithmic game theory.