Functional Problem Solving (CSC 151 2016S) : Assignments

Grading Your Project


Introduction

Your grade will be based on your statements, your code, and your success in combining multiple techniques. The final assessment will be based on the following rubric.

Project Rubric

Table 1. Grading Rubric

CriterionExcellentGoodSatisfactoryNeeds WorkNot Attempted 
Proposal design statementThe proposed design statement is complete and accurate.5The design statement makes excellent use of design terminology to explain the intended effects of the images on the viewer, addressing both color and composition.4The design statement uses design terminology correctly and justifies the most important aspects of the design.3The design statement makes some mistakes in using design terminology or fails to discuss some important aspects of the design.2The design statement does not use appropriate terminology or does not accurately describe the images.0 
Proposal technique statementThe proposed technique statement completely and accurately describes the algorithmic techniques used.10The statement completely and accurately describes the algorithm, clearly indicating the three (or more) techniques used. The statement persuades the reader that the procedure produces 1000 distinct images.9The statement accurately describes the algorithms used but leaves a question or two remaining. The statement is somewhat persuasive that the procedure produces 1000 distinct images and uses 3 distinct techniques. 8The statement has some minor inaccuracies or raises several questions. There is some attempt to argue that the procedure produces 1000 distinct images and uses at least 3 techniques.6The statement is significantly incomplete and/or inaccurate. The statement does not argue that the code meets the project specifications.0 
Final design statementThe revised design statement is complete and accurate.5The design statement makes excellent use of design terminology to explain the intended effects of the images on the viewer, addressing both color and composition.4The design statement uses design terminology correctly and justifies the most important aspects of the design.3The design statement makes some mistakes in using design terminology or fails to discuss some important aspects of the design.2The design statement does not use appropriate terminology or does not accurately describe the images.0 
Final technique statementThe proposed technique statement completely and accurately describes the algorithmic techniques used.5The statement completely and accurately describes the algorithm, clearly indicating the three (or more) techniques used. The statement persuades the reader that the procedure produces 1000 distinct images.4The statement accurately describes the algorithms used but leaves a question or two remaining. The statement is somewhat persuasive that the procedure produces 1000 distinct images and uses 3 distinct techniques. 3The statement has some minor inaccuracies or raises several questions. There is some attempt to argue that the procedure produces 1000 distinct images and uses at least 3 techniques.2The statement is significantly incomplete and/or inaccurate. The statement does not argue that the code meets the project specifications.0 
Procedure signatureThe image-series procedure takes an integer (0 through 999) as a parameter, along with a width and height, and produces an image of the correct size.5The procedure has the correct signature and name.4The procedure has the correct signature but a different name.3The procedure takes the correct parameters but does not produce a new image.2The procedure does not take the specified parameters.0 
Image distinctivenessThe procedure generates at least 1000 distinct images.15The procedure generates at least 1000 distinct images.13Images for nearby values of n are very similar, but distinct upon close inspection.11A few values of n produce images that are indistinguishable from each other.8Some values of n result in errors, or many values of n result in indistinguishable images.0 
Image reproducibilityThe images are reproducible and vary based solely on n.5The images are reproducible.    2The images are not reproducible, e.g., due to the use of random numbers. 0 
Image scalabilityThe technique scales and stretches appropriately. That is, larger images look similar to smaller images for the same value of n.15Scaling is nearly perfect for all reasonable sizes; any differences are due to fixed brush sizes or rounding error at the pixel level.13The image mostly scales and stretches correctly but has one or two minor discrepancies.11Although there is an attempt at scalability, some element of the image obviously does not scale or stretch correctly.8Although there is an attempt at scalability, several elements of the image obviously do not scale or stretch correctly. 0 
Algorithmic techniquesThe project uses at least three distinct techniques for generating images.15The project develops new techniques or is particularly creative in its combination of three or more existing techniques.13The project uses a novel combination and elaboration of three or more existing techniques.11The project uses three techniques but does not introduce any new ideas. The project images may resemble work for a prior homework assignment.8The project uses only one or two techniques.0 
Code qualityThe code is elegant, concise, and efficient.10The code is nearly flawless in conciseness and efficiency, or impressive in its elegance.9The code has a few minor problems with conciseness or efficiency.8The code has one significant problem with efficiency or several problems with conciseness.6The project has significant problems with conciseness and efficiency.0 
Code readabilityThe code is well-documented and easy to understand.10All procedures are documented with 6Ps. Procedure, parameter, and variable names are crystal clear. Code is correctly formatted. Short comments explain the purpose of expressions that might otherwise be unclear.9All procedures are documented with the 6Ps and there may be a few internal comments where needed. Procedure, parameter, and variable names are mostly clear. Code is formatted correctly. 8Most procedures are documented with the 6Ps. Procedure, variable, and parameter names are at least suggestive. Formatting is mostly correct.6There is little documentation. Much of the code is incorrectly formatted. Several procedures, variables, or parameters have opaque or meaningless names.0