Brief Course Description

This course will introduce the student to the fundamentals of artificial intelligence including the following topics:

  1. Search
    • Classical search
    • Adversarial search
    • Constraint satisfaction
  2. Decision making under uncertainty
    • Probability refresher
    • Markov Decision Processes
    • Reinforcement Learning
  3. Graphical Models
    • Bayes Networks
    • Hidden Markov Models
  4. Machine learning
    • Logistic Regression
    • Support vector machines
    • Neural nets
    • Clustering, expectation maximization
The course schedule is subject to change. See the schedule link above.


Artificial Intelligence: A Modern Approach, 3rd Ed., Russell and Norvig


  1. All programming assignments must be completed in Python. You must be willing to learn Python in order to do these assignments.
  2. The course will require you to use basic probability and linear algebra. If you do not have this background, you must be willing to learn it as we go.

Academic Integrity

Cheating and other acts of academic dishonesty will be referred to OSCCR (office of student conduct and conflict resolution) and the College of Computer Science. See this link.

Lateness Policy

Late programming assignments will be penalized by 10% for each day late. For example, if you turned in a perfect programming assignment two days late, you would receive an 80% instead of 100%.

Instruction Staff

Instructor: Chris Amato ( c [dot] amato [at] neu [dot] edu )
Office hours: Tuesday 11-12am, 442 West Village H, or by Appt.

TA: Shabbir Hussain, (hussain [dot] sh [at] husky [dot] neu [dot] edu)
Office hours: Monday 10-11am, 462 West Village H

TA: Matt Corsaro, (corsaro [dot] m [at] husky [dot] neu [dot] edu)
Office hours: Wednesday 10-11am, 462 West Village H


See the Piazza page for updates, handouts and announcements.

Work Load

Required course work for CS5100 is:

  • 5 Programming assignments (40% of your grade)
  • In class problem sets (20% of your grade)
  • 1 Final exam (20% of your grade)
  • 1 Final project (20% of your grade)

Programming assignments

We will use the Pacman AI projects developed at UC Berkeley. (John DeNero ( and Dan Klein ( For more info, see Used with permission.) There will be five programming assignments. All programming assignments must be completed using Python and are due at midnight on the day indicated on the schedule.

In-class problem sets.

You will work alone, in pairs, or in groups of three to complete an in-class problem set during the last 1-1.5 hours of each class period. The TAs and I will be available to help you with the problem set.

Final project

The final project can be on any topic related to AI. Many people choose to work on a project applying a method studied in the class to some practical problem. The amount of project work should be equivalent to approximately two programming assignments. If they want, students my work in pairs. See schedule for due dates.