Introduction to all major topics in artificial intelligence including search, logic, optimization, constraint satisfaction, planning, multiagent systems, machine learning. The class prepares students for advanced study and research in each of the individual topics and provides students with tools to apply the approaches to numerous industrial applications. The assignments involve a mix of theoretical and implementation exercises.

syllabus  calendar  moodle

Professor: Sam Ganzfried

Teaching assistant:  Farzana Yusuf (


Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig  (main textbook)

Operations Research Models and Methods by Paul Jensen and Jonathan Bard

Learn Python the Hard Way by Zed Shaw

Background: Students should be familiar with all the material in this document on mathematical proofs and with at least one standard programming language (e.g., Python, C, Java).

Project:  For the class project students will implement an agent for 3-player Kuhn poker.  This is a simple, yet interesting and nontrivial, variant of poker that has appeared in the AAAI Annual Computer Poker Competition. The grade will be partially based on performance against the other agents in a class-wide competition, as well as final reports and presentations describing the approaches used. Students can work alone or in groups of 2.

Evaluation: homeworks (every two weeks), midterm exam, final exam, class project


1) Search

    -- uninformed search, informed search, local search, adversarial search, constraint satisfaction

2) Logic

    -- propositional logic, first-order logic, logical inference

3) Optimization

    -- integer optimization, linear optimization, nonlinear optimization

4) Planning

    -- classical planning, spatial planning

5) Probability

     -- Bayesian networks, hidden Markov models

6) Decision making

    -- Markov decision processes, multiagent systems, reinforcement learning 

7) Machine learning

    -- classification, regression, clustering, deep learning


Lecture videos

Lecture 1 (8/22)

    -- slides

    -- assignment: read proof review document and Ch. 3.1-3.4 from Russell/Norvig textbook

Lecture 2 (8/24)
    -- slides

    -- slides from Python tutorial
    -- assignment: read Ch. 3.5-3.7 from Russell/Norvig textbook

Lecture 3 (8/29)
    -- slides
    -- assignment: read Ch. 4 from Russell/Norvig textbook

Lecture 4 (8/31)
    -- slides
    -- assignment: read Ch. 5 from Russell/Norvig textbook

Lecture 5 (9/5)
    -- slides
    -- assignment: HW1 out (due 10/3), read Ch. 6 from Russell/Norvig textbook

Lecture 6 (9/19)
    -- slides
    -- assignment: read Ch. 7 from Russell/Norvig textbook

Lecture 7 (9/21)
    -- slides
    -- assignment: read Ch. 8 from Russell/Norvig textbook

Lecture 8 (9/26)
    -- slides
    -- assignment: read Ch. 9 from Russell/Norvig textbook

Lecture 9 (9/28)
    -- slides
    -- assignment: read Ch. 7-8 from Jensen textbook

Lecture 10 (10/3)
    -- slides
    -- assignment: read Ch. 2-3 from Jensen textbook

Lecture 11 (10/5)
    -- slides
    -- assignment: HW2 out (due 10/17), read Ch. 9-10 from Jensen textbook

Lecture 12 (10/10)
    -- slides
    -- assignment: read Ch. 10 from Russell/Norvig textbook

Lecture 13 (10/12)
    -- slides
    -- assignment: read Ch. 25 from Russell/Norvig textbook

Lecture 14 (10/17)
    -- slides

Artificial Intelligence