Project "Computer Games in the Classroom"

The Department of Computer Science at the University of Southern California created a Bachelor's Program in Computer Science (Games) and a Master's Program in Computer Science (Game Development), which not only provide students with all the necessary computer science knowledge and skills for working anywhere in industry or pursuing advanced degrees but also enable them to be immediately productive in the game-development industry. They consist of regular computer science classes, game-engineering classes, game-design classes, game cross-disciplinary classes and a final game project. See Zyda and Koenig, Teaching Artificial Intelligence Playfully, Proceedings of the AAAI-08 Education Colloquium, 2008 for more information. The undergraduate and graduate versions of the ``Introduction to Artificial Intelligence'' class at the University of Southern California are regular computer science classes that are part of this curriculum. We are now slowly converting these classes to use games as a motivating topic in lectures and as the domain for projects because games motivate students, which we believe increases enrollment and retention and helps us to educate better computer scientists.

Artificial intelligence becomes more and more important for computer games, now that games use graphics libraries that produce stunning graphics and thus no longer gain much of a competitive advantage via their graphics capabilities. Many games need trajectory-planning capabilities and thus use search algorithms. Some games already use machine learning or planning algorithms. For example, ``Black and White'' uses a combination of inductive learning of decision trees and reinforcement learning with neural networks, and ``F.E.A.R'' uses goal-oriented action planning. Thus, games can be used to illustrate many areas of artificial intelligence.

It was tempting for us to use a publicly available game engine throughout the class and then ask the students to perform several projects in it, such as a search project to plan the trajectories of the game characters and a machine-learning project to make them adapt to the behavior of their opponents. However, students familiar with game development already have plenty of exposure to game engines while students not interested in game development do not need the additional overhead. To put all students on the same footing and allow them to concentrate on the material taught in class, we decided to go with several small projects that do not need large code bases.

If you are using any of our projects in your class or have any questions, comments or corrections, please send us an email at skoenig@usc.edu. We will use this webpage to release additional projects and post updates, errata and supporting material. If there is sufficient interest, we will create sample solutions for teachers at accredited colleges and universities.

The first non-USC course to adopt one of our projects was Artificial Intelligence (CS 482/682), taught by Konstantinos Bekris in Fall 2008 at the University of Nevada at Reno. Konstantinos reported that the students loved the project.

If you are interested in computer games in the classroom, you might also want to check out the GamePipe Laboratory at the University of Southern California.

Representative Overview Publications

Class Projects


Some of this material is based upon work supported by the Fund for Innovative Undergraduate Teaching at the University of Southern California.

If you have comments on any of these papers, please send me an email! Also, please send me your papers if we have common interests.

This page was automatically created by a bibliography maintenance system that was developed as part of an undergraduate research project, advised by Sven Koenig.


Research on Computer Games

Home Page of Sven Koenig