This is an example of a generic rubric for grading programs in
programming assignments.
Most assignments will contain a second
part that is more specific, including particular test cases and
features.
|
Criterion |
3 = Excellent |
2 = Adequate |
1 = Substandard |
0 = Not even close |
|
Adherence to problem specification Does it conform to the spec in every detail? |
No errors. [If permitted by assignment: extends specifications intelligently with documentation] |
Minor details of the spec are violated, or poor choices are made where spec are unclear. |
Significant details of the specifications or the underlying program intent are violated, but the program still fulfils essential functions. |
Misses the point of the problem. |
|
Breakdown (modular design) Does it demonstrate good modular design? Shown by cohesion of modules and design of module interfaces. Consult style guidelines. |
Packages, classes and methods are good size for purpose, modules have good cohesion and low coupling, modules capture consistent information model of solution. |
1-3 minor errors: |
More than three minor defects in design OR one major error |
More than one major error |
|
Correctness of code Does it work? This category counts double. |
Works correctly in all test cases. |
Works for typical input, may fail for minor special cases. |
Fails for typical input, for a minor reason. |
Fails for typical input, for a significant reason. |
|
Documentation, style and user interface Is it clear and maintainable? Is the user interface designed carefully? |
Conforms to style guide and is very readable in choice of identifiers, words and construction of English. |
1-3 minor errors. Poorly chosen identifiers, violations of style without good reason. |
More than three minor errors OR one major error |
More than one major error |
|
Efficiency of code Choice of methods: algorithms and data structures for a general solution to the wider problem. (weight in grading varies between problems) |
Optimal efficiency |
Some inefficiency in time or space e.g. linear factor |
More than three minor defect OR one major defect (e.g. O(n^2) vs linear) |
More than one major error or core performance is grossly inefficient |
|
Fast coding Is the programmer at ease with the language? Expression, choice of program control constructs. Handwritten from fundamental constructs, or does it use the language library features well? |
Best choice, all coding appropriate and readable |
1 or 2 poor choices |
Several poor choices |
Many poor choices, program appears to be translation from another language |
Adapted from Kevin Megill, Sauk Valley Community College, upgraded to intermediate level university course.
“[we] create relatively detailed rubrics that outline what students must do to meet and exceed the requirements. It can also provide details for what constitutes failure to meet the requirements. The approach we have taken in our first year classes is to create two rubrics for each assignment: one which addresses general style and design issues and one which addresses elements specific to the particular problem being solved.”
Katrin Becker (2003)
Grading Programming Assignments Using
Rubrics, Poster #40 ITiCSE 2003, The 8th Annual Conference on
Innovation and Technology in Computer Science Education, ACM SIGCSE
Bulletin [ text
of poster ]