Introduction to Artificial Intelligence
Spring, 1996

Prof. Stuart C. Shapiro, 238 Bell Hall, 645-3180 ext. 125, shapiro@cs.buffalo.edu,
Office Hours: M 1:30 - 2:30, W 10:00 - 11:00, Th 10:30 - 11:30, & by appointment


Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, Englewood Cliffs, NJ, 1995.

Supplementary Material:
Stuart C. Shapiro, Foundations of Logic & Inference.
Stuart C. Shapiro and The SNePS Implementation Group, SNePS 2.3 User's Manual.
Stuart C. Shapiro & William J. Rapaport, A SNePS Tutorial.
Stuart C. Shapiro, Notes on Version Space.

Common Lisp References:

CS472: CS202, CS204, and CS305.
CS572: CS505 and knowledge of Common Lisp.

Class Meetings:

LectureShapiroMWF12:00-12:50 NatSci 210
Recitation R1 Goetz CS472: 289789
CS572: 102672
T 3:30-4:20NatSci 210
Recitation R2 Goetz
CS472: 144194
CS572: 308501
F 2:00-2:50NatSci 210
Recitation R3 DeAngelo CS472: 091281
CS572: 395357
M 8:00-8:50NatSci 210
Recitation R4closed CS472: 481385
CS572: 394049

Important Dates:

Monday January 22 First Lecture
Monday January 29 First meeting of R3
Tuesday January 30 First meeting of R1
Friday February 2 Last day to add or drop
Friday February 2 Homework 1 due
Friday February 16 Project 1 originally due
Monday February 19 Project 1 due
Tuesday February 20 Homework 2 due by midnight
Friday February 23 Exam 1
Friday March 8 Homework 3 due
Friday March 15 Homework 4 due
Friday March 15 Last day to withdraw with a grade of ``R''
March 18--24 Spring Break
Wednesday March 27 Project 2 due
Monday April 1 No Class - UBGCCS
Monday April 3 Exam 2
Friday April 26 Homework 5 due
Tuesday April 30 Last meeting of R1
Wednesday May 1 Project 3 due
Monday May 6 Last meeting of R3
Monday May 6 Last meeting of Lecture
Tuesday May 14 Final Exam, 3:30-6:30, Fronczak 422

Tentative Topic Schedule:

Monday January 22 Chapter 1 Introduction
Monday January 29 Chapter 2 Intelligent Agents
Friday February 2 Chapter 3 Solving Problems by Searching
Friday February 9 Chapter 4 Informed Search Methods
Friday February 16 Chapter 5 Game Playing
Monday February 19 Chapter 6 Agents that Reason Logically
Monday March 4 Chapter 7 First-Order Logic
Friday March 8 Chapter 9 Inference in First-Order Logic
Monday March 25 Chapter 10 Logical Reasoning Systems
Wednesday April 3 Chapter 11 Planning
Friday April 12 Chapter 18 Learning
Wednesday April 17 Chapter 22 Agents that Communicate
Wednesday April 24 Chapter 26 Philosophical Foundations
Wednesday May 1 Chapter 27 AI: Present and Future

You are responsible for reading the chapters in the text according to the above schedule, possibly modified by announcements in class which will be reflected in changes to this document. You are to read the material before the lecture that covers it, and you may want to reread it afterwards also. You are responsible for the material in these chapters whether or not they are covered explicitly in class, but you should feel free to ask about anything you think needs more clarification, both in lecture and in recitation.

News Groups:
You should subscribe to, and regularly monitor either or both the news groups, sunyab.cs.472 and sunyab.cs.572. You may post questions and comments there that are of general interest to the entire class.

The purposes of homework exercises are: to give you hands-on experience with relatively small problems; to give you a chance to assess the level of your understanding; to give you experience with the kinds of questions that may be asked on exams. Small programming exercises may be assigned as homework exercises. You will have between two days and two weeks to do each homework exercise. The due date will be announced when the homework is assigned. Homeworks will be assigned in lecture and via these WWW pages, and are to be turned in in the lecture, but will be returned and reviewed in recitation.
Each homework exercise will be worth some modest number of points, which will be stated when the exercise is assigned. The final homework grade will be based on the ratio of total points earned to total points possible.

Homework assignments

  • Homework 1, due Feb. 2, 1996, worth 9 points.
  • Homework 2, due midnight, Feb. 20, 1996, worth 3 points, with the possiblity of up to 3 bonus points.
  • Homework 3, due Mar. 8, 1996, worth 15 points.
  • Homework 4, due Mar. 15, 1996, worth 17 points.
  • Homework 5, due Apr. 26, 1996, worth 14 points.

The purposes of programming projects are: to give you hands-on experience building relatively small AI systems; to give you experience with various AI programming techniques; to have you experience for yourself the phenomenon that it is rather easy to write a program that acts surprisingly intelligent, but it generally also has obvious flaws, and it is very difficult getting rid of the last flaws. AI programs, by their nature, have only ill-defined goals. If we could specify the goal precisely, and have criteria for whether or not a program is correct, it wouldn't be an AI task. So don't be surprised when the project assignments are not as well-specified as you are used to.

For each project, you will be expected to hand in a paper, typed or printed from a computer file, on 8.5 by 11 inch paper (stapled in the upper left-hand corner, without sprocket holes, and with your own title page), plus a well documented listing of your program. The listing should either be presented as figures throughout the paper, or as an appendix. In either case, the listing is included as documentation for what you say in the paper. The main product of your work is the paper, not the program! In the paper, you should say what you have done, and how (in English summary, not in programming detail) you have done it. It should also include annotated examples of your program in action. These should be well chosen to illustrate the range of performance of your program. The examples should not be redundant, nor included merely because they look complicated. Each example should illustrate a particular ability of your program. Nevertheless, the reader will assume that your program does nothing interesting that isn't illustrated! In addition, you are to submit your program to your TA, so that it can be run and checked if the TA so chooses.

A sample paper is available.

You will have two to four weeks to do each project. The due date and time will be announced when the project is assigned. Because several courses are using the same computer, project due dates of the different courses must be staggered to prevent overloading. Therefore NO LATE PROJECTS WILL BE ACCEPTED.

It is perfectly acceptable to use programming ideas and even code from the published literature. However, if you do so, you must cite your sources, or be guilty of plagiarism. Similarly, while it is acceptable to discuss general approaches with your fellow students, the work you turn in must be your own. If the work of two or more students appear unjustifyably similar, penalties will be assessed to all concerned. If you have any problems doing the projects, consult the TAs or the Lecturer.

Grading: Projects will be judged by the following criteria:

Content of paper20%30%
Style of paper10%20%
Choice of demonstration examples10%20%
Correctness of program40%20%
Style of program20%10%
Total 100%100%

Projects will be given both a numeric and a letter grade.


Assigned letter grades will come from the range [F-, A+]. A+ is reserved for truly exceptional work. F- is reserved for work not handed in. Whenever a conversion from a numerical to letter grades is required, such as in grading exams, the curve will be based on the CS472 population only. At the end of the semester, final grades will be calculated as a weighted average of all letter grades according to the following weights:

Exam 1 15%
Exam 2 15%
Final Exam 35%
Total Projects 25%
Total Homeworks 10%
Total 100%

The final course grade will be the weighted average grade, truncated if necessary. For example, F- and F+ will be truncated to F, and D- will be truncated to D.

Stuart C. Shapiro <shapiro@cs.buffalo.edu>