This course will introduce students to Artificial Intelligence (AI),
beginning from historical and philosophical perspectives, progressing
through a number of core topics from classical AI, and then dealing
extensively with various areas of machine learning. The latter topic
will emphasize connectionist architectures (artificial neural
networks) and evolutionary computing approaches.
What will I learn?
Is this course for me?
What's the workload like?
What does the administration think about this?
What's the text book?
How is my grade determined?
What's the policy on late work?
Where's that line about academic integrity?
This course will provide you with an understanding of a range of
applications to which artificial intelligence can be applied and the
ability to choose appropriate AI techniques for each. You will be
able to describe key characteristics of different agent architectures
and machine learning methods. Finally, through the class assignments,
you will gain hands-on experience in the design and implementation of
intelligent agent systems, employing a variety of AI techniques.
AI is a 500-level course, meaning that it is available to both
graduate and senior undergraduate students. Before enrolling, do keep
in mind that the workload is non-trivial, in particular for students
who lack fundamental skills in computer programming, as some of the
assignments require up to 500 lines of code for a correct
implementation (and although outside the scope of the assignment
requirements, some students have gone well beyond this).
(from a non-student's comment): "I do remember students who took your
classes. They were clearly divided as those who complained saying
that you were a hard grader and expected them to do work, and those
who were appreciative for the hard work and what they learned. All
those who were willing to do work thought you were a great educator."
(Full disclosure: Not all students agree with that comment.)
Departmental administration has pressured the instructor either to
dumb down this course (by reducing the workload) to make it more
palatable to mediocre undergraduate students, or change the
designation to a 600-level, and thus, restrict enrollment to graduate
students, or increase the number of credits associated with the
course.
I maintain that such changes would be counterproductive. Not only
would they suggest that the quality of our academic program is
dropping, but none of the options would be desirable to students, as I
explain here:
- Reduce workload: In order to gain an understanding of the often
complex algorithms that constitute much of AI, the experience of an
implementation effort is demanded. Reducing workload means
eliminating these programming assignments. Already, the workload in
AI is less than that of my 400-level course on
Human-Computer Interaction as well as that of the
400-level Operating Systems class (at least, as I remember it).
- Change to a 600-level designation: It would be unfair to exclude
bright undergraduate students from the learning opportunity simply
because our faculty has lowered its standards. Ironically, the top
undergraduate students have usually outperformed the top graduate
students in this class, despite having to deal with a heavier course
load.
- Increase credits: This is the least problematic of the options,
but the added value on one's transcript risks encouraging greater
enrollment by borderline students who should not be taking 500-level
courses in the first place. In turn, the quality of the course
material would decline, and everybody loses.
Stuart Russell and Peter Norvig.
Artificial
Intelligence: A Modern Approach (3rd edition), Prentice Hall, 2009.
This text can be purchased from
various on-line stores
or Paragraphe Bookstore (2220 McGill College).
The text is also available on reserve in the Schulich library. The
first and second editions of this text are perfectly acceptable, in particular as
the authors were kind enough to provide a
chapter map
between the first two editions.
The course grade will be based on three assignments, each worth 15%, a
group-based term project, worth 25%, and a final examination, worth
30%. Each of the assignments is designed to provide familiarity with
a different aspect of artificial intelligence, while the term project,
to be done in groups of 2-3 students, is intended to provide an
opportunity for students to apply their overall knowledge gained
through the course to a challenging, real-world problem.
Unless discussed with the instructor
at least one week in advance,
all assigned work is due at 11h00 on the due date. The
penalty for all late submissions will be 15% if received within 24
hours, 30% if received within 48 hours of the due date; no work will be
accepted thereafter.
Your instructor values it. Google my name with "academic integrity".
(Subject to minor revision throughout the term)
| Date |
Topic (and lecture slides) |
Readings |
Material Due weight |
| Jan. 5 |
Intro to AI: terminology and historical perspective |
Ch. 1 |
|
|
| Jan. 10 |
Problem Solving By Searching: problem formulation, search strategies, heuristics. |
Ch. 3 |
|
|
| Jan. 12 |
Two-player games: minimax, alpha-beta pruning, position evaluators |
Ch. 5-5.4 |
|
|
| Jan. 17 |
Intelligence and agency: agent classifications and architectures |
Ch. 2 | Brooks, A Robust Layered Control System for a Mobile Robot |
|
|
| Jan. 19 |
Logical Agents: wumpus world, reasoning in propositional logic |
Ch. 7-7.5 |
|
| Jan. 24 |
Planning: progression, regression, and partial-order planning |
Ch. 10-10.2 |
|
|
| Jan. 26 |
Uncertainty: probabilistic inference, Bayes' rule |
Ch. 13.3-13.5 |
|
| Jan. 31 |
in-class game tournament |
|
Assignment #1 15% |
| Feb. 2 |
Decision Making: simple and complex decisions, Markov Decision Problems |
Ch. 16.3, 17-17.4 |
|
| Feb. 7 |
Inductive Learning |
Ch. 18-18.3 | Sammut, Learning to Fly |
|
| Feb. 9 |
Non-parametric models |
Ch. 18.8 | Mitchell, Instance-based learning (pp. 230-234) |
|
| Feb. 14 |
Statistical Learning: Bayesian learning, MAP, maximum likelihood |
Ch. 20-20.2 |
|
| Feb. 16 |
Expectation Maximization |
Ch. 20.3 |
|
|
| Feb. 21, 23 |
Study Week
|
Assignment #2 15% |
| Feb. 28 |
Passive Reinforcement Learning |
Ch. 21-21.2 |
|
|
| Mar. 2 |
Active Reinforcement Learning |
Ch. 21.3-21.6 |
Mahadevan & Connell,
Automatic Programming of Behavior-based Robots using Reinforcment
Learning
| |
| Feb. 7 |
Artificial Neural Networks |
Ch. 18.7 | Mitchell, Artificial Neural Networks (4.1-4.6) |
|
|
| Mar. 9 |
Backpropagation and Applications |
Pomerleau, Efficient
Training of Artificial Neural Networks for Autonomous Navigation |
|
|
| Mar. 14 |
Support Vector Machines |
Ch 18.9 |
|
| Mar. 16 |
Recurrent Neural Networks |
Kröse and van der Smagt, Intro to NN Ch. 5 |
|
Assignment #3 15% |
| Mar. 21 |
Boltzmann machines |
Kröse and van der Smagt, Intro to NN Ch. 5 |
|
|
| Mar. 23 |
Self-Organizing Neural Networks: clustering, quantization, function approximation |
Kröse and van der Smagt, Intro to NN Ch. 6 |
|
| Mar. 28 |
Self-Organizing Maps |
Kröse and van der Smagt, Intro to NN Ch. 6 | |
|
| Mar. 30 |
Clustering and Component Analysis |
|
|
| Apr. 4 |
Evolutionary Computing: genetic algorithms, genetic programming, evolving neural networks |
Nolfi et al Phenotypic Plasticity in Evolving NN |
Koza, Breeding Populations of Programs to Solve Problems in AI |
|
|
| Apr. 6 |
Project Presentations |
|
| Apr. 8 |
Review |
Project 25% |
Last updated on 3 April 2011