15-780, Spring 2017

Graduate Artificial Intelligence


Key Information

Mondays + Wednesdays, 1:30pm - 2:50pm, MM A14

Brandon Amos, Shayan Doroudi, Anson Kahng, Kijung Shin

15% Midterm, 50% Homework, 10% Participation, 25% Project

This course is targeted at graduate students who are interested in learning about artificial intelligence. The focus is on modern AI techniques. The course also covers techniques from the intersection of AI and other disciplines such as integer programming, continuous optimization, and game theory. The course content is profiled so as to not have too much overlap with narrower specialized AI courses offered at CMU.


There are no formal pre-requisites for the course, but students should have previous programming experience (programming assignments will be given in Python), as well as some general CS background. Please see the instructors if you are unsure whether your background is suitable for the course.

Office Hours

Name Email Hours Location
J. Zico Kolter zkolter@cs.cmu.edu By appointment GHC 7115
Ariel Procaccia arielpro@cs.cmu.edu By appointment GHC 7002
Brandon Amos bamos@andrew.cmu.edu Wed 12-1pm GHC 9221
Shayan Doroudi shayand@cs.cmu.edu Mon 3-4pm GHC 8127
Anson Kahng akahng@cs.cmu.edu Thurs 2-3pm GHC 6207
Kijung Shin kijungs@andrew.cmu.edu Tue 4-5pm GHC 9005

To schedule an appointment with Prof. Kolter or Prof. Procaccia, please send an email with your availability, as well as the topics you would like to discuss (e.g., specific homework problems or lectures).

Draft Schedule (Subject to change)

Date Topic Instructor Slides Video
1/16 MLK Day
1/18 Introduction Kolter+Procaccia slides 1 video 1
1/23 Search I Procaccia slides 2 video 2
1/25 Search II Procaccia slides 3 video 3
1/30 Optimization Kolter slides 4 video 4
2/1 Linear Programming Kolter slides 5 video 5
2/6 Integer Programming I: Theory Kolter slides 6 video 6
2/8 Integer Programming II: Applications Procaccia slides 7 video 7
2/13 Machine Learning I: Regression and Classification Kolter slides 8 video 8
2/15 Machine Learning II: Nonlinear Methods Kolter slides 9 Video 9
2/20 Computational Learning Theory Procaccia slides 10 Video 10
2/22 Deep Learning I: Neural Networks Kolter slides 11 video 11
2/27 Midterm Exam
3/1 Deep Learning II: Backpropagation Kolter slides 12 video 12
3/6 Deep Learning III: Convolutional and Recurrent Models Kolter slides 13 video 13
3/8 Probabilistic Modeling I: Probability and maximum likelihood Kolter slides 14 video 14
3/13 Spring Break
3/15 Spring Break
3/20 Probabilistic Modeling II: Probabilistic Inference Kolter slides 15 video 15
3/22 Probabilistic Modeling III: MCMC Kolter slides 16 video 16
3/27 Probabilistic Modeling IV: Bayesian and Deep Generative Models Kolter slides 17 video 17
3/29 Game Theory I: Nash Equilibrium Procaccia slides 18 video 18
4/3 Game Theory II: Stackelberg and Security Procaccia slides 19 video 19
4/5 Game Theory III: Zero Sum and Extensive Form Procaccia slides 20 video 20
4/10 Game Theory IV: Minimax Theorem Via No-Regret Learning Procaccia slides 21 video 21
4/12 Social Choice I: Voting Rules Procaccia slides 22 video 22
4/17 Social Choice II: Manipulation Procaccia slides 23 video 23
4/19 Social Choice III: Statistical Approaches Procaccia slides 24 video 24
4/24 AI and Education I Doroudi slides 25 video 25
4/26 AI and Education II Doroudi slides 26 video 26
5/1 AI and Education III Doroudi slides 27 video 27
5/3 Q&A Kolter+Procaccia


There will be four assignments (not including HW 0): they will involve both written answers and programming assignments. Written questions will involve working through algorithms presented in the class, deriving and proving mathematical results, and critically analyzing the material presented in class. Programming assignments will involve writing code in Python to implement various algorithms presented in class.

Please submit your assignments on Autolab here. Scan handwritten parts of your homework and include them in your autolab submission.

Homework due dates

Homework Files Due Dates Solutions
Homework 0 search.py January 27, 11:59pm Solutions
Homework 1 hw1-files.zip February 21, 11:59pm Solutions
Homework 2 handout.tgz March 23, 11:59pm Solutions
Homework 3 handout.tgz April 12, 11:59pm Solutions
Homework 4 stackelberg.py May 4, 11:59pm Solutions


The course project involves carrying out and presenting novel research in AI. Projects are done in groups of 2-4. The expected amount of work is 50 hours per student.


  • Proposals (200 words) are due on March 22, and should outline the proposed topic and approach.
  • Progress reports (2 pages) are due on April 20.
  • Projects will be presented via short videos in the course final exam slot (May 12, 5:30pm-8:30pm). Project reports (up to 5 pages) are due on the same day.

Homework Policies

  • Homework is due on autolab by the posted deadline. Assignments submitted past the deadline will incur the use of late days.

  • You have 5 late days, but cannot use more than 2 late days per homework. No late days may be used for HW 0. No credit will be given for homework submitted more than 2 days after the due date. After your 5 late days have been used you will receive 20% off for each additional day late.

  • You can discuss the exercises with your classmates, but you should write up your own solutions. If you find a solution in any source other than the material provided on the course website or the textbook, you must mention the source. You can discuss both the programming and wirtten protions with other students, but all final submitted work (code and the writeups), but be done entirely on your own. Make sure that you include a README file with your andrew id and your collaborator's andrew id.


The class includes a midterm exam on Feb 27.

Exam Without Solutions With Solutions
Practice Midterm pdf pdf
Midterm pdf pdf