Princeton University
Computer Science Department

Computer Science 402
Artificial Intelligence

Rob Schapire

Fall 2005

General Information | Schedule & Readings | Assignments | Whiteboard

Final exam information

Course Summary

This course will provide a basic introduction to the core concepts and techniques of modern artificial intelligence research and practice.  Likely topics will include:

Administrative Information


TTh, 11-12:20, 105 CS Building


Rob Schapire:  407 CS Building, x8-7726, schapire@cs
Office hours: by appointment (via email), or just stop by.


Melissa Carroll:  313 CS Building, x8-6126, mkc@cs
Office hours:  Tuesday 3-4 (every week) and Wednesday 3-4 (but only on weeks when she is in charge of the next due homework).

Berk Kapicioglu:  223 CS Building, x8-0254, bkapicio@cs
Office hours: Thursday 4-5 (every week) and Wednesday 3-4 (but only on weeks when he is in charge of the next due homework).

Note on office hours:  Each TA has regular office hours that are held every week, and also additional office hours held only on weeks when that TA is in charge of the next due homework.  (For instance, for the week of September 19, since Berk is in charge of HW#1, he will have office hours on both Wednesday and Thursday, but Melissa will only have office hours on Tuesday of that week.  For the following week, since Melissa is in charge of HW#2, she will have office hours on both Tuesday and Wednesday, but Berk will only have office hours on Thursday.)  Check the assignments page to find out which TA is in charge of which homeworks.

Undergraduate Coordinator: 

Donna O'Leary:  410 CS Building, x8-1746, doleary@cs



COS 217 and 226, or permission of instructor.  Of the two, COS 226 is more important than COS 217.

Although there are no formal math prerequisites, students should have taken enough math as to feel comfortable with the mathematical treatment that will be given of much of the material.  Calculus and linear algebra certainly should be sufficient, as should be COS 341 or a course on probability and statistics.  Come see me if you are unsure.


Artificial Intelligence: A Modern Approach
by Stuart J. Russell and Peter Norvig
Second edition
Prentice Hall, 2003

(Be sure to get the second edition as the changes from the first edition were fairly substantial.)

Copies of this book are on reserve at the Engineering Library.


Because it is the easiest and most appropriate language, programming in this course will be done in Java.  If you do not already know Java, you will need to learn it in the first couple weeks of the course.  Java is a beautiful and widely used language that is well worth knowing in its own right.

If you have a background in C/C++, the Java review slides presented by the course TAs may be helpful for picking up the language.

There are a number of good books on Java, including Java in a Nutshell (available online from the university library) as well as the books in the official Sun Java Series, such as The Java Programming Language.  Additional Java online documentation and tutorials are available from

One of the advantages of Java is that it comes with the standard Java Platform that includes packages for i/o, string manipulation, various data structures, etc.  You are free to make use of any of these.

To get started using Java, see the COS126 "Hello, World" assignment which describes the mechanics of using Java locally.

Grading and workload

Regular homework assignments will be given roughly once every two weeks, and will be a mix of written exercises and programming.  There will be a final exam but no midterms.  In principle, anything covered in lecture or in the assigned readings is "fair game" for the final.  However, realistically, you can expect that the emphasis will be placed on those same topics that were emphasized in lecture.

The final exam will be worth either 35% or 25% of your grade, which ever leads to a higher individual grade (with homeworks making up the remaining 65% or 75% of your grade). Said differently, if you do better on the final than you do on the homeworks, then the final will be worth 35%. On the other hand, if you do worse on the final than you do on the homeworks, then the final will be worth only 25%.  In all cases, failure to complete any significant component of the course may result in a grade of D or F, regardless of performance on the other components.

Final grades may also be adjusted slightly upward for regular and positive class participation.

You can track how well you are doing using whiteboard.  As a rough guide, if the total number of points you get on your homeworks falls close to or below 65% of the total points possible, then you may be heading for a final grade of D or F, and you should certainly seek assistance.

See the Assignments page for important information on the late policy and collaboration policy, and for information about how the homeworks are graded.

Getting help

The TA's and I are here to help, so don't hesitate to contact us or come see us if you are having trouble.  Because they can be challenging, it is very important that you start the homeworks early, not only so that you have enough time to finish them, but also so that you can get help if you have questions or difficulties.  You should not assume that someone will be available to help you at the very last minute (especially on weekends or at night).

Each homework has been assigned to one of the two TA's, as listed on the assignments page.  The TA in charge is responsible for all aspects of the homework (including grading it), so questions that are specific to a particular homework (whether before or after it has been turned in or graded) should be directed to the TA in charge.  General questions regarding material covered in class or the readings can be directed to either TA.  If you cannot make it to office hours, you can set up an appointment via email.

Needless to say, I am also available to answer questions on anything (although some matters, such as grading of particular homeworks, should be directed first to the TA in charge).  Although I do not have fixed office hours, I encourage students to come see me.  You can send me email to set up an appointment, or just stop by.


As soon as possible, please join the course mailing list by visiting and following the instructions for subscribing.  This list will be used by the course staff for general announcements, such as last minute corrections to the homeworks, changes in due date, etc.  This list can also be used by students for discussing course material, general-interest questions about the homeworks, etc.  The TA's will attempt to monitor and respond to questions on this list.  Of course, if your question is specific to your own work, you will probably want to contact me or the TA's directly.

You can post to the list by sending mail to  (Note that you can only post to the list using the email address you used to subscribe to it.)