CS 486 | SCS | UW

Revised Dec 18, 2015

CS 486: Introduction to Artificial Intelligence


Watch a video introduction to this course on YouTube.

General description

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.

Logistics

Audience

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

Normally available

  • Fall, Winter, and Spring

Related courses

  • 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.

Software/hardware used

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

Typical reference(s)

  • 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.

Required preparation

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

Learning objectives

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.

Typical syllabus

Introduction (1 hour)

  • Introduction to artificial intelligence
  • Building intelligent agents

Problem-solving (9 hours)

  • 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

Knowledge representation and reasoning (4 hours)

  • 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

Uncertain knowledge and reasoning (10 hours)

  • 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

Machine learning (10 hours)

  • 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

Communicating (2 hours)

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