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, with applications ranging from diagnosis to game-playing to language processing. See the lecture schedule for a tentative syllabus.
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 rapidly, see the programming page for details.
NOTE: 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.
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.
Coursework will consist of two kinds of assignments: written and programming.
Each written homework assignment will be due in class on the due date.
Each programming assignment will be due at 11:59pm on the due date, and should be submitted via your Unix class account (submission instructions). Please see the FAQ page for questions about programming environments.
You should be prepared to do regular work each week to keep up with the material and the assignments.
Overall grades will be determined from:
You will have 7 late days for programming projects, up to two of which can be used for any given due date.
For written assignments, you may discuss the problems in larger groups, but each of you must write up your solutions independently. Written assignments do not have late days -- you can catch course staff in section or in OHs the week the assignment is due.
In all cases, each submission should acknowledge any collaborators and sources consulted. All code and written responses should be original. We're trusting each of you not to cheat -- we will strictly enforce the EECS Policy on academic dishonesty (see Kris Pister's policy as well) and we will check programming projects with MOSS.
The instructor may adjust grades upward based on class participation, extra credit, etc. The grade of A+ will be awarded at the instructor's discretion based on exceptional performance.
You can find out about enrollment limits from the online schedule of classes. Due to the size of the waitlist, we are currently being considered for a larger lecture hall; we should know about the prospects in the first or second week. If we are moved, most or all of the waitlist should get in; if we are not, only a part of the waitlist will get in. Stay tuned.
Here are the policies that govern admission into classes, and here are some answers to frequently asked questions about admission.
There will be several routes of communication for this course. Announcements will be posted to this website. There is a course newsgroup, ucb.class.cs188, which is appropriate for general questions about the course, clarifications about assignments, and so on. The course staff will monitor the newsgroup, and you should send questions there whenever possible, since everyone else will be able to benefit from the answer. If you need to contact the course staff privately, you should email cs188-staff AT lists.berkeley.edu. You may of course contact the professor or GSIs directly, but the staff list will produce the fastest response.