Course Information

Times and Locations:

Finals Week Office Hours:

Course Staff:


There will be several routes of communication for this course:

Course Description:

This course will introduce the basic ideas and techniques underlying the design of intelligent computer systems. A specific emphasis will be on the statistical and decision-theoretic modeling paradigm.

By the end of this course, you will have built autonomous agents that efficiently make decisions in fully informed, partially observable and adversarial settings. Your agents will draw inferences in uncertain environments and optimize actions for arbitrary reward structures. Your machine learning algorithms will classify handwritten digits and photographs. The techniques you learn in this course apply to a wide variety of artificial intelligence problems and will serve as the foundation for further study in any application area you choose to pursue.

See the syllabus for slides, deadlines and the lecture schedule.


This course has substantial elements of both programming and mathematics, because these elements are central to modern AI.  You should be prepared to review basic probability on your own if it is not fresh in your head.  You should also be very comfortable programming on the level of CS 61B even though it is not strictly required.

CS61A AND CS61B AND CS70 is the recommended background.

Course programming assignments will be in Python.  We do not assume that students have previous experience with the language, but we do expect you to learn the basics very rapidly. See the programming page for details.


This class includes five programming projects and four written homeworks. Both homeworks and projects may be submitted alone or in a team. Please see the assignments page for submission details and slip days.

Ethics: Submissions should acknowledge all collaborators and sources consulted.  All code and written responses should be original.  we trust you all to submit your own work, but to protect the integrity of the course from anyone who doesn't want to play by the rules, we will actively be checking for code plagiarism (both from current classmates and previous semesters). I'm not lenient about cheating; I sympathize with Kris Pister's policy.


Overall grades will be determined from:

Grades are on the following fixed scale:


[90 -- 100]%
[85 -- 90]%
[80 -- 85)%
[75 -- 80)%
[70 -- 75)%
[65 -- 70)%
[60 -- 65)%
[55 -- 60)%
[50 -- 55)%
[45 -- 50)%
[40 -- 45)%
[0 -- 40)%

These cutoffs represent grade minimums. We may adjust grades upward based on class participation, extra credit, etc. The grade of A+ will be awarded at the professor's discretion based on exceptional performance.

Regrade Policy: If you believe an error has been made in the grading of one of your exams or assignments, you may resubmit it for a regrade. Please attach a sheet of paper with a detailed explanation of which problems you think you deserve more points on and why and hand it to us during office hours or lecture, or submit into the 283 Soda dropbox. We reserve the right to regrade your entire problem set, so your final grade may either increase or decrease. Under no circumstances should you write on the graded copy itself.


The required course textbook is Russell and Norvig, Artificial Intelligence: A Modern Approach, Third Edition. The first edition (red cover) is too different to be used in this course. The second edition (green cover) is substantially closer to the third. We recommend the third edition, but much of what you need is in the second. The third has particularly improved pseudocode and treatment of learning. Any other readings will be made available online.


Here are the policies that govern admission into classes, and here are some answers to frequently asked questions about admission. The course staff does not control enrollment!