Artificial Intelligence: Representation and Problem Solving
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.
|9/3||Search 1 - Uninformed Search|
|9/8||Search 2 - Informed Search|
|9/10||Constraint Satisfaction Problems||HW1 Out|
|9/22||Logic and Knowledge Representation|
|9/29||Probabilistic Models||HW2 Out|
|10/6||Markov Decision Processes|
|10/13||Path Planning||HW2 Due|
|10/22||Machine Learning 1||HW3 Out|
|10/27||Machine Learning 2|
|10/29||Natural Language Processing|
|11/5||Multi-robot Systems||HW3 Due|
|11/10||Game Theory||Project Start|
|11/17||Deep Learning 1|
|11/19||Deep Learning 2|
|11/26||Thanksgiving - No Class|
|12/3||Project Presentations||Project Due|
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 (released by November 10).
Homework is due at the beginning of class, handed in to the TAs. If you hand in the homework at the end of class, it will count as a day late (subject to the late days described next).
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 October 20, 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.