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
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.
All office, phone and schedule information will be maintained in my
web page http://www.gustavus.edu/~wolfe. 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 http://www.gustavus.edu/~wolfe/385/.
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.
ANSI Common Lisp (1995) and
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
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.
- You come to class each day prepared to discuss the days reading.
- You complete each day's daily reading assignment form.
- You regularly have specific questions or issues related to the
reading or to Artificial Intelligence issues in the news.
- You enrich the course by informing the class of specific
resource(s) you find interesting and educational: Articles, software,
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
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
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
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.
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
- Introduction, Lisp, Chapters 1 and 2
- Search, Ch 3
- Informed search, Ch 4
- Game playing and Alpha-beta, Ch 5
- Knowledge representing and first-order logic, Ch 6, 7
- Inference in First-Order Logic, Ch 9
- Planning, Ch 11
- Planning and Acting, Ch 13
- Uncertainty, an overview of probability, Ch 14
- Probabilistic Reasoning Systems, Ch 15
- Learning from Observations, Ch 18
- Learning in Neural and Belief Networks, Ch 19
- If there's time: Agents that Communicate, Ch 22
- If there's time: Perception, Ch 24
- Conclusions: Ch 26, 27
- Omitted: Natural Language, Robotics