Important Note: Course Postponed
The latest offering of the course on General Game Playing is postponed. The next scheduled session will take place in the Spring of 2017.
Although the MOOC will not be running this Spring, materials will be made available on the website for the currently running Stanford version of the course. Just click on the link shown below. The materials can be found via the links at the top of the page. You should be able to access everything except the Piazza newsgroup.
About the Course
General game players are computer systems able to play strategy games based solely on formal game descriptions supplied at "runtime". (In other words, they don't know the rules until the game starts.) Unlike specialized game players, such as Deep Blue, general game players cannot rely on algorithms designed in advance for specific games; they must discover such algorithms themselves. General game playing expertise depends on intelligence on the part of the game player and not just intelligence of the programmer of the game player.
GGP is an interesting application in its own right. It is intellectually engaging and more than a little fun. But it is much more than that. It provides a theoretical framework for modeling discrete dynamic systems and for defining rationality in a way that takes into account problem representation and complexities like incompleteness of information and resource bounds. It has practical applications in areas where these features are important, e.g. in business and law. More fundamentally, it raises questions about the nature of intelligence and serves as a laboratory in which to evaluate competing approaches to artificial intelligence.
This course is an introduction to General Game Playing (GGP). Students will get an introduction to the theory of General Game Playing and will learn how to create GGP programs capable of competing against other programs and humans.
Students should be familiar with Symbolic Logic and should be able to read and understand program fragments written in a modern programming language. This background is sufficient for understanding the presentation and for configuring players to compete in competitions (using software components provided by the instructors). Students who wish to modify the standard components or who wish to build their own players also need the ability to develop programs on their own. This latter ability is desirable but not required.