Combinatorial Algorithms and Data Structures

Spring 2012

Announcements Course Staff Course Outline Reading Assessment Homeworks Notes and Handouts



Last year's site.

Course Outline

This course will focus on some of the most important modern algorithmic problems, such as clustering, and a set of beautiful techniques that have been invented to tackle them. The techniques include the use of geometry, convexity and duality, the formulation of computational tasks in terms of two person games and algorithms as two dueling subroutines. We will also explore the use of randomness in MCMC type algorithms and the use of concentration bounds in creating small core sets or sketches of input data, which can be used to quickly get a reasonable solution. We will also explore the use of these new techniques to speed up classical combinatorial optimization problems such as max-flow.


Course Staff

Umesh Vazirani (vazirani@cs.berkeley.edu)
Satish Rao (satishr@cs.berkeley.edu)
Antonio Blanca (ablanca@cs.berkeley.edu)
Anupam Prakash (anupamp@cs.berkeley.edu)

Office hours.

  • See Piazza.

  • Scheduling

    The class meets on Tuesdays and Thursdays 3:30-5:00 in Soda 310.


    The grading will be based on 5 homeworks (40 %) where collaboration, full credited, is allowed, 1 homework/midterm (25 %) where collaboration is prohibited, and a project (35 %). The project can be done in groups of 2 or 3 and should either be connecting your research to topics in this class, or digesting a topic of interest related to this class. The main output of the project is a report and a presentation to the course staff.

    Course Outline

    This course will cover material at the tougher end of an undergraduate algorithms course (in review), a bit beyond, and some that is well beyond, perhaps cresting on research oriented topics.

    Topics covered will likely include...