Code Evaluation Criteria


Your source code will be evaluated based on the following criteria.

1. Effective class, method, and variable names

Names chosen for classes, methods, and variables should effectively convey the purpose and meaning of the named entity. 

2. Effective top-down decomposition of algorithms

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.]

3. Code layout should be readable and consistent

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.

4. Effective source tree directory structure

The source code for your project should be effectively organized into subdirectories.  Something along the lines of that discussed in class would be appropriate.

5. Effective file organization

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.

6. Correct exception handling

Your program should handle exceptions properly as described in the project specification.

7. Good unit test cases

Unit test cases will be evaluated according to the requirements in the project specification.