Grading Criteria for Programs
This page governs all my courses that have programming projects.
Programming projects are graded on their
correctness,
readability,
user friendliness
and
programming style.
If you have questions about why I deducted points from your program,
you should feel free to discuss them with me.
Correctness (60-75%)
It is most important that a program be correct.
This means that it runs without crashing, and that it always
gives the correct answers or output.
Readability (5-15%)
The program should be easy to read.
This includes using good names for identifiers and
including adequate comments.
In particular, you should
always include
- comments at the beginning of your program to describe what the
program does,
- one or two lines of comments in each function to indicate
what it does,
- and comments in sections of code that are tricky or hard to read.
Finally, no subprogram, including the mainline, should be more that
about half of a page long.
User Friendliness (5-15%)
A user of your program should be able to figure out what is going on.
In particular, you should always prompt the user for any input required.
If the program accepts commands, be sure to include a help command.
All output must be identified;
don't just print out meaningless numbers.
Style (10-20%)
There is more that one way to write a program for any problem.
If your methods or code are unnecessarily long or complicated, then
you can lose points.
Be very careful when you decide whether a particular variable should
be global, local, or a subprogram argument.
That said, it is better to have ugly code that works correctly,
than pretty code that doesn't work.
Other (0-10%)
Some programming projects may have additional work that will be graded.
For example, a project involving files may require one or more
printouts of files be turned in.
The requirements for additional work, if any,
will always be specified as part of the assignment.