Course Description

Computer scientists have long been fascinated by games. Some of the earliest and most recent successes of artificial intelligence have come in the realm of game-playing. Computer science has traditionally focused on a very special subclass of games: zero-sum games of perfect information. In contrast, game theory studies how rational agents behave in much more general strategic interactions. In particular, game theory highlights the crucial role played by the information available to the players.

In this course, we will survey recent work on designing programs for game-theoretic situations. The focus will be both theoretical and practical. We will look both at computing solutions to games, and at designing good game-players when the full solutions are not available. We will also study how researchers have dealt with the challenges posed by a variety of familiar games.

Topics include



Prerequisites

The only prerequisite is the ability to program. No prior material in artificial intelligence or game theory will be assumed. However, this is a graduate course --- we will quickly be diving into new and challenging material, and you need to be comfortable studying new ideas on your own. Although this is not a theory course --- as you can see, all the homeworks involve programming --- there is a fair amount of mathematical content in the material we will study.



Requirements

The course will be based on a series of readings. For most classes we will read one technical paper in advance, and then discuss the paper during class. It is vital that you read the paper in advance so that we can have a meaningful discussion. In advance of each lecture, I would like each of you to submit a question by email on that day's readings. This will help guide the day's discussion. The question will be due at 12pm on the day of the lecture. Completing the readings, submitting the question and participating in discussions will be worth 30\% of the final grade. There will be a final project, worth 25\% of the grade. You can either do an independent project, or build a player for a challenging game to be presented towards the end of the semester. Please talk to me if you would like to do an independent project. I may suggest project ideas during the course of the semester. Projects can be done individually or in pairs; naturally, more will be expected of pairs. Under the right circumstances I might allow larger groups. There will be three homeworks, each worth 15\% of the grade. Each will involve designing a player for a game that parallels our discussions in class. Each homework will be done in two parts. In the first part you will begin to think about designing a player for the game, and in the second part you will get together with a team to build as smart a player as you can.