General deductions for all classes and methods Classes/Interfaces * -2 for incorrect type on field * -3 for missing field * -3 for missing constructor * -2 for logic errors in the constructor * -4 for using abstract class when interface was appropriate Examples of Data * -3 for only simple examples, * -3 for each variant of a type that isn't tested Template per class * No template, -7 * Field not included in template, -2 each * template call not included on non-atomic field, -3 each Methods * -2 if no purpose * -2 for incorrect type on argument or return * up to -5 for logic errors (depending on how far off they were) * -3 if method named inconsistently across variants of same type Test Cases * -3 for each significant case not tested, to a max of -10. Program Structure * -5 per failure to abstract to clean code when appropriate * -5 per long/overwrapping line or poor indentation * -5 per use of constructs not approved for assignment * -5 per failure to document an invariant (starting week 2) OO Programming Issues * Explicitly checking the type of an object: -5 per occurence