Problem	Scoring	Rubric	briscob1	davidsjr	fowlera1	gishbd	hant1	harreln	hornecg	hoy	jacobsse	kellerns	lih2	lix10	max	mutchlam	mutchldk	niz1	omoteso	plutajm	rockentj	rostrodj	taylorz1	wangh6	wilkinjf	xiy	xut1	yaoq	zhongs		
testProblem1a																															
Points available:	15	Not yet graded																													
	-15	Has no tests.  [A call to problem1a whose expected result is NOT shown is NOT a test.]																													
	-10	Fails to include a test other than ones that we supplied.  [A call to problem1a  whose expected result is either not shown or does not appear to have been computed by hand is NOT a test.]	0		0	-10	0				-10	0	-10	-10						-10					-10						
	-10	"Fails to include at least 4 additional tests (beyond the one that they devised).  These tests can be either ours, or tests of their own whose expected result could reasonably have been computed by hand).  [-1 for one missing test (presumably an oversight), -3 for each additional missing test.]"																													
	-3	"All tests are weak tests.  [Our tests are NOT weak, so they cannot lose these points if they use our tests.]"																													
	0	"See me re:  why the ""test"" that you supplied is not really a test."																													
	0	"Don't put code ABOVE the green doc-string.  That will cause the DOT trick to fail sometimes.  Instead, just minimize the green doc-string.  See me for details."																													
	0	"See me for why saying ""approximately"" is wrong here."																													
	0	"See  me re:  When we supply strong tests (as here), be sure to include them."															0														
	0	See me re:																													
		Points earned (of 15) on testProblem1a	15	15	15	5	15	15	15	15	5	15	5	5	15	15	15	15	15	5	15	15	15	15	5	15	15	15	15		
																															
