Programming Rubric
Adherence to standards
Where the specifications for a program are clearly stated, you must adhere to them in every detail. Where the specifications are not clearly stated, you must make good decisions about how the program should behave. A “good” decision is practical and satisfies the underlying intent of the program. Where there is any possibility of misunderstanding, you must document your decisions.
Breakdown (modular design)
Programs should use good modular design. In procedural programming this impacts choices about subprograms, parameters and global or local variables. In object-oriented programming it will also impact choices about objects, their public interfaces, and whether or not they are inherited.
Correctness of code
Programs must work correctly. Remember that the input may:
a) be completely typical for the program OR
b) represent a significant special case that the program must deal with OR
c) represent a mostly insignificant special case OR
d) have errors in it
Programs sometimes fail to work for trivial reasons and sometimes because of a critical misunderstanding of the basic logic for the program.
Documentation, style and user interface
Programs should be stylistically sound and well-documented. This affects things like commenting, names of identifiers, and logical structure. They should also be designed to have a reasonable user interface.
Efficiency of code
Programs should use the right tool for the right job. This means programmers must make good decisions about the algorithms and language features to use.
Fast coding
Once a programmer has chosen the design, algorithm and data structures for a code segment, actually writing the code should be quick, almost second nature.
General knowledge
In some cases you will need to demonstrate knowledge of general computing theory.
|
Criterion |
3 = Excellent |
2 = Adequate |
1 = Substandard |
0 = Not even close |
|
Adherence to standards Does it conform to standards in every detail? |
No errors |
Minor details of the standards are violated, or poor choices are made where the standards are unclear. |
Significant details of the standards or the underlying program intent are violated, but the program still fulfills essential functions. |
Misses the point of the problem. |
|
Breakdown (modular design) Does it demonstrate good modular design? |
No errors |
1-3 minor errors |
More than three minor errors OR one major error |
More than one major error |
|
Correctness of code Does it work? This category counts double. |
Works correctly in all 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? |
No errors |
1-3 minor errors |
More than three minor errors OR one major error |
More than one major error |
|
Efficiency of code Does it use the language features well? |
No errors |
1-3 minor errors |
More than three minor errors OR one major error |
More than one major error |
|
Fast coding Is the programmer at ease with the language? |
Varies with problem |
|||
|
General knowledge |
Varies with problem |
|||