COMPUTER SCIENCE 431
INTRODUCTION TO ARTIFICIAL INTELLIGENCE
(AKA Computational Intelligence)
Document Change History
- Initial Submission 8/25/04
Quick links to this site:
Administrivia
Meeting times:
- 3:00 - 3:50 MWF
- 2:30 - 3:20 Tuesday
- Please note: We will not use the Tuesday meeting times in this class for several weeks. When we do start using it, it will be for lab days and software demonstrations.
Please do not schedule any other activities in this
period as we may need to use it unexpectedly.
- All non-lab sessions meet in Thompson 309
Final Exam
- The final exam for this class is scheduled for Noon, Friday, Dec. 17. It will be a two-hour, mandatory in-class
exam.
Textbooks
- Required:
- Russell, Stuart, and Norvig, Peter, Artificial
Intelligence: A Modern Approach (Second Edition, Prentice-Hall,
2003).
- I intend to cover chapters 1 - 9, with some additional material from other chapters, handouts, and papers.
- In addition, we will look at (on-line) documentation for CLIPS, and
have the opportunity to read several papers.
- Recommended: Any book on Common Lisp. One of my favorites is Graham, Paul: ANSI Common
Lisp . I will give you the basics in lecture, and the book
on Common Lisp by Guy Steele is available on the web
here.
I intend the lectures to be self-contained.
- Generally, we should expect to spend most of
our time talking about the basics (LISP, Prolog, representation,
state spaces, operators, search, problem solving, planning,
language, and philosophical issues), with a chunk of our time on
expert systems, and another chunk on some other approaches (neural
networks, genetic algorithms). My expectation is that by the end
of the term you will understand the basic techniques of AI and
have some additional experience with a number of approaches. There
will be a lot of programming involved (in Lisp, Prolog, and
perhaps C, C++, or Java), and a lot of work you will need to
undertake on your own.
Instructor
- Bob Matthews (email matthews@ups.edu)
- Thompson 321B (*New Office!*)
- Extension 3561
Office hours (tentative)
- 2:00 - 2:50 AM MWF
- Or by appointment.
Click here for my schedule.
- If you catch me at any other time, please feel free to drop
in. Messages sent via email are welcome, and can be used to ask a
question or to set up an appointment.
- Web page: go to http://www.math.ups.edu
and follow the links to my home page, or you can go directly to
http://www.math.ups.edu/faculty/matthews.html. Along with
several resources you will find useful is the home page for this
course (
this file) which will be used to store assignments, weekly
schedules (and schedules of past weeks), and copies of previous
exams.
Notes
Programming exercises will be graded on style and documentation as
well as correctness. Programs must include header documentation as
well as adequate internal documentation unless otherwise specified.
Late assignments will be accepted (with an increasing penalty) until
the graded exercise is returned to the class. All assignments turned
in must represent individual effort: work done by a committee cannot
be accepted except where a group effort is a clearly stated part of
the assignment. All students in Computer Science classes at the
University of Puget Sound are responsible for the material contained
in the document on academic honesty published by the Department of
Mathematics and Computer Science and included in the Academic
Handbook.
A minimum grade of 50% on exams and 50% on homework assignments is
a necessary (but not necessarily sufficient) condition for a passing
grade.
Finally, the last date for withdrawing from this class with an
automatic W is Monday, Sept. 27. Since we do not have an
hour exam before that date, I will assign a WP grade to any formal
withdrawals (i.e., completed using the necessary form and submitted
to the register's office) up to a week after the day that the first
hour exam is returned to the class. Of course, should you find
yourself in difficulty at any point in the semester, please make
arrangements to meet with me as quickly as possible.
Weekly Schedule:
Assignments
Exam Reviews
CLIPS Intro: A Gentle
Introduction to CLIPS
Syllabus
Introduction
Catalog Description
This course introduces the student to the techniques of artificial
intelligence using LISP or Prolog. The student is introduced to the
basic techniques of uninformed and informed (heuristic) search,
production systems, expert systems, neural networks, and to
techniques of knowledge representation and problem-solving.
Additional topics may include alpha-beta pruning in game trees,
computer models of mathematical reasoning, natural language
understanding, machine learning, and philosophical implications.
Prerequisites
CSci 261 and some form of discrete or formal mathematics.
Experience with the propositional and predicate logics is a useful
prerequisite for this course. A grade of C- is required in
prerequisite courses.
Method of Instruction
- Lectures and seminar discussions
- Demonstrations and work sessions
- Homework and exams
- Paper/project
Evaluation
Students will be evaluated on the basis of homework, exams
(including a comprehensive final), and a paper or project as
follows:
- Homework: 40% (Including programming exercises in LISP,
Prolog, and CLIPS)
- Exams: 40%. The final exam will have the weight of two hour
exams.
- Project: 20%
- Exams and homework are generally returned within a week.
- You are responsible for reading and lecture material in the
course. While I do not take roll, regular attendance is a
good idea. I will be reading the class role on a fairly
regular basis, but that is in an effort to get to know your
names. I have a terrible time with names.
You will be asked to explore one of the topics discussed in the
class in greater depth through a
significant programming project (which may include one of the AI
tools available here at UPS or on the web). This may include both
advance or additional reading. A detailed description of the
paper/project together with a schedule will be available shortly. Some possible projects might include
- Blocksworld search / problem solving
- Wumpus search / problem solving
- An expert system
- Diagnostic system
- Academic advisor
- Giarratano and Riley (1998) is a good reference
- A simple game:
- Simple checkers
- Go-moko
- 3-D tic-tac-toe
- Go or Chess are out (senior project / PhD thesis)
Basic, core material
Percentages should be taken as approximate guidelines. Topics may
not be presented in the following order.
Philosophical issues (10%)
- Descartes, Turing and Searle
- The physical symbol system hypothesis
- GOFAI ("good old-fashioned AI") vs. connectionist
AI
Language basics (10%)
Introduction to the language to be used in the course (LISP or
Prolog or both).
Searching (20%)
- State spaces and representations
- Operators
- Uninformed search
- Cost functions
- Branch and bound
- Heuristic search
- A* algorithms.
- Game playing and alpha-beta pruning.
Knowledge Representation (20%)
- Survey of knowledge representation techniques, including
- Database systems
- Isa-hierarchies
- Semantic networks,
- Frames and scripts
- Production systems
- Predicate logic.
- Procedural techniques
- Characteristics and evaluation of KR techniques
Problem solving. (20%)
- Problem solving as search
- Problem reduction
- And-or trees
- Means-ends analysis
- Rule-based expert systems
- Decision making under uncertainty
- Non-monatomic logic
- Statistical reasoning
- Inference networks
- Fuzzy logic
- Case Based Reasoning
- Control issues
- Agendas
- Forward vs. backward chaining
Neural Networks and Genetic Programming (20%)
- Perceptrons and the perceptron learning theorem
- Multilayer feed-forward neural networks and
backpropagation.
- Hopfield networks
- Genetic programming
Additional topics
In addition to the "core" topics listed above, the course should
include several of the following topics, depending on the interest of
the instructor(s) and the class:
- Robotics
- Mechanical Theorem Proving
- Game playing.
- Natural Language Understanding
- Computer Vision.
- Machine Learning.