Revised Dec 18, 2015

Watch a video introduction to this course on YouTube.

This course introduces students to the fundamental problems of artificial intelligence and the basic models and algorithms used to tackle these problems. Students examine frontier areas of computer science and gain knowledge that will allow them to further their studies in artificial intelligence.

- CS major students. Usually taken in fourth year. Beneficial for students who are interested in computer applications that solve sophisticated problems.

- Fall, Winter, and Spring

- Pre-requisites: CM 339/CS 341 or SE 240; Computer Science students only
- Co-requisites: STAT 206 or 231 or 241

For official details, see the UW calendar.

- Typically, students can use any programming language and development tools to complete assignments. Matlab is sometimes recommended.

- S. Russell and P. Norvig,
*Artificial Intelligence: A Modern Approach*, Prentice Hall, 3rd Edition, 2010. - D. Poole and A. Mackworth,
*Artificial Intelligence: Foundations of Computational Agents*, Cambridge University Press, 2010.

At the start of the course, students should be able to

- Use basic algebra, calculus, and probability
- Write efficient, readable programs from scratch
- Read and write technical documents

At the end of the course, students should be able to

- Describe some of the fundamental problems of artificial intelligence.
- Identify basic models and algorithms used in artificial intelligence.
- Demonstrate understanding of how and when to apply artificial intelligence models and algorithms.
- Describe current research trends in artificial intelligence.

- Introduction to artificial intelligence
- Building intelligent agents

- Building systems that solve problems by searching
- Constraint satisfaction problems, backtrack and local search algorithms
- Automated problem solving, graph search algorithms, searching implicit graphs, A* search
- Automated planning

- Building systems that contain data to solve problems
- Knowledge representation, propositional logic, first order logic, commonsense knowledge
- Logical inference
- Representing change
- Building a knowledge base

- Building systems that reason and act in uncertain environments
- Probabilistic reasoning, joint probabilities, conditional probabilities, conditional independence, Bayes rule, Bayesian networks
- Utilities, decision theory, sequential decision making, value of information
- Game theory, multi-agent systems, adversarial environments, partially observable environments

- Building systems that improve with experience
- Learning a function from examples, linear functions, generalized linear functions (nonlinear bases), neural networks, decision trees
- Generalization theory, over-fitting and under-fitting, complexity control
- Topics may also include reinforcement learning and unsupervised learning

- Building systems that communicate
- Natural language understanding, parsing, grammars, semantic interpretation, pragmatics

David R. Cheriton School of Computer Science

University of Waterloo

Waterloo, Ontario, Canada N2L 3G1

Tel: 519-888-4567 x33293

Fax: 519-885-1208

Contact | Feedback: cs-webmaster@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics