Programming Assignment Rubric
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

 
View only
 
 
Still loading...
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Criterion
Approx. % of Grade
Excellent (100%)Adequate (80%)Poor (60%)Not Met (0%)
2
Program Specifications / Correctness50%No errors, program always works correctly and meets the specification(s).Minor details of the program specification are violated, program functions incorrectly for some inputs.Significant details of the specification are violated, program often exhibits incorrect behavior.Program only functions correctly in very limited cases or not at all.
3
Readability20%No errors, code is clean, understandable, and well-organized.Minor issues with consistent indentation, use of whitespace, variable naming, or general organization.At least one major issue with indentation, whitespace, variable names, or organization.Major problems with at three or four of the readability subcategories.
4
Documentation20%No errors, code is well-commented.One or two places that could benefit from comments are missing them or the code isoverly commented.File header missing, complicated lines or sections of code uncommented or lacking meaningful comments.No file header or comments present.
5
Code Efficiency5%No errors, code uses the best approach in every case.N/ACode uses poorly-chosen approaches in at least one place.Many things in the code could have been accomplished in an easier, faster, or otherwise better fashion.
6
Assignment Specifications5%No errorsN/AMinor details of the assignment specification are violated, such as files named incorrectly or extra instructions slightly misunderstood.Significant details of the specification are violated, such as extra instructions ignored or entirely misunderstood.
7
8
Program Specifications / Correctness
9
This is the most important criterion. A program must meet its specifications and function correctly. This means that it behaves as desired, producing the correct output, for a variety of inputs. This criterion includes the need to meet specifications by writing a program in a particular way or using a particular language feature, if such a thing is mentioned in the problem.
10
11
Readability
12
Code needs to be readable to both you and a knowledgeable third party. This involves:
13
14
Using indentation consistently (e.g., every function's body is indented to the same level)
15
16
Adding whitespace (blank lines, spaces) where appropriate to help separate distinct parts of the code (e.g., space after commas in lists, blank lines between functions or between blocks of related lines within functions, etc.)
17
18
Giving variables meaningful names. Variables named A, B, and C or foo, bar, and baz give the reader no information whatsoever about their purpose or what information they may hold. Names likeprincipal, maximum, and counter are much more useful. Loop variables are a common exception to this idea, and loop variables named i, j, etc. are okay.
19
20
The code should be well organized. Functions should be defined in one section of the program, code should be organized into functions so that blocks of code that need to be reused are contained within functions to enable that, and functions should have meaningful names. This is a concept that we will be learning about as we write more and more code in CS 127, and so few points, if any, will be taken off for organization issues that we have not yet addressed in class.
21
22
Documentation
23
All code should also be well-commented. This requires striking a balance between commenting everything, which adds a great deal of unneeded noise to the code, and commenting nothing, in which case the reader of the code (or you, when you come back to it later) has no assistance in understanding the more complex or less obvious sections of code. In general, aim to put a comment on any line of code that you might not understand yourself if you came back to it in a month without having thought about it in the interim.
24
25
Code Efficiency
26
There are often many ways to write a program that meets a particular specification, and several of them are often poor choices. They may be poor choices because they take many more lines of code (and thus your effort and time) than needed, or they may take much more of the computer's time to execute than needed. For example, a certain section of code can be executed ten times by copying and pasting it ten times in a row or by putting it in a simple for loop. The latter is far superior and greatly preferred, not only because it makes it faster to both write the code and read it later, but because it makes it easier for you to change and maintain.
27
28
Assignment Specifications
29
Assignments will usually contain specifications and/or requirements outside of the programming problems themselves. For example, the way you name your files to submit them to the course website will be specified in the assignment. Other instructions may be included as well, so please read the assignments carefully.
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Loading...
 
 
 
Sheet1