MCS-385: Artificial Intelligence (Spring 2003)


In this course we will learn general methods for writing programs to do things which are usually thought of as human tasks, tasks such as problem solving, reasoning, learning, communicating, and decision making. During the early years of AI, the goal was to program computers to do these things as well as (or better) than humans in very general problem domains. Although AI has yet to attain this lofty goal in most domains, the field has developed powerful and general techniques for performing these tasks. We will investigate the techniques via the programming language Lisp, a predecessor of Scheme.


MCS-375 is a prerequisite for the course and MCS-265 is a corequisite. An ability to reason using first-order logic and some exposure to probability will help greatly.

Reaching me

All office, phone and schedule information will be maintained in my web page I'll try to keep it updated with any temporary changes to our schedules as well. In short, if my office door is open you are welcome; if I'm busy, we'll set up an appointment. Email and phone calls work, too.

All course handouts will be available through the course page, and some supplementary materials such as code to use as a starting point in assignments may be available there as well. The URL for this course is

Text and references

Our text for the course is Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, (1995). The text is sophisticated and as complete as an AI textbook can be these days.

Paul Graham's ANSI Common Lisp (1995) and Guy Steele's Common Lisp: the Language (2nd edition, 1990) are both fine Lisp references. The full text of Steel is on the web! I'll also leave copies in the lab.

Deliverables and grading

Regular participation is required for a passing grade. There will be about five homeworks (50%), an in-class oral presentation (20%), and a participation grade (30%). If you regularly participate and earn 90% or more of the points, you will receive an A, 85% for an A-, 80% for a B+ and down by 5 percentage points each to the lowest passing grade of 45 for a D. There is no curve, although I reserve the right to subjectively adjust your final grade.

On each day there is a reading, you will be required to submit a daily reading assignment form which describes comments and questions you have on the day's reading, as well as a class discussion proposal. It is absolutely critical for the success of the course that you do the day's readings with care and you participate in the class discussions.

For students who participate fully in course activities can expect at least 90% on the participation portion of the grade. Full participation means:

  1. You come to class each day prepared to discuss the days reading.
  2. You complete each day's daily reading assignment form.
  3. You regularly have specific questions or issues related to the reading or to Artificial Intelligence issues in the news.
  4. You enrich the course by informing the class of specific resource(s) you find interesting and educational: Articles, software, or what-have-you.
Failure to regularly participate in the class activities can, in and of itself, warrant failure in the course independent of the remainder of your grade.

Oral Presentation

Each student (or, if you prefer, pair of students) is expected to report on an operational program which uses techniques from artificial intelligence. The program could be public domain or from the private sector, but you should be sure that there is plenty of information available on the program's inner workings. If source code is available, you should look through the source code and include appropriate portions in your presentation. You should relate the techniques used by the program to other attempts in the same area. You should also emphasize the advantages and disadvantages of the approach(es) used.

The presentation should be polished and clear. You should use pre-printed overhead slides as visual aids for your talk. The talk should last from 20-30 minutes, and you should be prepared to field questions. I hope that some students will want to give their presentation early in the course so we can space the talks out over the semester.


Students are encouraged to discuss the course, including issues raised by the assignments. However, the solutions to homework assignments should be individual original work unless otherwise specified. If an assignment makes you realize you don't understand the material, ask a fellow student a question designed to improve your understanding, not one designed to get the assignment done. To do otherwise is to cheat yourself out of understanding, as well as to be intolerably dishonorable. Any cheating may lead to failure in the course and notification of the dean. This includes copying anyone else's work, deliberately facilitating copying and failing to give credit for solutions not discovered on your own. Failure to cite a source (written or verbal) on any component of the course is considered cheating.

Topics covered

I plan to closely follow the text's one semester general course suggested in the preface with the addition of Chapter 5, and omitting later chapters if we don't have enough time. You are welcome to suggest changes to the above list of topics as the course progresses.