Grading Rubric for CS 111 C++ Assignments: Grading First and foremost the program should meet its specifications. 45% It should be well-designed. 15% This includes well-designed classes of objects, cohesive functions, appropriate data structures, minimal use of global variables, effective use of parameters, etc. Style and Readability 15% Programs are written not just to be run, but also for others to read. Pity the poor maintenance program who is going to have to read and decipher your work 4 years from now. Make this person's job easier through good use of indentation, spacing, descriptive identifiers, and general neatness. Documentation 15% If you provide good documentation, that maintenance programmer is going to bless you, not curse you! There is both internal and external documentation. The internal documentation is contained within the program file(s) and includes a description at the top giving the inputs, overall processing, and outputs of the program. It also includes a comment section for each function, listing what is being passed into it via the parameters, what the function's main task is, and what values are being passed back out via the parameters or function name. (For object-oriented programming, the implicit object is also used to send values in and out.) Internal documentation also includes a description of each user-defined class. External documentation is separate from the program and may consist of items like the specifications, various charts, record of testing, etc. In our course, external documentation is only to be turned in if explicitly asked for. Efficiency 10% Don't needlessly waste computer time or memory space. In particular, don't waste a lot of it. If there is a tradeoff between efficiency and a clear design, having a clear design is probably better (unless we would waste a lot of time or space to get it).