15-381, Spring 2017

Artificial Intelligence: Representation and Problem Solving


Key Information

Tuesdays + Thursdays, 3:00pm - 4:20pm, NSH 1305

Jonathon Buckley, Alex Frieder, Joseph Giampapa, Justus Hibshman, Ting-Yao Hu

36% Homework, 20% Midterm, 14% Project, 30% Final

Artificial Intelligence: A Modern Approach (Helpful, but not required)

This course is about the theory and practice of Artificial Intelligence. We will study modern techniques for computers to represent task-relevant information and make intelligent (i.e. satisficing or optimal) decisions towards the achievement of goals. The search and problem solving methods are applicable throughout a large range of industrial, civil, medical, financial, robotic, and information systems. We will investigate questions about AI systems such as: how to represent knowledge, how to effectively generate appropriate sequences of actions and how to search among alternatives to find optimal or near-optimal solutions. We will also explore how to deal with uncertainty in the world and how to learn from experience. We expect that by the end of the course students will have a thorough understanding of the algorithmic foundations of AI, how probability and AI are closely interrelated, and how automated agents learn. We also expect students to acquire a strong appreciation of the big-picture aspects of developing fully autonomous intelligent agents. Other lectures will introduce additional aspects of AI, including robotics, natural language processing, computer vision, game theory, and deep learning.


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
Alex Waibel waibel@cs.cmu.edu Friday InterACT, 407 South Craig Street, 205
Jonathon Buckley jpbuckle@andrew.cmu.edu Citadel Teaching Commons
Alex Frieder afrieder@andrew.cmu.edu Wednesday, 4:30-5:30 PM Citadel Teaching Commons Table 1
Joseph Giampapa garof@cs.cmu.edu By appointment GHC 5515
Justus Hibshman jhibshma@andrew.cmu.edu Citadel Teaching Commons
Ting-Yao Hu tingyaoh@andrew.cmu.edu Citadel Teaching Commons


Date Topic Reference Due Dates
17-Jan-17 Introduction Slides R+N Chapter 1


There will be four sets of assignments for the course: three homeworks involving 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.

In addition to the three homeworks, there will be a longer class project, due and presented on the final day of class. Projcts may be done in teams of 2-3 students (rare exceptions may be given to students who want to work alone on a project), and will involve applying the techniques learned in class to one of four "challenge problems" presented in the project assignment description.

Homework Policies

  • Homework is due at 23:59, thirteen days after it was assigned. It will be submitted via AutoLab.

  • Each student receives a total of six late days to use throughout the semester. These late days extend the deadline for 24 hours (so homeworks are due at noon on the corresponding day), and can be distributed amongst the three homeworks, but no more than 3 late days may be used on any assignment.

  • After you spend your six late days, you will receive 20% off per day on any assignment handed in late up to the three days. However, after 3 late days on any given homework you will receive no credit for the asignment, as we will post the solutions to the problem set at that point. Late days apply to the entire assignments, so that handing in one problem counts as a late day towards the whole assignment.

  • You may discuss the problem sets with other students in the class. However, your final written answers and code must be completed independently.


The class includes both a midterm and final exam. The midterm will take place during class on ??, and the final will take place during the time scheduled by the registrar. A list of the material to be covered during the midterm or final will be posted here prior to the exams.