Home Page


Tuesdays and Thursdays, 10:30-12pm
Room: Levine 315

Office Hours

  • Monday 3-4pm: Jenny Gillenwater, Levine 512
  • Wednesday 5-6pm: David Weiss, Location 612
  • Friday 12:30-1:30pm: Ben Sapp, Levine 612


This course will focus on learning AI strategies and applying them to the Google AI Challenge: Ants (beta contest website here). Each week, we will introduce a new topic and illustrate its application with an example. Homework each week will be to apply the technique to some aspect of the Ants game, and most weeks will involve competitions between student's Ants agents.


The goals of the course are to:

  • Learn how to debug and evaluate different strategic approaches to an application where no "right answer" or blueprint is given
  • Learn how to use scientific, plotting, visualization, profiling, and other packages for advanced projects in Python
  • Learn how to use source control (git) to manage and exchange code in a group
  • Teach fundamental scientific data-handling concepts such as splitting data for training and testing, avoiding overfitting, and learning how to set parameters via cross-validation
  • Teach students how to build a working AI system in a competitive environment, starting from the ground up to a finished product
  • Win this year's AI Challenge!!


All throughout the course, students will be working towards a functional Ants game-playing agent. Partway through the semester, and at the end of the class, we will pit AI agents against each other to see who has the smartest Ants. There will be cool prizes for the winners! (Your grade will not depend on winning the competition, however.) After the first competition, everyone's code will then be distributed to everyone else in the class, and each group will make a short presentation about their key aspects of their strategies. This way, we can focus on more advanced strategies in the second half of the course.