Course grades will determined by class participation, problem sets, and an open ended final project. These will be weighted as follows.

Grade Components
Problem Set 1  5%
Problem Set 210%
Problem Set 315%
Problem Set 420%
Final Project40%

Last year, students earned mostly A's and B's.

Class Participation

As noted above, class participation and attendance will account for 10% of your grade. To get a good participation grade, you need to come to class and be active in discussion.

This is not intended to be punitive! If you cannot attend a particular class meeting you can make up for it as follows. After the class, read the notes posted online and talk with a classmate about the discussion. Write a one-page document describing the technical material covered in the missed class. Mail this to me (formatted as plain text, pdf, or html) prior to the following class meeting, and you will receive full participation credit.

Late Assignments

Assignments will generally be due at 11:59pm on Tuesday nights. Assignments will accepted up to two days late, but will be penalized by 50%. If a special circumstance will prevent you from turning in an assignment on time (e.g. death in the family or personal illness), talk to me before the due-date and we can make reasonable accommodations for your situation.

Assignment Submissions

Assignments 2, 3 and 4 should be submitted as zip files containing all solution, project, and source files necessary to build your code. This lifehacker article explains one method of creating zip files in Windows.

Challenge Problems

Some assigments may contain optional challenge problems. Solutions to challenge problems will be evaluated, but are very unlikely to effect your grade. In almost every case, your score will be maximized by spending time on required problems instead a challenge problem.

Academic Integrity

Cheating is not cool, is not tolerated, defeats the purpose of taking this class, and carries severe penalties. Cheating will make my life unpleasant and your life miserable. Do not cheat.

If you are concerned that something may be considered cheating, don't do it without asking me.