Artificial Intelligence

Friday, May 12: Deadline Monday, April 3: Project Friday, March 31: Exam Wednesday, March 29: AI milestones Monday, March 27: Review Friday, March 17: Logical reasoning Wednesday, March 15: Probabilistic reasoning Monday, March 13: Workday Friday, March 10: nltk Wednesday, March 8: Text classification Monday, March 6: Neural networks Friday, March 3: sklearn Wednesday, March 1: Decision trees Monday, February 27: Classification Friday, February 24: Function approximation Wednesday, February 22: Reinforcement learning Monday, February 20: Stochastic environments Wednesday, February 15: Exam Monday, February 13: Review Friday, February 10: Alpha-beta pruning Wednesday, February 8: Minimax Monday, February 6: Adversarial search Friday, February 3: Genetic algorithms Wednesday, February 1: Simulated annealing Monday, January 30: Hill-climbing Friday, January 27: Puzzle solving Wednesday, January 25: Heuristic search Monday, January 23: Simple search Friday, January 20: Framework Wednesday, January 18: Introduction
Course overview

The field of artificial intelligence seeks to reproduce human abilities in engineered artifacts, for reasons ranging from convenience to curiosity. Attempts to replicate the many facets of human intelligence have produced a wide variety of useful techniques. In this course, you will learn how programs can do things like:

The main goal of this course is to show you some sophisticated tools for solving complex problems. A secondary goal is to develop your programming skills by implementing more advanced algorithms than you may have worked with before.


CS 256. This course assumes that you are a programmer with experience using common data structures.


Artificial Intelligence: A Modern Approach, 2nd or 3rd Edition by Russell & Norvig. Some reading in this text will be required as part of each homework assignment.

Office hours

My regular office hours this semester are 12:00-2:00 Tues/Thurs. If you have other commitments during those times, we can make other arrangements as needed.


If your learning or participation in this course may be affected by a disability or any other factor, please talk to me early in the semester so that we can arrange appropriate accommodations. I will do my best to ensure that everyone can learn effectively.


Being in class will be crucial for your learning in this course. Absences will leave holes in your understanding of course concepts. If you must miss a class, you are expected to work to get caught up before the next class.


Your final grade will be a weighted average of homework (40%), exams (30%), and a project (30%). This table shows how averages translate to the 4-point scale. Please note that I set a high bar for a 4.0 and there is no such thing as extra credit.

Academic integrity

It is important to me that you conduct your work in this course with academic integrity. That means abiding by the specific policies outlined below, as well as the general guidelines in the Student Handbook. It is my responsibility to report violations of these policies to the Dean.


There will be a sequence of assignments during the first few months of the course that will require a mix of programming and written work.


There will be two exams with written problems based on the homework. Expect them to take place towards the end of February and the beginning of April.


The last month or so of the semester will be dedicated to a large project, in which you (and perhaps a partner) will choose an interesting problem to solve using AI techniques.


Things you might find useful:

We will be using Sakai for homework submission and grade tracking.