Instructor: Professor Roman Garnett

TAs: Zimu Wang (`zimu.wang`), Matthew Ranftle (`matthew.ranftle`), Jack Robards (`jrobards`)

Time/Location: Monday/Wednesday 4–5:30pm, Hillman Hall 70

Office hours (Garnett): Wednesdays 5:30–6:30pm, Hillman Hall 70 then Jolley 504

Office hours (TAs): Wednesdays 2:30–4pm, outside Jolley 515

Office hours (TAs): Thursdays 1–4pm, outside Jolley 515

Office hours (TAs): Fridays 2–4pm, Jolley 431

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, CSE 247, CSE 347, 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.

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

lecture slides

lecture videos

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

lecture videos

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

lecture videos

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

lecture videos

Additional Resources:

lecture slides

lecture videos

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

lecture videos

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

lecture videos

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

lecture videos

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

lecture videos

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

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.