problem1a																															
Points available:	10	Not yet graded																													
	-10	Way off																													
	-2	Range is off by 1																													
	-5	"Range is wrong (that is, it is off by more than 1)"																													
	-2	Argument to is_prime is off by 1																													
	-5	"Argument to is_prime is wrong (that is, it is off by more than 1)"																													
	-5	Summing is wrong [but only -3 if the only error is failing to initialize to 0]																													
	-3	IF statement is wrong																													
	-3	Fails to return a value (or returns a wrong value with all else correct)																													
	0	See me re:  Reassigns a parameter																													
	0	See me re: uses sum as a variable name					0																				0				
	0	"See me re:  Uses uninformative variable names (that is, names that fail to suggest their purpose).  (Note: loop variables that are single letters are fine.)"																													
	0	See me re:  Uses variable names that begin with an upper-case letter (bad) or use camelCase (violates style)																													
	0	See me re: extra blank lines																													
	0	See me re: ELSE that does nothing													0						0								0		
	0	See me re:  any other warning message																													
	0	See me re:  wildly unnecessary parentheses																													
	0	"See me re:  Range does not include 5**p, do you see why it works anyway?"																													
	0	Your PyDev settings are not PyDev120 settings.  That is causing you to violate many of our code standards.  See me so that I can help you fix this (it's easy).																													
	0	"See me re:  overuse of internal comments, and why that may be bad"											0																		
	0	See me re:  You used IS correctly.  Do you know when you must NOT use IS?																													
	0	See me re:  unnecessary == True	0		0	0	0			0	0	0	0	0			0	0			0		0		0		0		0		
	0	See me re wrongly testing preconditions									0		0							0											
	0	See me re:																													
		Points earned (of 10) on problem1a	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10	10		
																															
problem1b																															
Points available:	5	Not yet graded																													
	-5	Way off																													
	-5	Fails to return a value																													
	-3	Returns strings instead of booleans																													
	-3	Reverses True/False in the return statement(s)																													
	-2	Returns True if the sum is ODD (instead of PRIME)																									-2				
	-2	Fails to call problem1a	-2			-2		-2	-2		-2				-2		-2				-2		-2				-2		-2		
	-2	"Passes all the tests, but uses a loop unnecessarily"																													
	-2	"Passes all the tests, but uses something else extraneous to the problem"																													
	-1	"Passes all the tests, but uses IF .. IF (instead of IF .. ELSE)."																													
	1	"Returns a boolean expression (i.e., is correct without using an IF..) [BONUS point]"	1			1								1		1		1	1		1	1		1		1		1			
	0	See me re:  Uses IF-ELSE instead of just returning a boolean expression		0	0		0	0	0	0	0	0	0		0		0			0			0		0		0		0		
	0	See me re:  Uses if … return    … .return  pattern instead of if…else…							0																0						
	0	See me re:  any warning message																													
	0	See me re:																													
		Points earned (of 5) on problem1b	4	5	5	4	5	3	3	5	3	5	5	6	3	6	3	6	6	5	4	6	3	6	5	6	1	6	3		
																															
problem1c																															
Points available:	10	Not yet graded																													
	-10	Way off																													
	-2	Range is off by 1																													
	-5	"Range is wrong (that is, it is off by more than 1)"																													
	-1	Argument to is_prime is off by 1																													
	-1	Argument to is_palindromeis off by 1																													
	-1	Calculation of the product is INSIDE a loop (needlessly)																									-1				
	-5	"Counting for is_prime is wrong (that is, not merely off-by-one)"																													
	-5	"Counting for is_palindrome is wrong (that is, not merely off-by-one)"																													
	-3	Fails to return a value (or returns a wrong value with all else correct)																													
	0	See me re:  Reassigns a parameter																													
	0	See me re: uses sum as a variable name																													
	0	"See me re:  Uses uninformative variable names (that is, names that fail to suggest their purpose).  (Note: loop variables that are single letters are fine.)"																													
	0	See me re:  Uses variable names that begin with an upper-case letter																													
	0	See me re: extra blank lines																													
	0	See me re: ELSE that does nothing													0						0								0		
	0	See me re use of ELIF in a two-case scenario																			0										
	0	See me for discussion of your unnattural IF… structure																					0								
	0	See me re:  any warning message																													
	0	See me re:  unwise to treat True as 1 and False as 0																													
	0	See me re:  why you should NOT test whether m <= n (or whether m and n are positive) and you MUST NOT print anything									0																				
	0	"Nice internal testing.  See me re leaving behind testing code (it is fine with me, but some would complain if in production code)."																													
	0	See me re:  Your total = … does NOT belong inside the loop.  Do you see why you passed the tests anyway?																													
	1	Particularly nice choice of variable names for the two sums															1														
	0	See me re:																													
		Points earned (of 10) on problem1c	10	10	10	10	10	10	10	10	10	10	10	10	10	10	11	10	10	10	10	10	10	10	10	10	9	10	10		
																															
problem2																															
Points available:	20	Not yet graded																													
	-20	Way off																													
	-15	"Fails to use the parameters (instead, uses a particular circle and rectangle)"																													
	-4	Given rectangle does not appear																													
	-4	Given circle does not appear																													
	-4	Given circle appears but its fill color is wrong (should be the rectangle's outline color)																									-4				
																															
		"The line from center to center is wrong, in any of the following ways (max of -8 for errors on this line)"																													
	-8	Way off																													
	-2	Uses a tuple where an rg.Line or rg.Point is required																													
	-5	Wrong locations for one or both endpoints (should be from center or circle to center of rectangle)																													
	-1	Wrong color (should be red)																									-1				
	-1	Wrong thickness (should be 10)																													
	-1	Fails to attach it																													
	-1	Wrongly includes an arrow (or any such extra feature)				-1																									
		Sum of errors (if any) on the line from center to center	0	0	0	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	-1	0	0		
																															
		"The vertical line is wrong, in any of the following ways (max of -8 for errors on this line)"																													
	-8	Way off																													
	-2	Uses a tuple where an rg.Line or rg.Point is required																													
	-5	Wrong locations for one or both endpoints (should be vertical and divides the rectangle in half)																													
	-2	Wrong thickness (should be same as rectangle's outline thickness)																													
	-1	"Wrongly includes an arrow (or any such extra feature, e.g. red color)"				-1																									
	-1	Fails to attach it																													
		Sum of errors (if any) on the vertical line	0	0	0	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0		
																															
	-1	"Constructs the line from center to center, but fails to attach it"																													
	-1	"Constructs the vertical line, but fails to attach it"																													
	-4	Fails to render the window (or renders at a wrong point)																													
	-4	Draws extra items																													
	-4	Uses a loop needlessly																													
	-1	Returns a value (other than None)																													
	0	Has continue_on_mouse_clicks (where none were specified)				0																									
	0	See me re:  any warning message																													
	0	See me re:  Uses variable names that begin with an upper-case letter (bad) or use camelCase (violates style)																													
	0	See me re:  Break long lines at commas																													
	0	See me re:  Judicious use of white space can help clarify code		0	0																		0				0				
	0	See me re:  using line and lion as variable names is asking for trouble!																													
	0	See me re whether circle.center.x is clearer than making various local variables.																			0										
	0	See me re:																													
		Points earned (of 20) on problem2	20	20	20	18	20	20	20	20	20	20	20	20	20	20	20	20	20	20	20	20	20	20	20	20	15	20	20		
																															
problem3																															
Points available:	15	Not yet graded																													
	-15	Way off																													
	-10	"Fails to use the parameters (instead, uses a particular x, y, n or color)"																													
	-1	Top point is at the wrong place or does not appear				-1																									
	-1	Bottom point is at the wrong place or does not appear				-1																									
																															
		"The lines are wrong, in any of the following ways (max of -13 for errors on the lines)"																													
	-13	Way off																													
	-2	Number of lines is off by 1 or 2	-2																												
	-8	"Number of lines is wrong (that is, it is off by more than 2)"																													
	-8	One or more left endpoints are wrong																													
	-3	"Right endpoints are vertical and very close to correct (but not quite correct, e.g. an off-by-one error)"			-3	-3											-3		-3		-3				-3		-3				
	-6	"Right endpoints are vertical but not very close to correct (i.e., "																													
	-9	Right endpoints are otherwise wrong																													
	-4	Thicknesses are wrong [but only -1 for an off-by-one error]	-1		-1												-4										-1				
	-2	Colors are wrong																													
		Sum of errors (if any) on the lines	-3	0	-4	-3	0	0	0	0	0	0	0	0	0	0	-7	0	-3	0	-3	0	0	0	-3	0	-4	0	0		
																															
	-3	Fails to render the window (or renders at a wrong point)																													
	-3	Draws extra items (other than extra lines)																													
	-3	Fails to attach things (but otherwise correct)																													
	-1	Returns a value (other than None)																													
	0	See me re:  Draws the same line more than once											0																		
	0	See me re:  Attaches the points INSIDE the loop (which is inefficient)												0																	
	0	See me re:  any warning message																													
	0	See me re:  Uses variable names that begin with an upper-case letter (bad) or use camelCase (violates style)																													
	0	See me re:  How best to handle time issues on future tests.																													
	0	See me re:  Thanks for the comment on problem 3.  It saved you 3 points (would have been -6 without the comment).																													
	0	See me re:  When to render INSIDE the loop and when AFTER the loop.																													
	0	See me re:  Using underscore as a variable INSIDE the loop																													
	0	"See me re:  overuse of internal comments, and why that is bad"																													
	0	See me re:  NEVER reassign a parameter to a new value.  It bit you here!																							0						
	0	"See me re:  Avoid expressions like 1 * k  that can be written more simply (here, just k)."																									0				
	0	See me re:																													
		Points earned (of 15) on problem3	12	15	11	10	15	15	15	15	15	15	15	15	15	15	8	15	12	15	12	15	15	15	12	15	11	15	15		
																															
		Total (of 75) on the on-the-computer part of the test	71	75	71	57	75	73	73	75	63	75	65	66	73	76	67	76	73	65	71	76	73	76	62	76	61	76	73		
		Total (of 25) on the paper-and-pencil part of the test	21.5	22.5	24	24.5	25	25	25	23.5	23	25	24	25	24	25	19	25	20	25	24	19	23	25	17	25	13	25	24		
		Total (of 100) on the test	92.5	97.5	95	81.5	100	98	98	98.5	86	100	89	91	97	101	86	101	93	90	95	95	96	101	79	101	74	101	97		
																															
		Time for paper and pencil part																													
		Time for entire exam (of 120 + 30 grace = 150)																													
																															
		"For the on-the-computer part:  Mean, Standard Deviation, Median, Max, Min"	71	6	73	76	57																								
		"For the paper-and-pencil part:  Mean, Standard Deviation, Median, Max, Min"	23	3	24	25	13																								
		"For the total:  Mean, Standard Deviation, Median, Max, Min"	94	7	96	101	74