The Pac-Man Projects

Summary The Pac-Man projects apply an array of AI techniques to playing Pac-Man. Please see our project overview for a full description.
Topics Uninformed search, informed search, search heuristics, multi-agent search, evaluation functions, Markov decision processes, reinforcement learning, Bayes nets, hidden Markov models, exact probabilistic inference, and sampling.
Audience Introduction to AI
Difficulty This package contains four assignments, each of which require between 10 and 20 hours to complete. The questions range in difficulty. This package also contains a Python tutorial, which can be completed in an hour, and an open-ended contest.
Strengths We designed these projects with three goals in mind. The projects allow students to visualize the results of the techniques they implement. They also contain code examples and clear directions, but do not force students to wade through undue amounts of scaffolding. Finally, Pac-Man provides a challenging problem environment that demands creative solutions; real-world AI problems are challenging, and Pac-Man is too.
Weaknesses The first project is always a challenge for students learning Python, because it includes substantial technical content in a new programming language. For this reason, these projects are best used as a series to amortize the start-up cost of learning Python and the Pac-Man framework.
Dependencies Python 2.5
Variants We have added and removed questions from these assignment each semesters. While we believe that the current set of questions provides students with a smooth and engaging experience, the Pac-Man framework allows enormous flexibility to add new questions and challenges.
Please continue to the project overview, which links to the component projects.