Programming Style Grading Criteria

The programming style grade is worth 1% of the final grade for each assignment. Thus the functionality of each assignment is only worth 4% of the final grade. The programming style grade will have a maximum score of 45 and will be graded based on the following criteria.

5 Title page short header: The front page of your program must have a header with your name, course, TA, data, system, and a short description of the program, such as:
     /** ---------------------------------------------------------
     * This program implements a calculator that does addition subtraction,
     * multiplication, and division.
     * Class: CS 340, Spring 2005
     * System: NetBeans IDE, jsdk 1.4.2, Windows XP
     * @author Dale Reed
     * @version January 16, 2004
10 Title page(s) complete description: Following the above short header, you should give a detailed description of what this program does (2 paragraphs minimum). This should be followed by an intuitive description of how you implement your solution, including a description of principal data structures and modules or sections of code. Any extra credit work should be explicitly documented. This section should also include directions on the compilation and execution of your program.

This should include a section called Status: Elements of the assignment that do not work should be well documented here. If some assigned element of your program does not work and you fail to document this, you could lose double the points for this than you would have otherwise.

You may wish to write all this information into a separate README file. This should be done especially when the program has multiple source code files.

5 Meaningful Identifier Names: Identifier names should indicate their purpose. Names should be words separated using capitalization, such as gradesSum. Short loops of ~ 5 lines can use loop counter variables such as i or j.
10 Comments. Every function must have a short description stating the purpose of the function, what it receives, and what it returns. Comments should be easily identifiable. I should be able to understand your program by reading only the comments. Also include a header at the top of your program (see example below) that must include lab day and TA name.
5 Decomposition: A segment of code that appears more than once should be extracted to form a separate method (in Java) or function (in C). Methods/Functions should be no longer than around 50 lines. Objects are used appropriately.
5 Appropriate data and control structures: Global variables should be avoided and used only when necessary. Method/Function parameters should be used instead. Appropriate looping and decision structures used.
5 Code Layout: Different nested levels should have different indentation, where statements at the same level should have the same indentation. Indent at least 3 spaces. Use either spaces or tabs consistently.