Readings

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] 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] 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] Flanagan, David. Java® in a Nutshell. Sebastopol, CA: O'Reilly, 2005. ISBN: 0596007736.


LEC # TOPICS READINGS
1 Principles of Autonomy and Decision Making AIMA. Chapters 1 and 2.
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
3 Formulating Problem Solving as State Space Search

Optional Lecture: More Fun with Java®
AIMA. Chapter 3.
4 Problem Solving with Java® JINS. Chapters 1-3 and 5 (cont.)

AIMA. Chapter 3 (cont.)
5 Asymptotic Analysis of Uninformed Search Methods AIMA. Chapter 3 (cont.)
6 Global Path-Planning via Optimal Search and Shortest Paths AIMA. Chapter 4.
7 Roadmaps and Adversarial Games AIMA. Chapter 25, (except section 25.3)
8 Solving Linear Programs using Simplex IOR. Chapter 3.
9 Kinodymanic Path-Planning using Linear Programs IOR. Chapters 4 and 5.
10 Formulating Visual Interpretation using Constraint Programming AIMA. Chapter 24, (except section 2)

AIMA. Chapter 5.

Handout (PDF)
11 Solving Constraint Programs using Inference and Search AIMA. Chapter 5 (cont.)
12 Activity Planning and Plan Graphs AIMA. Chapter 11.
13 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
14 Planning and Execution in a Changing World AIMA. Chapter 13.
15 Modelling using Propositional Logic AIMA. Chapter 14.
16 Propositional Satisfiability AIMA. Chapter 25, section 3.

AIMA. Chapter 15, (except section 5)
17 Entailment and Inference in Propositional Logic AIMA. Chapter 6.
18 Model-Based Diagnosis and Conflict-directed Search AIMA. Chapter 6 (cont.)
19 Introduction to Probabilistic Reasoning
20 Probabilistic State Estimation and Robot Localization IOR. Chapter 13.
21 Formulating Utility-based Agents using Markov Decision Processes IOR. Chapter 3 (cont.)
22 16.413 Student Project Presentations AIMA. Chapter 17, (except section 5)

AIMA. Chapter 21.
23 Learning from Observations through Inductive Methods AIMA. Chapter 18.
24 Learning from Observations through Statistical Methods
25 Making Decisions through Finite Domain Constraint Optimization AIMA. Chapter 20.
26 Final Exam Review
Final Exam