Advanced Algorithms :: CS 356T :: Spring 2009


announcements :: acknowledgement

Contact Information

Professor: Brent Heeringa
Email: heeringa [at] cs [dot] williams [dot] edu
Office: Thompson Chemistry Laboratory 306
Phone: 413.597.4711

Course Information

Course Classroom: Thompson Chemistry 206
Office Hours: Monday evenings from 20.00-22.00

Course Description

From the course catalog:

This course explores advances in algorithm design, algorithm analysis and data structures. The primary focus is on randomized and approximation algorithms, randomized and advanced data structures, and algorithmic complexity. Topics include combinatorial algorithms for cut, packing, and covering problems, linear programming algorithms, approximation schemes, hardness of approximation, random search trees, and hashing.

Course Grading

Let's keep it simple. There are 11 tutorial meetings. I'll grade the work you present at each meeting on completeness, clarity, and comprehension. Your course grade will be the average of your weekly grades.

Course Expectations

Each week there will be a handout containing a topic accompanied by readings, questions, and problems.

Readings and written responses to questions should be finished and exchanged with your tutorial partner at least 2-3 days before the tutorial meeting. You should critique your partner's responses and be prepared to present both your written solutions and critiques during the tutorial meeting. Additionally, you and your partner should be prepared to present solutions to the problems on the board.

Week 1: The Predecessor Problem and Treaps

Week 2: The Predecessor Problem and van Emde Boas Trees

The following handouts are required reading: You might also be interested in reading (but are certainly not required to read) the original van Emde Boas tree paper

Week 3: Linear and Integer Programming, Primal-Dual, LP-Relaxations

The following handouts are required reading:

Week 4: Polynomial Time Approximation Schemes

The following handouts are required reading:

Week 5: A PTAS for TSP

The following handouts are required reading: I also recommend Finally, you may also want to read the documentation for TSPLIB.

Week 6: Serious Dynamic Programming

The following handouts are required reading:

Week 7: Matchings

Week 8: k-center selection

Week 9: Steiner Trees

Week 10: Introduction to the PCP Theorem

Week 11: Bloom Filters

Week 12: Suffix Trees

Course Links and Ephemera

Acknowledgement

The development of this course was generously sponsored in part by