o

CS 231: Topics in Combinatorial Algorithms

Subhash Suri
TT 11:00-12:50
Room: Phelps 1401

o

Administrative Stuff

Course Description

Algorithmic thinking is at the heart of computer science. Whether we are concerned with sending messages in the Internet, understanding the structure of a social network, designing autonomous robots, measuring reliability of complex systems, or auctioning the wireless spectrum, the underlying core problem is often an algorithmic one. The problems, however, rarely come as cleanly packaged, mathematically precise questions, and so the algorithmic enterprise necessarily consists of first getting to the mathematical core of a problem, and then identifying the appropriate algorithm design technique.

The goal of this course is to expose students to this process using a variety of topics and techniques. The general theme of the course is combinatorial algorithms, which can be described loosely as those dealing with discrete structures such as graphs and networks. The course is structured around a loosely related set of techniques and topics that I consider both fundamental and great examples of theoretical elegance.

Schedule

Homework Assignments

1. Homework #1. Due 10/7/10.
2. Homework #2. Due 10/21/10.
3. Homework #3. Due 11/9/10.
4. Homework #4. Due 12/2/10.

Syllabus

Shortest Paths Lecture Notes.
Min Spanning Trees Lecture Notes.
Matching Lecture Notes.
Network Flows Lecture Notes.
The Probabistic Method Lecture Notes.
Linear and Integer Programming Lecture Notes.

Schedule