|
|
|
 |
 |
 |
|
Program Assignment Grading
|
|
|  |
Contributed by Debbie Carter
Lancaster Country Day School
Lancaster, Pennsylvania
This grading rubric comes almost verbatim from a rubric developed many years ago by Sarah Fix of the Career Center in Winston-Salem, North Carolina.
To be acceptable, a programming assignment must be submitted on time and must be essentially correct. Unacceptable projects will receive 0 points. Late projects will lose points, although some "sympathy" will be extended to those who have special problems. (Just don't push it!)
Acceptable projects are graded based on the following four categories:
- Correctness
- Design
- Style and documentation
- Efficiency
You may earn from 0 to 5 points in each category, according to the criteria listed below.
Correctness: Programs should conform to the specifications for which they were written. This includes correct handling of special cases, error conditions, etc.
5: no errors found -- some extras
4: no errors found
3: one or two minor problems
2: a number of minor problems
1: one major error (does not meet project specifications)
0: more than one major error
Design: Classes should generally be constructed from small, coherent, and independent methods Within a project, classes should be loosely coupled.
5: all small, coherent, independent methods and loosely-coupled classes, unless well-justified
4: some insufficiently-justified violations but no serious problems
3: reasonably well-structured
2: reasonably well-structured but needs improvement
1: poorly structured
0: unacceptable structure
Style and documentation: Classes should be written in excellent style. Use meaningful identifiers, proper indentation, and appropriate comments; separate methods with blank lines. Class and method comments should be written in javadoc format. Class comments should include author, date, and purpose; method comments should include parameters, return values, and pre- and/or post-conditions, as appropriate. Comment difficult-to-understand code and appropriate variables. User prompts should be clear and easy to follow.
5: perfect
4: one or two small imperfections, improper indentation, a poorly chosen identifier
3: generally good, but several imperfections
2: generally good, but major comments missing
1: difficult to read and understand, few comments, etc.
0: unacceptable; no comments, no indentation, etc.
Efficiency: Efficiency is generally not an overwhelmingly important item, but one should not go out of one's way to be inefficient.
5: the algorithm of choice used and correctly implemented
4: a good algorithm was used
3: a good algorithm was used with some minor problems
2: any reasonable algorithm used
1: some clearly unnecessary steps were performed
0: grossly inefficient, unnecessary repetition of steps, etc.
I used to use a little one-quarter sheet form that I attached to student print-outs, but I now grade on the computer using Word's "Track Changes" feature to show comments and corrections in red. I paste the following text at the bottom of student programs (changing the points as necessary):
Program Grading
| Category |
Points Earned |
| Correctness |
5 |
| Design |
5 |
| Style/documentation |
5 |
| Efficiency |
5 |
| Total Earned (out of 20) |
20 |
|
|
|
|
|
|