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