Code Evaluation Criteria
Your source code will be evaluated based on the following criteria.
Names chosen for classes, methods, and variables should effectively convey the purpose and meaning of the named entity.
Code duplication should be avoided by factoring out common code into separate routines.
Routines should be highly cohesive. Each routine should perform a single task or a small number of highly related tasks. Routines that perform multiple tasks should call different subroutines to perform each subtask. Routines should be relatively short in most cases. [Rule of Thumb: Many routines will be less than 20 lines. Almost all routines will be less than 50 lines. Routines longer than 100 lines should be rare.]
The layout of your code should be readable and consistent. This means things like placement of curly braces, code indentation, wrapping of long lines, layout of parameter lists, etc.
The source code for your project should be effectively organized into subdirectories. Something along the lines of that discussed in class would be appropriate.
Your source code should be effectively organized into multiple files. Each class should be placed in a separate file (or two separate files, .h and .cpp). Lumping all of your code in one or two files is not acceptable.
Your program should handle exceptions properly as described in the project specification.
Unit test cases will be evaluated according to the requirements in the project specification.