Course Description

Course Objectives

The purpose of this course is to introduce the student to the major ideas and techniques of Artificial Intelligence, as well as to develop an appreciation for the engineering issues underlying the design of intelligent computational agents. The successful student will finish the course with specific programming (Lisp) and analytical (search, logic, planning) skills, knowledge of many of the most important knowledge representation, reasoning, and a general understanding of AI principles and practice. The course will serve to prepare the student for further study of AI, as well as to inform any work involving the design of computer programs for substantial application domains.


Stuart Russell and Peter Norvig
Artificial Intelligence: A Modern Approach 2nd Ed.
Prentice-Hall, 2003
ISBN: 0-13-790395-2


You are encouraged to discuss ideas and techniques broadly with other class members, but not specific assigned problems. Sharing of code is expressly prohibited.


All programming in this course will be in Common Lisp. The supported programming environment will be Allegro CL. The T-Lab machines have Allegro CL installed. I recommend you download and install Allegro CL yourself. If you have access to other Common Lisp implementations, you are free to use them, but be warned that the course staff will not be responsible for incompatibilities or responding to questions specific to these environments.

Project code should readable and well-documented, with ample and clear test cases demonstrating the behavior of your programs. Programs should conform to good Lisp programming practice and style.

Do not leave programming to the last minute. Save your to a floppy disk or server daily. "My hard disk crashed" is not a good reason not to have something to hand in.


There will be a two quizzes and a final examination. Answers will involve either a short analysis of a problem or design of a solution (a few paragraphs) or short piece of Lisp code.


Quiz #1 15%
Quiz #2 15%
Final Exam20%
Projects 50%

Note that there are 3 projects but 50 is not divisible by 3. To resolve this conundrum, your best project will count for 20% of your grade and the other two will count for 15% each.