CS599: Algorithm Design in Strategic Settings (Fall 2012)

Basic information


Schedule by Week

The lecture portion of this class will consist of two main parts: Prior-free mechanism design, and Bayesian mechanism design. At the end of the course, we will dedicate a lecture or two to student presentations of recent research papers, and possibly some additional topics at the discretion of the instructor, taking into account preferences of students.

Course Description

Large-scale systems with many self-interested participants, such as the Internet, present new challenges to the algorithm designer. For example, online search providers must match search keywords to advertisers, governments the world over are faced with dividing the electromagnetic spectrum among competing companies, and cloud computing providers must schedule computational tasks efficiently in response to customer demand. The designer of such systems faces both the traditional considerations of algorithm design, such as runtime and solution quality, as well as economic considerations resulting from the participation of selfish agents in the system. Algorithm design in such environments, where the input to the algorithm is aggregated from self-interested agents with a stake in the algorithm's output, is an active research area at the interface of computer science and economics that has become known as algorithmic mechanism design. This course will serve as a survey of algorithmic mechanism design, beginning with the basics and culminating in the presentation of recent research and open problems of the field. The course content will be highly mathematical, at the level of graduate courses in algorithms. The goal of the course is to expose students to this exciting research area, and lead them to the forefront of the field where they can go on to make research contributions.


The main prerequisites for this class are mathematical maturity, as well as exposure to algorithm design and analysis at the graduate level. Specifically, knowledge of approximation algorithms and linear programming at the level of CS670, or concurrent enrollment in CS670, is highly recommended.

Requirements and Grading

Homework assignments will count for 70% of the grade. There will be 3-4 assignments, roughly 3-4 weeks apart each. The homeworks will be proof-based, and are intended to be very challenging. Collaboration and discussion among students is allowed, even encouraged, though students must write up their solutions independently. Additionally, the instructor will occasionally assign some problems to be solved in class, to aid in the understanding of the material, and to serve as a change of pace during the long lecture. These in-class problem solving sessions will count towards 10% of the grade. For the remaining 20% of the grade, students have a choice of either a take-home final or an in-class presentation of a recent research paper on a related topic. Depending on the number of students in the class, and their preferences, the instructor may cancel the final in lieu of research presentations by all students. This will be determined over the course of first few weeks of class.

Late Homework Policy: Students will be allowed one late homework, at most two days from the due date. No additional late homework will be accepted.


The two main references for the class: Algorithmic Game Theory by Nisan, Roughgarden, Tardos and Vazirani , and Approximation in Economic Design by Jason Hartline. Both are available for free online. Also, as a handy reference for basic game theory concepts, I recommend Essentials of Game Theory by Kevin Leyton-Brown and Yoav Shoham; an electronic copy is available to us online through USC libraries (you need your USC id and password). Additionally, we will refer to research papers throughout the course, which will be linked on the course homepage.