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.
Projects: Programming projects are a significant portion of the coursework. Projects may be completed and submitted alone or in teams of two (submission instructions). These projects will initially be graded automatically for correctness, though we will review projects individually as necessary to ensure that they receive the credit they deserve. The autograder is never the final word on whether your solution is correct!
Written homeworks: Homeworks will consist of questions similar to those that have appeared on previous semesters' exams. They can be discussed in groups, but must be written up individually. Written assignments may be turned in either the drop box in 283 Soda Hall or in lecture when due on a lecture day.
Slip days: Programming projects must be turned in electronically by 11:59pm on the listed due date. You will have 5 slip days for these projects, up to two of which can be used for each assignment. Written assignments do not have late 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:
[85 -- 100]%
[80 -- 85)%
[75 -- 80)%
[70 -- 75)%
[65 -- 70)%
[60 -- 65)%
[55 -- 60)%
[50 -- 55)%
[45 -- 50)%
[40 -- 45)%
[35 -- 40)%
[0 -- 35)%
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.
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.
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.
The required course textbook is Russell and Norvig, Artificial Intelligence: A Modern Approach, Second Edition. If your copy has a red cover and not a green cover, it's the first edition and is too different to be used for this course. 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!