CS 188, Spring 2004
Introduction to Artificial Intelligence


Assignment 5 posted, due April 28

Midterm solutions posted under "Old exams"

Assignment 1 solutions posted

Assignment 0 solutions posted

New code-188 posted: now works in Allegro CL under Windows too!

Instructor Stuart Russell
727 Soda Hall, russell AT cs.berkeley.edu; (510) 642 4964
Office hours Mon 3-4.30, Fri 12.30-2, in 727 Soda Hall.

TAs Lecture Mon, Wed, Fri 10-11, 2050 Valley LSB
Discussion sections (Will meet the first week, beginning Jan 20, to provide an overview of LISP)
101, Tu 10-11am, 433 Latimer (Preslav Nakov)
102, Tu 11-12, 285 Cory (Charless Fowlkes)
103, Tu 1-2pm, 6 Evans (Brian Milch)
104, Tu 2-3pm, 75 Evans (Andrea Frome)
105, Tu 9-10am, 405 Soda (Andrea Frome)
106, Tu 4-5pm, 101 Barker (Peter Bodik)
107, Tu 5-6pm, 75 Evans (Peter Bodik)

Final Exam Mon May 17, 8.00-11.00am, 100 Haas Pavilion.


Prerequisites
Enrollment in the Course
Course Requirements and Grading
Reading List
Syllabus
Lecture Slides
Assignments
Old exams
Computer Accounts and Course Software

Prerequisites

The prerequisites for the course are as follows: The main programming language used in the course will be Common Lisp. Programming experience in Lisp or one of its dialects (such as Scheme, used in 61A) is strongly recommended. Familiarity with the basic ideas of data structures and complexity (as covered in 61A or 61B) is also useful. Calculus will come in handy in one or two places. Propositional logic and probability theory, as covered in CS 70, are important prerequisites but they will be thoroughly reviewed in this course. As usual, ask me if you're not sure about whether to take the course.

Enrollment in the Course

You can find out about enrollment limits, etc., from the Online Schedule of Classes or the TeleBears course page. I expect that all qualified students will be able to take the course.

Please remember that the instructor and TAs have no control over who gets in. If you are not yet enrolled as of the first day of lecture and still want to be considered for participation in the course, you should attend class and file an appeal form by the end of the first week of classes. Appeal forms are available from the CS Office on the 3rd floor. (Michael-David Sasson, 379 Soda, msasson@cs might be able to advise you on the status of your appeal.)

Here are the policies that govern admission into classes, and here are some answers to frequently asked questions about admission.


Course Requirements and Grading

Late policy: no late homeworks will be accepted, with the following exception: Over the semester, you have a total of 5 FREE late days to cover for emergencies. If you wish to use one or more of these, indicate it clearly on your homework. Assignments are to be turned in by 5pm on the due date.

Grading policy: the class is not graded on a curve. Grade is based on total percentage as follows:

A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

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

Many people find it hard to get less than 35%. If necessary, you can also get an F by skipping the midterm or the final.

Reading list


Assignments

Assignments are due by 5pm on the day indicated.

Programming assignments should be turned in using the submit program from an instructional (named or class) account, as described here.

Written assignments may be placed in the homework box in 283 Soda, or they may be turned in online using submit.

The written assignments are to be done individually, the project assignments in pairs (except for Assignment 0).

Discussion of assignments among students is permitted and encouraged, but solutions and programs may not be copied. I would recommend NOT mixing discussion with writing up of solutions or code. See the EECS Department Policy on Academic Dishonesty and Kris Pister's policy for further explanation and examples.

It is a good idea to start your programming assignments as soon as you can; computers have a tendency to go down the night before an assignment is due. There is evidence from past courses that students who start working well before the due date take about one third the time to complete their work compared to students who wait until the last minute. In general, it will be worth your while to spend more time away from the workstation thinking about programs than struggling with them on-line.


Old midterms (postscript)


Old finals (postscript) (some incomplete; some missing, not available)


Computing Facilities

You will have access to department UNIX workstations for this course. If you already have a "named" account or are enrolled in another EECS course this semester that provides named accounts, you can use that account for this class. Otherwise, you will get a "class" account specifically for CS 188 -- see
Information for New Instructional Users as well as the departmental policies.

Please use your account responsibly and be considerate of your fellow students. You will end up spending less time (and have a more pleasant experience) if you do not wait until the night before the assignment due date to fight for computer cycles.

We will use LISP. The amount of programming required is not large, and we don't expect you to be an expert in LISP, but we do expect that you've worked with Scheme in CS61A, and that you can more or less pick up the differences between the two (which will be reviewed by the TAs in the beginning of the semester, and will also be the subject of Assignment 0). You will have to work with some code we have written, so please get up to speed on LISP quickly.

The particular implementation of LISP we will use is called Allegro Common LISP (ACL or alisp), from Franz, Inc. There is copious, if awkwardly organized, documentation available.

ACL is available on the Solaris servers (e.g., star.cs, nova.cs, solar.cs) but apparently not on the Solaris X86 PCs in 277 Soda. You can use other machines too, and the source code should work in most versions of Common LISP, but remember that compiled code runs only on the architecture for which it was compiled. You run ACL by executing the command

/usr/sww/lang/acl/alisp
(but consult the official instructional LISP help page for updates, etc.)

If you like, you can do the assignments on your own machine. Franz Inc. offers free trial downloads of Allegro CL 6.x for Windows and Linux. The trial edition is indefinitely renewable and includes a compiler.


Course Software

The project assignments will build on the AIMA code that accompanies the textbook. Currently there are two versions of this code.