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.
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. Programming projects will be in Python; see the programming page for details. Programming projects may be done in pairs and will be graded on a point basis. Written homeworks will be in the form of mini-assignments given most weeks in section. These mini-assignments will be very short (one or two exam-style questions) and will be graded in the subsequent section on a complete / incomplete basis. 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:
Assignments must be turned in electronically by 11:59pm on the listed due date. You will have 7 late days for programming projects, up to two of which can be used for any given due date. Also for programming assignments, you may work alone or in teams of two; teams need only submit one copy of their solution (see for details) For written assignments, you may discuss the problems in larger groups, but each of you must write up you 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. Each written mini-assignment is worth 1% and the maximum credit for written assignments is a total of 10%. 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.
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)%
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.