CS486/686 - Spring 2005 Introduction to Artificial Intelligence
Instructor: Pascal Poupart
Email: cs486 [at] cs [dot] student [dot] uwaterloo [dot] ca
Newsgroup: uw.cs.cs486
Office Hours: TBA (DC2514).
Lectures: Tuesday & Thursday 08:30-09:50 (RCH306) or
11:30-12:50 (MC2054)
Teaching Assistants: Laurent Charlin, Martin Talbot, David
Yeung, Fred Kroon, David Tausky
Objectives
The design of automated systems capable of accomplishing complicated
tasks
is at the heart of computer science. Abstractly, automated
systems can
be viewed as taking inputs and producing outputs towards the
realization of
some objectives. In practice, the design of systems that produce
the
best possible outputs can be quite challenging when the choice of
outputs is constrained, the consequences of
the
outputs are uncertain and/or dependent on other systems, the
information provided
by the inputs is incomplete and/or noisy, there are multiple (possibly
competing)
objectives to satisfy, the system must adapt to its environment over
time,
etc. This course provides an introduction to Artificial
Intelligence,
covering some of the fundamental topics that underly automated
reasoning. The modeling techniques that will be covered are quite
versatile and can be used to tackle a wide range of problems in many
fields including game playing (e.g., chess, poker), robotics
(e.g.,
mobile robot navigation), automated diagnosis (e.g., medical
diagnosis, fault detection), data mining (e.g., fraud detection,
information retrieval), operations research (e.g., resource allocation,
maintenance scheduling), speech recognition, etc.
Outline
The topics we will cover include:
- Introduction to Artificial Intelligence
- Search and Problem Solving
- Uninformed Search
- Informed Search
- Local Search
- Constraint Satisfaction Problems
- Adversarial Search
- Reasoning Under Uncertainty
- Probability Theory
- Bayesian Networks
- Utility Theory
- Decision Networks
- Markov Decision Processes
- Multi-agent Systems
- Machine Learning
- Inductive Learning
- Decision Trees
- Ensemble Learning
- Statistical Learning
- Neural Networks
- Reinforcement Learning
- Subareas of Artificial Intelligence
- Natural Language Processing
- Computational Vision
- Robotics
Course Organization:
The
course material will be covered primarily in lectures.
You should also read the appropriate chapters of the textbook assigned
for each lecture. When lecturing with slides, I will make my lecture
slides available
online in PDF format. These are not intended to replace your lecture
notes,
but to supplement them and help you organize them. They
will be posted within a couple of days of the lecture, after I have a
chance
to correct the inevitable typos that you will find in class :-)
There will be four assignments given in the course. Each
assignment will have a theoretical part and a programming part. The approximate out and due dates are:
- A1: out May 10, due May 26
- A2: out May 26, due June 16
- A3: out June 16, due July 7
- A4: out July 7, due July 28
Assignments are due at the beginning of class unless stated
otherwise. No late
assignment will be accepted.
Graduate students registered in CS686 are also required to do a
course
project. The project will consist of
investigating a research problem chosen by the student.
There will be a midterm test on
June 21st 8pm-9:30pm.
There will also be a final examination to be
scheduled by the registrar.
Grading Scheme
CS486:
- Assignments (4): 40% (10% each)
- Midterm test: 20%
- Final Exam: 40%
CS686 (graduate students only):
- Assignments (4): 28% (7% each)
- Project: 25%
- Midterm test: 12%
- Final Exam: 35%
Textbook
The textbook for CS486/686 is Artificial
Intelligence: A Modern Approach (2nd Edition), Prentice Hall,
by Russell and
Norvig. This will be the main
reference for the course. Readings in the textbook are assigned
for every lecture in the course schedule.