04 Prove : Assessment Guidelines
Overview
This document outlines the guidelines for instructors and teaching assistants to use as they assess the assignment. It is intended to give structure and guidance to the grading process to ensure that the most important components of the assignment are highlighted, and to promote consistency across sections.
In all cases, the instructor has the latitude to deviate from this rubric on a case-by-base basis to provide the holistic assessment that, in their judgment, best matches the assignment.
Fundamental Concepts
This assignment is designed to highlight the following fundamental concepts:
Cohesion of classes - Each class should be responsible for its members and not for anything else.
Reuse of same-class methods - Method x in the class should make use of method y where possible to avoid code duplication.
Reuse of sub-class methods - Wherever possible the outer class should call inner class methods to accomplish a task, rather than duplicating the logic.
Scoring
The following categories are used to score this assignment:
/20 - Product Class /30 - Order Class /30 - Customer Class /10 - Use of multiple files. /10 - Style ---- /100 - Total
Classes
For each of the classes, the points should reflect both functionality and the design of the class. For each class, use the following guidelines:
100% (20/20 or 30/30) - The functionality of the class is perfect (matches testBed exactly), and the design is excellent.
95% (19/20 or 28/30) - Minor formatting errors exist in the output (e.g., whitespace, newlines, etc.), but the values produced are otherwise correct.
85% (17/20 or 25/30) - All important concepts are present, but a minor error exists in either the functionality or the design. Examples include:
Incorrect calculations/values
Duplication of code rather than making use of an existing method.
70% (14/30 or 21/30) - A more fundamental error exists. Examples include:
Not looping through a list of child objects (e.g., the program assumes only 3 elements and references them directly self.products[0]).
Missing methods/functionality.
50% (10/20 or 15/30) - The class has been created, correct member variables are present, but little to no functionality is present.
25% (5/20 or 7/30) - An empty class has been created.
Use of Multiple Files
This assignment should make use of multiple files:
100% (10/10) - Multiple files used correctly.
50% (5/10) - An attempt was made to use files, but errors exist.
0% (0/10) - The program was all in a single file.
Style
In general, the program should use descriptive variable/method names, have class/function headers, and occasional in-line comments. Consider the following points associated with these:
Variable/method naming. -1 for slight problems such as abbreviations that should be spelled out. -3 for more fundamental problems.
Single variable names are acceptable for a short-lived variable, such as
for p in self.products:Class/method headers. -2 if missing completely, -1 if many are present, but many are missing.
In-line comments. -2 if no in-line comments exist at all.