Program Evaluation Criteria

Each program is evaluated over a nominal range of 20 points total (this means programs might not all have the same relative weight in the calculation of a grade), consisting of:

Program Style and Clarity. 5 to 10 points.

One measure of a program's utility is maintainability. Inherent in this concept are the ideas of documentation, indentation, identifier usage, subprogram independence, etc. No compiler or interpreter errors allowed.

  1. Program header including: student's name, assignment number, due date; program description; implementation description (e.g., main data structures and algorithms; special functions/procedures); input (exact format); output (what it means); errors (which errors will be caught? how will they be handled? which will cause a program 'crash'?) data description (describe, here or where declared, how variables declared in the main scope relate to the problem solved) All categories must be addressed and factual. Documentation should be concise - no rambling prose. Arrange in tabular format. 2-5 pts.

  2. Subprogram description. Header describing all parameters, globals, object variables, returned value, which subprograms it calls. (Local variables should be documented here or where they are declared.) 2-5 pts.

  3. Modularity of design. Information hiding and data abstraction; subprogram independence; correct use of parameters. 3-10 pts.

  4. Programming style and readability- indentation, choice of identifiers, logical constructs, documentation, symbolic constants. 3-10 pts.

Algorithm correctness and clarity. 10 to 15 points.

The program must produce valid results, not just for the given data, but any valid data. (No points given if compilation errors exist.)

  1. Algorithm correctness. 5-15 pts.

  2. Clear, concise, output for all legal data sets. 2-10 pts.

  3. Completeness. Program must address all aspects inherent in the assignment. 3-10 pts.

Lateness. (Subtractions from point total.) Up to 10 pts.

  1. 10% of total possible points will be subtracted for each day a program is late: 10% for one day late; 20% for two days late; 30% for three days late; 40% for four days late; 50% for five days late. A program more than 5 days late will not be scored, but it should be handed in and may be used as an aid in determining a student's overall grade. Make a dated run of program before due date arrives. A program that runs with errors is better than one that doesn't run at all. A program that doesn't run but compiles is better than one that doesn't compile. A program that handles some part of the problem is better than one that isn't handed in. A program which doesn't compile will not be graded; but it should be handed in as the effort shown in its development may be used as an aid in determining a student's overall grade.