Grading
Grading Guidelines
Grade Computation
All assignments are graded on two scales - each of which is graded
from 0.0 to 1.0 divided about as follows. These point values are
advisory and point values other than these may be assigned. These scales are then weighted (by a factor of 0.6 for function and a factor of 0.4 for style) to get a final score :
Score = 0.6*function + 0.4*style
These are aggregated using similar weightings according to the weights of the assignments to produce a final score for the course. That is, the final grade is the sum of the assignment scores, each multiplied by the assignment weight, divided by the sum of the assignment weights and normalized to the 0.0 - 4.0 range.
Final Score = 4* ∑ (s(i)*w(i)) / ∑ w(i)
where s(i) is the score for assignment i and w(i) is the weight for assignment i, summed over all the assignments (i).
- Function
- For papers, function points are awarded for answering the question posed, for
completeness, for appropriate citations and for readability.
Generally function points for programs are awarded :- 0.5
- The program compiles and looks (at least vaguely) like it is an attempt to do what has been assigned.
- 0.7
- The program compiles and gives correct answers on some input.
- 0.8
- The program compiles and gives correct answers on most input.
- 1.0
- The program run correctly on every good input I can come up with and copes reasonably with bad input.
- Style
- For
papers, style points are given for organization, spelling,
grammar and other factors.
For programs, style points are awarded for good style about as follows :- 0.3
- The code is in the correct language and is syntactically correct (notice that this more or less duplicates the function points)
- 0.6
- The code is reasonably laid out, and uses appropriate identifiers (variable names etc).
- 0.9
- The code is readable, well structured, follows the appropriate conventions for the language and is commented appropriately.
- 1.0
- The code is readable, maintainable and professional.
Adjustment
Finally, after I have entered the grades, and computed the totals
for the class, I reserve the right to adjust your grades upward. I will not (in any circumstances) adjust them downward.
The procedure followed here is simple, but rather subjective. I pick out several students in the class for whom I can subjectively determine a grade. That is, I may be able to identify someone who deserves a 3.9, someone who deserves a 3.0 and so on. I can then linearly scale the grade upward (final grade=a*(raw grade)+b for some values of a >= 1 and b >= 0) to try to find a way to get these students the grades I believe they deserve. In this way, I can adjust grades to account for difficult assignments, picky grading and the like.