Model AI Assignments

EAAI-2019: The Ninth Symposium on Educational Advances in Artificial Intelligence

Honolulu, Hawaii, USA (collocated with AAAI-19)
January 28-29, 2019

          Sponsored by the Association for the Advancement of Artificial Intelligence

2019 Call for Assignments

Project Archive

EAAI-2019: The Ninth Symposium on Educational Advances in Artificial Intelligence, Honolulu, Hawaii, USA (collocated with AAAI-19) January 28-29, 2019
Implementing a Recommender system using MapReduce Raja Sooriamurthi Students gain hands-on experience with recommender systems, modeling the core computation in a spreadsheet, and then expressing the recommender algorithm in the MapReduce paradigm using mrjob with  the Movielens data set.
Building a Fake News Detector Michael Guerzhoy and Lisa Zhang Students use Machine Learning to classify news headlines as "real" or "fake". Students build and compare several standard classifiers. A classwide competition is held for the best fake news detector.
Using Ultimate Tic Tac Toe to Motivate AI Game Agents Paul Talaga In this assignment students extend a Tic Tac Toe program to Ultimate Tic Tac Toe and implement a different search strategy than the example code.
RISK AI Project Christopher Archibald Students design and implement agents for the board game of RISK which then compete in a class tournament for extra credit. Two preliminary assignments are also included, where students implement uniform cost search and decision trees within the context of RISK.
The Minecraft Projects Adam Summerville and Joseph Osborn A package of interesting projects in Minecraft-like domains with applications to Minecraft itself. These assignments cover a variety of AI topics from path and task planning to constraint satisfaction.
Depth First Learning: DeepStack Cinjon Resnick, Avital Oliver, Surya Bhupatiraju and Kumar Krishna Agrawal Through six sessions, students will gain understanding of how to solve 1v1 games of incomplete information by traversing the tree of concept dependencies that led to DeepStack, the successful AI poker player.
Nearest Neighbor Classification (with almost no background) Nate Derbinsky and Elena Strange This assignment engages students in basic Machine Learning concepts and implementation, including classification and similarity-based search, with minimal background knowledge.
Introduction to Python for Data Science Marion Neumann and Jonathan Chen This is a sequence of two interactive guided labs introducing the basics of Python the data science workflow using the Iris dataset.
Introducing the Data Science Workflow using Sentiment Analysis Marion Neumann and Zac Christensen This is an interactive guided lab introducing the basic data science workflow by exploring sentiment analysis. The assignment highlights data acquisition and exploration using a given dataset of movie reviews.
A Gentle Introduction to the Backpropagation Algorithm and Feedforward Networks Michael Wollowski and Oscar Youngquist Students learn about feedforward neural networks and the backpropagation algorithm by implementing a perceptron network for AND and XOR Boolean functions and, given an implementation of a feedforward network, learn digit recognition using the MNIST data set.

EAAI-2018: The Eighth Symposium on Educational Advances in Artificial Intelligence, New Orleans, Louisiana, USA (collocated with AAAI-18), February 3-4, 2018
Go for a Walk Zack Butler Real-world path planning for pedestrians. In the first part, students implement A* over a map that includes roads/paths as well as elevations. In the second part, students collect actual data through walking around the real world, and the cost model is then learned via regression techniques.
Solve a Maze via Search Nate Derbinsky A natural extension to the Pacman Project's Search assignment, this assignment involves formulating maze-solving as a search problem, image processing (via OpenCV) as a step in maze-solving, as well as guided performance/quality analysis of representational parameters.
A Module on Ethical Thinking about Autonomous Vehicles in an AI Course Heidi Furey and Fred Martin Within the context of an artificial intelligence course, students are taught to identify ethical issues within technical projects and to engage in moral problem solving with regard to such issues.
Neural Networks for Face Recognition with TensorFlow Michael Guerzhoy Students build feedforward neural networks for face recognition using TensorFlow. Students then visualize the weights of the neural networks they train. The visualization allows students to understand feedforward one-hidden layer neural networks in terms of template matching, and allows students to explore overfitting.
Understanding How Recurrent Neural Networks Model Text Michael Guerzhoy and Renjie Liao Students extend and modify existing code to generate "fake English" text from an RNN. Students explore how the RNN model is able to generate text that resembles the training text by analyzing the weights and architecture of the RNN. Optionally, students train the RNN themselves using a corpus of Shakespeare plays as the training set.
Robot Juggling Ariel Anders In this assignment students learn how to control a robot to juggle a ball by programming a velocity-controlled robot, such that it causes the ball to bounce with some desired periodic motion. Specifically, students will implement a hybrid controller that uses a mirror control law within the framework of a 2D physics simulator.
Biductive Computing: Several Variants of a Universal Paradigm Joshua Eckroth This assignment allows students to practice with logic programming and constraint programming in Prolog using a paradigm we call "biductive computing.", i.e. mixing deductive and abductive computing. This assignment includes four variants of biductive computing: database querying, planning, parsing, and probabilistic reasoning.

