The students first need to complete CS111, or have an equivalent proficiency in Java. Please speak with the instructor if you are not sure whether your programming background is adequate. The programming assignments will be extensive, so programming experience is required in this course.


There will be 6 biweekly assignments, most will have a longer programming part and a shorter written part. The assignments will be due roughly every other Thursday, with the written part to be handed in at the start of class, and the programming part to be electronically submitted (using gsubmit) by 10 pm. Assignments cannot be submitted late, and extensions may only be given under special circumstances. All of the assignments will be fairly involved, so please get started early. When you program you are expected to write clear, human-readable code and put comments where appropriate to let the graders know what you are doing.


There will be a midterm (last class before Spring Break) and a final (May 6, 9-11 a.m.). You may bring a single double-sided sheet of handwritten notes to each exam.


Please make every effort to attend class and pay attention when you are there. Not going to class will impair your understanding of the material and your ability to complete the homework. I will also periodically take attendance quizzes.


Your grade will be determined as follows:

50% Homework
10% Attendance/class participation
15% Midterm
25% Final


It is your responsibility to be familiar with the CAS Academic Conduct Code. It is okay to discuss the homework with your classmates, but the solutions submitted must be your own. If you are not sure whether something is considered cheating, cite your sources or ask us before you submit the assignment.

We will be checking the code you submit for homework to make sure that it is original. This does not mean that you are barred from using for-loops or similar constructs common to all computer programs. However, it does mean that you cannot take a large chunk of code you found online and use it in your assignment or use your classmate's code (without proper citations).

Important Dates

Please consult the registrar's website for the academic calendar and important dates (including the drop dates) for Spring 2008.