A. Program Design (25%)
| Rating | Criteria | 
|---|---|
| 25 | Solution well thought out | 
| 15 | Solution partially planned out | 
| 05 | ad hoc solution; program "designed at the keyboard" | 
B. Program Execution (20%)
| Rating | Criteria | 
|---|---|
| 20 | Program runs correctly | 
| 12 | Program produces correct output half of the time | 
| 04 | Program runs, but mostly incorrectly | 
| 0 | Program does not compile or run at all | 
C. Specification Satisfaction (25%)
| Rating | Criteria | 
|---|---|
| 25 | Program satisfies specification completely and correctly | 
| 15 | Many parts of the specification not implemented | 
| 05 | Program does not satisfy specification | 
D. Coding Style (20%)
| Rating | Criteria | |
|---|---|---|
| 20 | Well-formatted, understandable code; appropriate use of language capabilities | |
| 12 | Code hard to follow in one reading; poor use of language capabilites | |
| 04 | Incomprehensive code, appropriate language capabilites not used | 
E. Comments (10%)
| Rating | Criteria | 
|---|---|
| 10 | Concise, meaningful, well- formatted comments | 
| 06 | Partial, poorly written or poorly formatted comments | 
| 04 | Wordy, unnecessary, incorrect, or badly formatted comments | 
| 0 | No comments at all | 
F. Extra Credit (10%)
| Rating | Criteria | 
|---|---|
| 04 | Programs that usefully extend the requirements | 
| 03 | Programs that use a particularly good algorithm | 
| 03 | Programs that are particularly well written or use the capabilities of the language particularly well |