Brief Course Description

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

  1. Search
    • uninformed search
    • informed search
    • adversarial search
    • constraint satisfaction
  2. Decision making under uncertainty
    • Markov Decision Processes
    • Reinforcement Learning
  3. Bayes Networks
    • Probability
    • Bayes Networks
    • Hidden Markov Models
  4. Machine learning
    • Logistic Regression
    • Neural Networks

The course schedule is subject to change. See the schedule tab above.

Textbook

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

Prerequisites

  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

Primary Instructor: Robert Platt ( r [dot] platt [at] neu [dot] edu )
Office hours: Thursdays, 4:30-5:45pm, 208B West Village H, or by Appt.

TA: Matt Corsaro (programming assignments), corsam@ccs.neu.edu
Office hours: Mondays 10:30am to noon, 208 West Village H

TA: Bharat Vaidhyanathan (problem sets and programming assignments), vaidhyanathan.b@husky.neu.edu
Office hours: Tuesdays 2:00pm to 3:30pm, 208 West Village H

Announcements

Our Piazza page is here.

Work Load

Required course work for CS5100 is:

  • 4 Programming assignments (35% of your grade)
  • Approximately weekly problem sets (25% of your grade)
  • 1 Midterm 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 (denero@cs.berkeley.edu) and Dan Klein (klein@cs.berkeley.edu). For more info, see http://inst.eecs.berkeley.edu/~cs188/pacman/home.html. Used with permission.) There will be four 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 or in pairs, to complete an in-class problem set during the last hour of each class period (between 8 and 9pm). The TAs and I will be available to help you with the problem set during class. If you are still working on the problem set at the end of the class period, you may take it home, complete it, and submit it at the benning of the next class period.

Final project

The final project assignment can be found here. The final project can be on any topic related to AI. Students will work alone or in groups of two. There will be one or two ``default'' projects that you are free to choose if you don't want to propose a novel project. 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.

How to turn in the programming assignments

We're using git. You should follow the instructions outlined here.