Princeton University
Computer Science Department

Computer Science 402
Artificial Intelligence

Rob Schapire

Fall 2010

General Information | Schedule & Readings | Assignmentsblackboard

Note: For homeworks that have not yet been assigned, these due dates are tentative and subject to change.







TA's in charge

written exercises


0 Sunday, Sept. 19


1 Tuesday, Sept. 28

Turing Test and Search

Yuhui & Alex

2 Tuesday, Oct. 12

What A* Rush

Gungor & Sina


3 Tuesday, Oct. 26

results of implementation challenge

Sina & Hao


4 Tuesday, Nov. 16

Bayes Nets and MCMC

Alex & Gungor


5 Thursday, Dec. 2

HMM's and the Viterbi Algorithm

Gungor & Yuhui


6 Thursday, Dec. 16

Cat and Mouse

Alex & Sina



"Dean's Date",
Tuesday, Jan. 11
(but first round test predictions are due Thursday, Jan. 6)

Machine Learning

Results of comparison on benchmark datasets

Sina & Gungor



What you will be graded on

Homework assignments will be a mix of written exercises and programming.

For most of the written exercises, you will be graded primarily on getting the right answer, but also on writing up your answer clearly, concisely and precisely.  Likewise, programming assignments are graded largely on whether or not your program works correctly and efficiently, but also on whether your code is written cleanly following good programming practices and including sufficient documentation.  Creativity and ingenuity are important factors in many of the programming assignments.  In addition, a few of the written exercises and many of the programming assignments ask you to explore and experiment (for instance, with the program you have written), and to report on what you have found.  For these, you will be graded on producing a write-up that is thoughtful, perceptive, insightful, critical, clear and concise.

You should always be sure that your code compiles and runs without throwing exceptions (unless given bad data).  A major part of your grade is based on automatic testing of your code, and if it doesn't even compile and run, then we cannot give you any credit for this part.  For most assignments, you can check that your code compiles by pushing the "Check All Submitted Files" button on DropBox after uploading all of your code (see below).  For the sake of automatic testing, it is also important that you please not modify the code that we are providing with each assignment, except for template files or unless specifically told it is okay to do so in the instructions.  You also should not change the "signature" of any of the methods or constructors that you are required to write, i.e., the parameters of the method (or constructor), their types, and the type of the value returned by the method.

Turning in assignments

The programming part of each assignment (that is, the actual Java code) should be turned in electronically using DropBox by following the link given on each assignment.  To log on, you will need to use your OIT login and password.  Also, you must be registered for the course.  You can upload files in the usual way.  Once uploaded, for most assignments, you can press the "Check All Submitted Files" button to be sure that your code compiles.  Files can be resubmitted, if necessary (but possibly with a late penalty if resubmitted after the deadline).

Written exercises must be submitted in hard copy, and can be turned in at the end of class, or directly to a TA, or they can be submitted by placing in one of the boxes that are located on a shelf near the vending machines in the basement of the Computer Science Building, right under the main entrance.  If placing in a box, be sure to write down the day and time of submission (see late policy below).  Many of the programming assignments also have written components called the program report.  These should also be submitted in hard copy, separate from the written exercises, but following the same instructions as above for written exercises (including notation of day and time when submitted).  Note that separate boxes are provided for the written exercises (which go in the box marked "COS 402 written exercises"), and for the program report (which go in the box marked "COS 402 program report").

The electronic part of all homeworks should be submitted using DropBox as explained above; however, grades will be posted instead using blackboard (log on using your OIT login and password).  Note that the posted grades do not include late penalties or extra credit.

Late policy

All assignments are due at 11:59pm on the due date.

Each student will be allotted seven free days which can be used to turn in homework assignments late without penalty.  For instance, you might choose to turn in HW#1 two days late, HW#4  three days late and HW#6 two days late.  Once your free days are used up, late homeworks will be penalized 20% per day.  (For instance, a homework turned in two days late will receive only 60% credit.)  Homeworks will not be accepted for credit more than five days past the deadline, whether or not free days are being used.  Even so, all homeworks must be credibly completed and turned in, even if this five-day limit has passed.  As noted elsewhere, failure to do so may result in a final grade of D or F, regardless of performance on other components of the course.

Exceptions to these rules will of course be made for serious illness or other emergency circumstances; in these cases, please contact me as soon as you are aware of the problem.  Also, note that the last assignment, which is due on "dean's date," cannot be turned in late without a dean's permission, as per university rules.

A weekend, that is, Saturday and Sunday together, count as a single late "day".  For instance, a homework that is due on Thursday but turned in on Sunday would be considered two days late, rather than three.

If you are turning in a written homework after hours when no one is around to accept it, please clearly mark the day and time when it was turned in.  Failure to do so may result in the TA's considering the homework to be submitted at the time when they pick it up (which might be many hours, or even a day or two after when you actually submitted it).

It is your own responsibility to keep track of how many late days you have used.  The TA's will post their own record of late days used on blackboard, but the numbers posted will not always be fully up-to-date.


The collaboration policy for this course is based on the overarching objective of maximizing your educational experience, that is, what you gain in knowledge, understanding and the ability to solve problems. Obviously, you do not learn anything by copying someone else's solution. On the other hand, forbidding any and all discussion of course material may deprive you of the opportunity to learn from fellow students. The middle ground between these two extremes also needs to be defined with this basic principle in mind. Before working with another student, you should ask yourself if you would gain more or less by working together or individually, and then act accordingly. Here are some specific guidelines based on this principle: