This is an archived course. A more recent version may be available at

Archived Versions


The following is a list of the readings that supplement the lectures. Please read the assigned readings, listed below, before the corresponding lecture is given. Note that the lectures contain material not covered in the texts, and vice-versa. Students are responsible for all materials provided in the lecture notes, and all assigned readings.

The focus of this course is on the design and analysis of methods for reasoning and decision making. The primary, required textbook is:

[AIMA] Amazon logo Russell, Stuart, and Peter Norvig. Artificial Intelligence: A Modern Approach. 2nd ed. Upper Saddle River, NJ: Prentice Hall/Pearson Education, 2003. ISBN: 0137903952.
This text covers most major reasoning, decision making and learning methods presented in the course.

In addition, our optional, recommended text is:

[IOR] Amazon logo Hillier, Frederick S., and Gerald J. Lieberman. Introduction to Operations Research. 8th ed. Boston, MA: McGraw-Hill Higher Education, 2005. ISBN: 0072527447.
This text will only be used to cover the topics of integer and linear programming. However, it offers a good comprehensive text for those who would like to delve further into operations research.

Programming assignments and the course projects will be implemented in the Java® programming language. Java® is a strongly typed language with a syntax similar to C++ and Ada, but simplifies the programming process by offering automatic memory management, and greater machine portability. This is not a programming course; we expect students to have a programming proficiency where they are able to learn programming on their own. As a good basic Java® reference we recommend:

[JINS] Amazon logo Flanagan, David. Java® in a Nutshell. Sebastopol, CA: O'Reilly, 2005. ISBN: 0596007736.



Principles of Autonomy and Decision Making

AIMA. Chapters 1 and 2.


A Very Brief Introduction to Java®

JINS. Chapters 1-3 and 5.

Java® Jumpstart (PDF)

Friendly Little Hint About Junit (PDF)

Sun Java® Tutorials

Sun Java® Developer Kit (SDK)

Eclipse Integrated Development Environment

Junit Automated Testing System

Java® Application Programmer Library References


Formulating Problem Solving as State Space Search

Optional Lecture: More Fun with Java®

AIMA. Chapter 3.


Problem Solving with Java®

JINS. Chapters 1-3 and 5 (cont.)

AIMA. Chapter 3 (cont.)


Asymptotic Analysis of Uninformed Search Methods

AIMA. Chapter 3 (cont.)


Global Path-Planning via Optimal Search and Shortest Paths

AIMA. Chapter 4.


Roadmaps and Adversarial Games

AIMA. Chapter 25, (except section 25.3)


Solving Linear Programs using Simplex

IOR. Chapter 3.


Kinodymanic Path-Planning using Linear Programs

IOR. Chapters 4 and 5.


Formulating Visual Interpretation using Constraint Programming

AIMA. Chapter 24, (except section 2)

AIMA. Chapter 5.

Handout (PDF)


Solving Constraint Programs using Inference and Search

AIMA. Chapter 5 (cont.)


Activity Planning and Plan Graphs

AIMA. Chapter 11.


Plan Extraction in Graph Plan

AIMA. Chapter 12.

Blum, Avrim L., and Merrick L. Furst. "Fast Planning Through Planning Graph Analysis." Artificial Intelligence 90 (1997): 281-300.


Mid-term Examination



Planning and Execution in a Changing World

AIMA. Chapter 13.


Modelling using Propositional Logic

AIMA. Chapter 14.


Propositional Satisfiability

AIMA. Chapter 25, section 3.

AIMA. Chapter 15, (except section 5)


Entailment and Inference in Propositional Logic

AIMA. Chapter 6.


Model-Based Diagnosis and Conflict-directed Search

AIMA. Chapter 6 (cont.)


Introduction to Probabilistic Reasoning



Probabilistic State Estimation and Robot Localization

IOR. Chapter 13.


Formulating Utility-based Agents using Markov Decision Processes

IOR. Chapter 3 (cont.)


16.413 Student Project Presentations

AIMA. Chapter 17, (except section 5)

AIMA. Chapter 21.


Learning from Observations through Inductive Methods

AIMA. Chapter 18.


Learning from Observations through Statistical Methods



Making Decisions through Finite Domain Constraint Optimization

AIMA. Chapter 20.


Final Exam Review


Final Exam