- COURSE OBJECTIVES:
- The goal of the subfield of Artificial Intelligence is to build
software systems that behave "intelligently". By this, we mean that
the computer systems "do the right thing" in complex
environments--that they act optimally given the limited information
and computational resources available. This course provides an
introduction to artificial intelligence with an emphasis on the
programming techniques and skills needed to develop high-performance
AI systems.
The course will focus on the design of intelligent agents. An
intelligent agent is a software system that can interact with an
external environment by perceiving that environment and taking actions
to change the environment.
- TEXTS (required):
- Stuart
Russell & Peter Norvig, Artificial Intelligence: A Modern
Approach, Prentice Hall, 1995, and on-line handouts
- INSTRUCTOR:
- Eric Chown, 207 Adams Hall
Email address: echown@bowdoin.edu
Web
address: http://www.bowdoin.edu/~echown
Office Hours: M,2:30-3:50, T,TH 2:30-3:30, or by arrangement
- MEETING TIMES:
- Class meeting: MW 1:00-2:25 - Searles 223
- SLIDES
- Most slides used in the course come from the
AIMA
website.
- COURSE OUTLINE:
Week of
Topics
Readings
Work Due
Sep 4
Introduction, Intelligent Agents
Chapter 1, 2
Sep 18
Informed Search
Chapter 4
Oct 2
Reinforcement Learning
Chapter 20
Program 2
Oct 23
Knowledge Representation and Logic - Continued
Chapter 7
Exam 1
Nov 1
Knowledge and Logic
Chapters 7, 9
Nov 6
Making Simple Decisions
Chapter 16
Nov 13
Learning from Observations
Chapter 18
Robots
Nov 20
Neural Networks
Chapter 19
Nov 27
Neural Networks (Continued)
Chapter 19
- WORK FOR THE COURSE:
The work for this course includes class
participation, readings, two tests, several programming assignments,
and assorted homeworks.
- EXPECTATIONS:
This is a 300-level computer science course oriented towards
programming. It is my expectation that everyone taking the course
will be comfortable writing and modifying significant programs.
The bulk of the homework for the course will involve working with
programs. You cannot pass this course without completing all of
the programs. Further, you cannot expect that I will provide
help debugging and fixing code. Everytime I (or any other cs
faculty) provide help debugging or helping with code you will
lose points on that assignment. On the other hand I am more
than happy to provide significant conceptual help on any assignment.
Think of this like an English class where the professor will give
you help with content and structure, but not grammer and spelling.
Assignment lengths will be tailored based upon my expectation of
a reasonable amount of work necessary to complete a program.
For example, if I give you two weeks to complete a program I
would reasonably expect you to spend as much as 20 hours on
that program (though your actual time may be significantly less).
Again, that period of time is based upon the expectation that
you are a competent programmer, if you are not programs may
take significantly longer.
Each student is responsible for his/her own work. Collaboration on
homework assignments should be limited to answering questions that can be
asked and answered without using any written medium (e.g., no pencils,
pens, or email). This means that no student should read any code
written by another student unless they are in the same group on
a group project.
- GRADING:
From the Bowdoin catalogue: "Course grades are defined as
follows: A, the student has mastered the material of the
course and has demonstrated exceptional critical skills and
originality." The material of the course consists of homework
assignments, class participation and exams. A "master" of
this material is a student who successfully completes all of
the homework assignments (and notably shows creativity in
doing so), is an active and productive participant in classroom
discussion (and does not miss class, nor show up late), and
shows a thorough understanding of artificial intelligence on
the exams.
Any competent computer scientist should be able to pick up
your programs and quickly understand them. Your programs should not
merely complete the assignment, they must be well documented,
cogently written, and robust. My standard for this class will be
to assume that you are writing these programs for an AI company
and that other people in the company will be using and modifying
your code. Writeups should be taken as seriously as a paper
for an English or History class.
I take it as a given that you will be in class on time every
day. Not achieving this basic level of performance will
reduce your grade in the course. Further, good students will
actively participate in class discussions.
There will be two exams in the course. Details will be given
as they draw near.