EAAI-2017: The Seventh Symposium on Educational Advances in Artificial Intelligence, San Francisco, California, USA (collocated with AAAI-17), February 5-6, 2017
An Introduction to Monte Carlo Techniques in AI - Part II Todd Neller Learn about Bayesian network reasoning with Gibbs Sampling, a Markov Chain Monte Carlo technique, through implementation and experimentation.
Git Planner Joshua Eckroth Students build a PDDL planning library of common tasks supported by the Git version control tool, and make use of the Fast Downward planning engine to produce plans consisting of Git actions that update a repository to a specified goal state. 
Implementing a Hidden Markov Model Toolkit Sravana Reddy To facilitate learning about the application of Hidden Markov Models (HMMs) to Natural Language Processing (NLP), these assignments break the task into modular parts, allowing customized assignment coverage.
An Introduction to Behavior-Based Robotics Joshua Ziegler, Jason Bindewald, and Gilbert Peterson Students implement a behavior-based simulated tank agent in the AutoTank environment with a reactive behavior-based architecture built using the Unified Behavior Framework (UBF).
Machine Learning for Everyone: Introduction to Classification and Clustering Thomas Way, Paula Matuszek, Lillian Cassel, Mary-Angela Papalaskari, and Carol Weiss An introduction to Classification and Clustering aimed at a beginner, non-technical student audience. Materials for hands-on exercises and pre- and post-test quizzes are included. 
Organic Pathfinding Joshua Eckroth Students develop a “human-like” pathfinding technique by specializing a generic search algorithm with custom action cost and heuristic cost functions. Students apply classical search algorithms and reflect on example organic paths to achieve “human-like” pathfinding.
Visual Servoing Ariel Anders and Sertac Karaman Students use Image Based Visual Servoing to program a mobile robot to park in front of solid color objects, with control based on input from a standard monocular camera. Students leverage open source software tools like OpenCV and ROS to implement this reactive planner.

EAAI-2016: The Sixth Symposium on Educational Advances in Artificial Intelligence, Phoenix, Arizona, USA (collocated with AAAI-16), February 13-14, 2016 
A Genetic Algorithm for Robby the Robot James Marshall Implement a genetic algorithm in Python to evolve strategies for Robby the Robot to collect empty soda cans that lie scattered around his rectangular grid world.
An Introduction to k-Means Clustering Todd Neller, Laura E. Brown Learn the practical basics of k-means clustering experientially through programming, use of common data mining tools, on-line demo apps, and observation.
Python Console-Animation Suite Lisa Torrey Apply five core AI algorithms to five classic puzzles and games within a consistent Python framework.
An Introduction to Classification: A CS2 Object-Oriented Programming Project Nate Derbinsky Develop a flexible framework for evaluating classification algorithms, "mixing and matching" any classification algorithm with any training/testing-pair evaluation dataset. 
A Simple Genetic Algorithm James Marshall Implement a basic genetic algorithm to evolve binary strings of 0s and 1s. 
Adventures with Prolog: Entering the Dungeon Lord's Lair Thomas E. Allen, Andrew A. Ward, Judy Goldsmith, and Nahom Muluneh Use Prolog to navigate a maze, avoiding or overcoming obstacles and enemies and accumulating treasure.

EAAI-2014: The Fifth Symposium on Educational Advances in Artificial Intelligence, Quebec City, Quebec, Canada (collocated with AAAI-14), July 28-29, 2014 
An Introduction to Monte Carlo Techniques in Artificial Intelligence - Part I Todd Neller Learn the strengths and weaknesses of Monte Carlo simulation and Monte Carlo reinforcement learning (RL) through game AI exercises.
Multi-Player Games: Introducing Assignments with Open-Ended Strategies in CS2 James Heliotis, Sean Strout, Ivona Bezáková Students apply data structures (arrays, lists, trees, and graphs) and algorithms to interesting and open-ended board game strategy problems.
Strimko by Resolution Bikramjit Banerjee, Daniel Thompson Develop a Strimko solver by repeated and systematic application of the resolution inference procedure.
Party Affiliation Classification from State of the Union Addresses Laura E. Brown Explore and implement Text Classification with Naive Bayes methods using the multinomial and Bernoulli models to predict US President's party affiliation from their State of the Union addresses (SOTU).
Comparing Brute-Force Searching versus the MRV Heuristic in Sudoku Puzzles  Roger L. West Compare the performances of a brute-force search and a search employing the Minimum Remaining Values (MRV) heuristic in solving Sudoku puzzles.

 EAAI-2013: The Fourth Symposium on Educational Advances in Artificial Intelligence, Bellevue, Washington, USA (collocated with AAAI-13), July 15-16, 2013  
