Department Seal Sandia Mountains

CS 591-06 "Algorithms in the Real World"
Fall 2002


Meeting Times:

cs591-06 E-mail List:



week 1-2: "On Algorithms for Efficient Data Migration" by Joe Hall, Jason Hartline, Anna Karlin, Jared Saia and John Wilkes. Symposium on Discrete Algorithms 2001. ( ps , pdf). week 3-5: "Censorship Resistant Peer-To-Peer Content Addressable Networks" by Amos Fiat and Jared Saia. Journal of Algorithms 2002 ( ps , pdf).

Slides from Lectures:


Course Description:
In the past several years, the algorithms research community has had several major breakthroughs in designing algorithms which have both strong theoretical and strong empirical properties. For example, the very successful companies Google and Akamai were both built on provably good algorithms first described at major research conferences (WWW '96 and STOC '97 respectively). Additionally, the company Celera attributes much of its success in genome sequencing to its algorithm engineers.

In this course, we will study several algorithms which have been successful in the real world. We will learn some new algorithmic tools that have proven successful for real world problems including: ways to create approximation algorithms for NP-Hard problems, ways to exploit the power of randomness, and ways to create tractable abstract problems from messy real-world problems. We will also study some important open algorithmic problems whose solutions would have a big "real-world" impact.
Texts: There is no required text but the following texts are recommended for reference: "Approximation Algorithms for NP-Hard Problems" Edited by Dorit S. Hochbaum and "Randomized Algorithms" by Raghavan and Motwani.


Topics will include:

Text Books

There are no required text books but the following books are recommended reading material.

Tentative Grading Weights

Grading Methodology


Your hw should have the following properties, these will be the criteria used to determine your hw grade.


A significant part of this class is the class project. In this project, you will apply mathematical tools learned in this class to solve an algorithmic problem. The project must have a significant analytical component to it where you demonstrate mastery of mathematical tools learned in this class. The project should also contain an empirical component where you do empirical tests which support or complement your analytical results. The main deliverable for the class project is a paper no more than twelve pages in length (not including bibliography and appendix). This paper should be structured as a standard research paper in that it should have an abstract, an introduction, a related work section, a body (containing a section on algorithms and a separate section on analysis), and a conclusion and future work section. Your project grade will depend substantially on this paper.


A necessary prerequisite for this class is a standard undergraduate algorithms course (equivalent to our CS 461). Some basic familiarity with discrete probability is also helpful although not required.


Assignment deadlines are strict: late homework will automatically receive a grade of zero, unless reasonable cause can be shown (which is easy for one, possible for two, and very hard for three or more!); no make-up.
Collaboration is encouraged on all of the homeworks although the solutions should be written up individually unless stated otherwise. Usual university policies for withdrawals, incompletes and academic honesty.