Instructor: Professor Roman Garnett

TAs: Chip Schaff (`cbshaff`), Cheng Lin (`clin3`), Xinyu Yan (`xinyu.yan`), Zhicheng Cui (`z.cui`)

Time/Location: Tuesday/Thursday 2:30–4pm, Wilson Hall 214

Office hours (Garnett): Wednesdays 2–4pm, Jolley Hall 504

Office hours (TAs): Mondays 3–5pm, Jolley Hall 508

Office hours (TAs): Fridays 4:30–6:30pm, Jolley Hall 508

syllabus

Piazza message board
**Please ask all questions on Piazza!**

The discipline of artificial intelligence (AI) is concerned with building systems that think and act like humans or rationally on some absolute scale. This course is an introduction to the field, with special emphasis on sound modern methods. The topics include knowledge representation, problem solving via search, game playing, logical and probabilistic reasoning, planning, machine learning (decision trees, neural nets, reinforcement learning, and genetic algorithms) and machine vision. Programming exercises will concretize the key methods. The course targets graduate students and advanced undergraduates. Evaluation is based on programming assignments, a midterm exam, and a final exam.

If you are unsure about any of these, please speak with the instructor.

- CSE 132, CSE 240, and CSE 241, or permission of the instructor.
- Knowledge of Python. This will be critical to complete the programming assignments. If you do not know Python, or are rusty, you may find some resources to help below.
- Some basic knowledge of statistics, probability theory, and first-order logic is strongly recommended.

Please post all questions to Piazza!

You can find autograder information here.

Project 0 is dueProject 1 is due

Project 2 is due

Project 3 is due

Project 4 is due

The contest is due

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 1, Sections 26.3 and 27.4
- Video: Pieter Abbeel giving the introductory lecture for the Spring 2014 Berkeley CS 188 course
- Video: Dan Klein giving the introductory lecture for the Fall 2013 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 3, Sections 1–4
- Video: Pieter Abbeel giving the uninformed search lecture for the Spring 2014 Berkeley CS 188 course
- Video: Dan Klein giving the uninformed search lecture for the Fall 2013 Berkeley CS 188 course
- Video: Pieter Abbeel stepping through some DFS and BFS examples

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 3, Sections 5–6
- Video: Dan Klein giving the informed search lecture for the Fall 2012 Berkeley CS 188 course
- Video: Pieter Abbeel giving the informed search lecture for the Fall 2013 Berkeley CS 188 course
- Video: Pieter Abbeel stepping through some A* Search examples

lecture slides

Additional Resources:

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Sections 6.2–5
- Video: Dan Klein giving the second constaint satisfaction problem lecture for the Fall 2012 Berkeley CS 188 course
- Video: Pieter Abbeel giving the second constraint satisfaction problem for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Sections 5.2–5
- Video: Dan Klein giving the adversarial search lecture for the Fall 2012 Berkeley CS 188 course
- Video: Pieter Abbeel giving the adversarial search lecture for the Spring 2014 Berkeley CS 188 course
- Video: Pieter Abbeel stepping through some alpha–beta pruning examples

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Sections 5.2–5 and 16.1–16.3
- Video: Dan Klein giving the expectimax lecture for the Fall 2012 Berkeley CS 188 course
- Video: Pieter Abbeel giving the expectimax lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Sections 17.1–3
- Video: Dan Klein giving the MDPs I lecture for the Fall 2012 Berkeley CS 188 course
- Video: Pieter Abbeel giving the MDPs I lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Sections 17.1–3, Sutten and Barto Chapters 3–4 (see below)
- Video: Dan Klein giving the MDPs II lecture for the Fall 2012 Berkeley CS 188 course
- Video: Pieter Abbeel giving the MDPs II lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 21, Sutten and Barto Sections 6.1–2, 6.5 (see below)
- Video: Dan Klein giving the reinforcement learning I lecture for the Fall 2013 Berkeley CS 188 course
- Video: Pieter Abbeel giving the reinforcement learning I lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 21
- Video: Dan Klein giving the reinforcement learning II lecture for the Fall 2012 Berkeley CS 188 course
- Video: Pieter Abbeel giving the reinforcement learning II lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 13 Sections 1–5
- Video: Pieter Abbeel giving the probability lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 15 Sections 2, 5
- Video: Pieter Abbeel giving the Markov models lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 15 Sections 2, 5
- Video: Dan Klein giving the hidden Markov models lecture for the Fall 2013 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 15 Sections 2, 6
- Video: Pieter Abbeel giving the particle filter/HMM applications lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 14 Sections 1–2, 4
- Video: Pieter Abbeel giving the Bayes nets I lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 14 Sections 1–2, 4
- Video: Pieter Abbeel giving the Bayes nets II lecture for the Spring 2014 Berkeley CS 188 course
- Video: Pieter Abbeel working through some D-separation examples

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 14 Section 4
- Video: Pieter Abbeel giving the Bayes nets III lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 14 Sections 4–5
- Video: Pieter Abbeel giving the Bayes nets IV lecture for the Spring 2014 Berkeley CS 188 course

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 16 Sections 5–6
- Video: Pieter Abbeel giving the decision diagrams/VPI lecture for the Spring 2014 Berkeley CS 188 course

CIG 2014 slides

CIG 2014 paper

active search sldies

lecture slides

Additional Resources:

- Reading: Russel/Norvig, Chapter 20 Sections 1–2
- Video: Nicholas Hay giving the naive Bayes lecture for the Spring 2014 Berkeley CS 188 course

Additional Resources:

- Reading: Russel/Norvig, Section 18.7
- Reading: Wikipedia: artificial neural network, deep learning
- Video: SethBling's MarI/O video: introduction
- Video: SethBling's MarI/O video: follow-up (MarI/O learns a one-frame speedrunning trick!)
- Reading: Google Inceptionism
- Code: Google released code to implement "deep dreaming" on Github
- Website: Upload your own images to be visualized as "deep dreams"
- Videos: Google DeepMind playing Breakout, Pac-Man

This course is based on the CS 188 course at UC Berkeley. You may find lectures, slides, and more there.

The required book for this course is *Artificial Intelligence: A Modern Approach* by Either the second or third edition is fine. This is a classic textbook and highly recommended!

Another good reference for reinforcement learning is *Reinforcement Learning: An Introduction* by The book is available online here.

- The official Python tutorial is quite comprehensive. There is also a useful glossary.
- The tutorial for the CS 188 AI course at Berkeley also contains a bit of information related to Project 0.
- There is an interactive lesson plan available on Codecademy.
- The Washington University library has electronic copies of the O'Reilly book
*Learning Python*available for viewing online. See here.