Recreating Tesauro's TD-Gammon Devika Subramanian Tesauro's TD-Gammon is recreated, implementing TD(lambda) in neural net backgammon player.
Tsunami Warning System: A Case Study of Intelligent Agents in Action Stephanie August This case study analyzes a tsunami warning system (TWS) from the perspective of an intelligent agent, the Tsunami Activity Reporter (TWR). Students receive a description of the TWR and an overview of a warning system from the National Oceanic and Atmospheric Administration, then design an intelligent agent using the PEAS framework.
An Introduction to Counterfactual Regret Minimization Todd Neller, Marc Lanctot Learn the game-theoretic regret-based techniques that spurred a revolution in competitive computer poker.

 2012  EAAI-2012: The Third Symposium on Educational Advances in Artificial Intelligence, Toronto, Ontario, Canada (collocated with AAAI-12), July 23-24, 2012 
Vitro - A Simulation and Visualization Framework to Engage Learning: Reversi Model Assignment Exemplar Laura E. Brown, John Earnest, and Jason Hiebel The classic two-player board game Reversi (also called Othello™) will be the domain for learning and implementing adversarial search methods. Students will implement minimax and alpha-beta pruning algorithms and design evalutaion functions for this domain. A Tic Tac Toe domain is also provided for illustrating concepts in a small scale and for testing purposes.
Music Genre Classification Douglas Turnbull Students explore the engaging topic of content-based music genre classification while developing practical machine learning skills.
Solving the Dice Game Pig: an introduction to dynamic programming and value iteration Todd Neller Pig, a popular folk jeopardy dice game, serves as a fun focus problem for this introduction to dynamic programming, value iteration, and basic concepts of reinforcement learning.

 2011  EAAI-2011: The Second Symposium on Educational Advances in Artificial Intelligence, San Francisco, California (collocated with AAAI-11), August 9-10, 2011
Clue Deduction: an introduction to satisfiability reasoning Todd Neller The popular boardgame Clue (a.k.a. Cluedo) serves as a fun focus problem for this introduction to propositional knowledge representation and reasoning.
Mastermind Project Marie desJardins, Tim Oates As a final project for an introductory AI course, students work in small groups to design a scalable guessing algorithm for the game of Mastermind. There are three "challenges": a fixed-size problem, a "scalability challenge" , and a "learning challenge".
The Mario Project Matthew Taylor This assignment is appropriate for a course with a reinforcement learning component (i.e., Introductory AI or Machine Learning). In it, students are asked to implement, test, and evaluate multiple reinforcement learning algorithms within the Generalized Mario domain.

 2010  EAAI-2010: The First Symposium on Educational Advances in Artificial Intelligence, Atlanta, Georgia (collocated with AAAI-10), July 13-14, 2010
The Pacman Projects Software Package for Introductory Artificial Intelligence John DeNeroDan Klein The Pac-Man projects apply an array of AI techniques to playing Pac-Man.
A Project on Fast Trajectory Replanning for Computer Games for "Introduction to AI" Classes Sven Koenig, William Yeoh In this project, the students need to code A* and then extend it to Adaptive A*. Adaptive A* is a fast path replanning algorithm which moves game characters in initially unknown gridworlds to a given target.
Getting Set with OpenCV Zachary Dodds This assignment asks students to build a program that plays the game of Set, making use of the OpenCV library, the largest and most ubiquitous software foundation for real-time vision processing.
Rook Jumping Maze Generation Todd Neller With Rook Jumping Maze generation as the fun central challenge, students integrate techniques from uninformed search, stochastic local search, and machine learning.
Assignment on CSPs for first undergraduate AI course Giuseppe Carenini, David Poole This assignment covers most of the basic principles and techniques involved in solving constraint satisfaction problems, with applications ranging from games (sudoku) to configuration and scheduling problems.
A Project on Gesture Recognition with Neural Networks for “Introduction to Artificial Intelligence” Xiaoming Zheng, Sven Koenig In this project, the students need to understand and extend an existing implementation of the back-propagation algorithm and use it to recognize static hand gestures in images.
Introduction to Genetic Algorithms Chris Brooks In this assignment, you will work with partially-completed code for a genetic algorithm, adding crossover, selection and mutation operators.
A Project on Any-Angle Path-Planning for Computer Games for "Introduction to Artificial Intelligence Sven Koenig, Kenny Daniel, Alex Nash In this project, the students need to code A* and then extend it to Theta*. Theta* is an any-angle path-planning algorithm which plans paths for game characters in known gridworlds.

