o

CS 231: Topics in Combinatorial Algorithms

Subhash Suri
MW 1:00-3:00
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, both through lectures and self-directed study of research papers. 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.

The following is a tentative list of topics for the course. I will lecture on about half of them, and the students will be asked to choose and present research papers on the remaining.

Syllabus

Internet connectivity and the Small World Phenomena
Theory of Network Flows
Probing and Monitoring of Networks
Economics and Computer Science
Search Complexity in Graphs and Geometry
Shortest Paths and other Fundamental Problems in Graphs
Misc Applications and Complexity

Paper Presentation Schedule

Prerequisites

Workload and Grading

Lecture Notes

The list of papers from which you must choose to present is available here Reading List.