The Department of Computer Science & Engineering

CSE 4/572
Knowledge-Based Artificial Intelligence
Spring, 2000

Lecturer;   TA;   Class Meetings and Registration Numbers;   Prerequisites;   Textbook;   Course Calendar;   Supplementary Material;   Common Lisp References;   Computer Accounts;   News Groups;   Homeworks;   Projects;   Submit Instructions;   Grading Policy;   Incompletes;   Academic Integrity.

Prof. Stuart C. Shapiro, 326 Bell Hall, 645-3180 ext. 125,,
Office Hours: TF 11:00 - 12:00, Th 9:30-10:30, & by appointment. See my schedule.

Haythem O. Ismail, 333 Bell Hall, 645-2879,,
Office Hours: M 10:00-11:00, T 9:30-10:30, W 4:00-5:00

Class Meetings:
LectureShapiroCSE472: 275794
CSE572: 277025
TTh2:00-3:20 228 NSC
Recitation R1 TA CSE472: 186763
CSE572: 213381
M 1:00-1:50102 Clemens
Recitation R2 TA CSE472: 348736
CSE572: 134783
F 2:00-2:506 Clemens
Recitation R3 TA
CSE472: 043669
CSE572: 117680
T 8:30-9:20138 Bell

CSE472: CSE202 and CSE305.
CSE572: CSE505 and knowledge of Common Lisp.

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

Course Calendar:
Dates of topics are approximate. Exam 1, covering Chapters 1-5, will be given one week after finishing Chapter 5. Exam 2, covering Chapters 6-9, will be given one week after finishing Chapter 9. The Final Exam will be comprehensive, but stress the material after Chapter 9. It will be during Exam Week.
1 1/17
MLK, Jr. Day
1/18 First Lecture
Chapter 1:

HW1 available
First Meeting of R2

2 1/24
First Meeting of R1
Chapter 2:
Intelligent Agents
HW1 assigned
Chapter 3:
Solving Problems by Searching
Project 1 assigned
Last Day to Drop
3 1/31
HW1 due
see my solution
Chapter 4:
Informed Search Methods
4 2/7
Constraint Satisfaction
HW2 assigned
Project 1 due
See my code.
Chapter 5:
Game Playing
5 2/14
HW2 due by midnight
HW2 Tournament
Project 2 assigned
Chapter 6:
Agents that Reason Logically
Exam 1: Chaps 1-5
6 2/21
Chapter 7:
First-Order Logic
7 2/28
2/29  3/2
Project 2 due
See my code.
HW3 assigned
  Spring Break
8 3/13
Project 3 assigned
Chapter 8:
Building a Knowledge Base
3/16 3/17
Last Day to Resign
9 3/20
Chapter 9:
Inference in First-Order Logic
HW3 due
See my solution
10 3/27
HW4 assigned
Chapter 10:
Logical Reasoning Systems
3/30 3/31
11 4/3
4/4Project 3 due
See my code.
HW4 due
See my solution
Project 4 assigned
Chapter 11:
12 4/10
Exam 2: Chaps. 6-9
13 4/17
Chapter 22:
Agents that Communicate
4/20 4/21
14 4/24
Chapter 26:
Philosophical Foundations
4/27 Last Lecture
Project 4 due
See my code.
Chapter 27:
AI: Present and Future
Last meeting of R2
15 5/1
Last meeting of R1
First Day of Exams
8:00-11:00 AM
Final Exam
Capen 10

Supplementary Material:
Common Lisp References:
Available on the WWW

Files on UB CSE Department Computers

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.

Computer Accounts:
Accounts on the CSE systems will be generated from class lists. In general, 200-level and above Undergraduate classes get accounts on armstrong. CSE undergraduate majors can get access to Bell 338, others should use yeager remotely. Graduate courses get accounts on hadar. CSE graduate students can get access to Bell 216, others should use pollux remotely for "Interactive" stuff and pegasus remotely for "Heavy CPU-intensive" stuff.

News Groups:
You should subscribe to, and regularly monitor either or both the news groups, sunyab.cse.472 and sunyab.cse.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. Some homeworks will be submitted, in which case instructions will be given with the homework assignment.
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
HomeworkPoint ValueAssignedDue
HW19 1/25 2/1
HW23 2/8 2/14
HW335 3/2 3/21
HW429 3/28 4/6

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, produced using a document formatting program such as Microsoft Word or LaTeX, and printed on a computer printer, on 8.5 by 11 inch paper (stapled in the upper left-hand corner, with your own title page rather than the page automatically produced by the printer), 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! You should read NimLearn: A Learning Nim Player to see an example of a such a paper. By reading that paper, you might also learn some good Common Lisp programming techniques. (You can run the nimlearn program by running ACL, and loading /projects/shapiro/AIclass/nimlearn.)

In addition to the paper, you are to submit your program to your TA, so that it can be run and checked if the TA so chooses.

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. See the Department Statement on Academic Integrity. If the work of two or more students appear unjustifyably similar, penalties will be assessed to all concerned. Any infraction may be penalized by a grade of F in the course. 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.

How to submit a file:
To submit a file named file, execute the appropriate one of the following shell scripts:
submit_cse472r1 file
submit_cse472r2 file
submit_cse572r1 file
submit_cse572r2 file

Grading Policy:
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 CSE472 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.

You should check the grade record regularly, and promptly report any discrepancy between the grades shown there and your own records of your grades to the Instructor and/or the TA.

See the general policy on Incompletes. In short, don't expect an Incomplete in this course.

Academic Integrity:
All work submitted for this course is expected to be solely that of the student submitting it. See the Department Statement on Academic Integrity. Any infraction may be penalized by a grade of F in the course.

Stuart C. Shapiro <>