Important Dates:

  • September 1, 2018: Author AAAI website registration and abstract submission deadline
  • September 5, 2018: Author electronic assignment submission deadline
  • November 1, 2018: Author notification
  • November 14, 2018: Final assignment abstract and assignment revisions due
  • January 28-29, 2019: Symposium

What is the Model AI Assignments Session?

The Model AI Assignments Session seeks to gather and disseminate the best assignment designs of the Artificial Intelligence (AI) Education community.

One must learn by doing the thing; for though you think you know it, you have no certainty, until you try. - Sophocles

Recognizing that assignments form the core of student learning experience, we invite AI educators to submit draft assignment materials that exemplify an approach to teaching AI topics at all levels.

Submission Ideas

Consider these challenges in assignment design:

  • Intro AI audience: Submit your favorite assignment that grounds one of the core AI concepts at the introductory level (e.g. search, constraint satisfaction, knowledge representation and reasoning, planning, probabilistic reasoning, machine learning, robotics, machine vision, etc.).
  • K-12/CS1/CS2 audience: Some AI assignment experiences are designed to communicate the techniques, potentials, and challenges of the discipline.  Submit an assignment that you believe will be most likely attract the next generation of AI practitioners.
  • Emerging topics: When a new algorithm has high impact in a research area, there is a need to introduce the algorithm not only to students, but to all AI researchers as well.  The creation of initial high- quality assignments to teach such groundbreaking techniques can accelerate research advancements and keep AI material fresh at all levels.  Submit an assignment which introduces an recent new algorithm or emerging subfield.

Whether sharing the best of your time-tested assignment designs, or offering a timely new creation, please consider how your creative assignment ideas can attract and prepare the next generation of AI researchers, or accelerate the advancement of the current generation.


The Model AI Assignment Session is a part of EAAI-19: The Ninth Symposium on Educational Advances in Artificial Intelligence.  This will be held January 28-29, 2019 in conjunction with AAAI-19 in Honolulu, Hawaii, USA.

Registration: To register for EAAI-19, participants can register for AAAI-19 ( and include EAAI-19 as an additional (free) item in their registration cart. Participants may also register for EAAI alone.

Model Assignment Considerations

As with SIGCSE's Nifty Assignments, EAAI Model AI Assignments should be:

  • Adoptable - Provide materials to make the assignment easy for other instructors to adopt.  Materials might include handouts in common formats (e.g. HTML, PDF), starter source code, data files, suggestions for use, etc. 
  • Engaging - Model assignments often have a playful "fun factor" or impressive outcome.  The applications spark interest in the topic, lead to deeper understanding, and are accomplishments likely to be shared with others.
  • Flexible/Scalable - Language/platform independence, while not required, would allow more widespread use over time.  Suggestions of possible follow-on projects, further readings, or other open ends invite continued learning.  Advise for variations in assignment design can help other instructors create unique (i.e. not easily plagiarized) assignment experiences for their students.


Model Assignment submissions must be made in two parts:

Assignment submission directions: Create a directory named with your last name, a hyphen, and the name of the assignment (e.g. Dodds-SetOpenCV).  Place all of your materials in this directory, and create an index.html file.   (Our goal is to create an archive of assignments, rather than link to resources elsewhere.  We will gladly update materials in our archive as authors direct.)  In this index.html file, create a table like the one below filled in with brief information about your assignment (replace the italicized text with your own):

Summary Describe your assignment in a few sentences here.
Topics List the AI topics relevant to the assignment.
Audience Describe the intended audience (e.g. Introduction to AI, K-12, Advanced AI)
Difficulty Describe the perceived assignment difficulty and time needed for the audience to complete the assignment.
Strengths Describe the assignment strengths.
Weaknesses Describe the assignment weaknesses.
Dependencies List the necessary prerequisite topic knowledge.  Describe computing requirements, such as necessary operating system(s) and/or programming language(s), if any.
Variants In a few sentences, describe possible ways in which other instructors can vary the assignment, learn from its design, and/or encourage follow-on assignment work.

Then add links to the assignment materials in your directory (e.g.  handouts in common formats (e.g. HTML, PDF), starter source code, data files, suggestions for use, etc.).  These need not be polished for submission; a draft is sufficient. Assignments should be anonymous for blind review. (Your directory will be renamed with a number before review.)

Finally, zip the directory (e.g., and email it to Todd Neller ( with the subject line "Model Submission: " followed by the filename. (Please add "Model" to the subject line for all Model Assignments Session email.)

Abstract submission instructionsCreate a 200 word PDF abstract describing your assignment according to the AAAI author instructions.  Submit your anonymous abstract according to the paper submission instructions on the EAAI site via the EAAI EasyChair submission site.  Accepted submission abstracts will be included in an extended abstract of the Model AI Assignments Session.