General guidelines:

o DOCUMENTATION: Every program needs a contract and purpose.  

  -1 point for each of these missing on each program (including helper

  -3 if a program uses an undefined form of data (only deduct this
     once in an assignment for the same missing data definition)

o DATA DEFINITIONS: Every type of complex data needs a data
  definition, appropriate define structs, and examples of the data.
  Use the following deductions if no assignment specific criteria:

  -3 for no examples of the data
  -1 for a define-struct whose field order doesn't match that in the
  up to -3 for poor choices of which fields to include (irrelevant info,
     wrong level of detail, etc)
o TEMPLATES: Programs must follow templates when appropriate (exceptions are
  non-recursive programs and programs written using map and filter)

  -2 to -5 depending on how bad the violation of the template is:
     o if a data definition has two cases and they write 3
       (because one case needed an inner cond), -2 
     o if there's nothing resembling the template structure in their
       code, -5
     o if they forget a recursive call that the template would have
       given them, -3

o PROGRAM LOGIC: On program errors that do not come from the templates
  (these would be logical errors in their programs, you'll have to use
  your judgement.  Take off 1-5 points, depending on the point value of
  the problem.

  -1 for really small errors (like using * instead of +)
  -2 if they saw the logic but didn't tie things together quite
     right (for example: they used the struct selectors backwards)
  -3 if the logic is about halfway right: some okay and some a bit off
  -4 if the logic doesn't make much sense
  -5 if they never really got beyond the template

o TEST CASES: Every program needs test cases.  Take off up to 5 points 
  for the quality of test cases.
  -1 for each untested case, up to 5 points total
  -3 if test cases aren't executable Scheme code
  -3 if expected answers aren't included with test cases (for images,
     expected answers can be descriptive strings)
  -5 for no test cases

There are also assignment-specific guidelines for each assignment.