The rubric provides criteria for evaluating computer programs across multiple levels of proficiency. It assesses programs on 7 dimensions: syntax, logic, correctness, completeness, clarity, modularity, and documentation. For each dimension, it describes the characteristics of work that would receive a score of 1 (beginning), 2 (approaching proficiency), 3 (proficient), or 4 (advanced). The rubric can be used to evaluate programming assignments in various computer science courses.
The rubric provides criteria for evaluating computer programs across multiple levels of proficiency. It assesses programs on 7 dimensions: syntax, logic, correctness, completeness, clarity, modularity, and documentation. For each dimension, it describes the characteristics of work that would receive a score of 1 (beginning), 2 (approaching proficiency), 3 (proficient), or 4 (advanced). The rubric can be used to evaluate programming assignments in various computer science courses.
Can be adapted for assignments to produce software artifacts in CS102, 117, 120, 130, 155, 156, 161, 164, 601, 631, 653, 673, 690, and others. As stated on AAC&U VALUE rubrics, “evaluators are encouraged to assign a zero to any work…that does not meet beginning (cell one) level performance.” Advanced Proficient Approaching Proficiency Beginning 4 3 2 1 Syntax Program compiles and Program compiles and is Program compiles, but Program does not compile Ability to understand and contains no evidence of free from major syntactic contains errors that signal or (in a dynamic language) follow the rules of the misunderstanding or misunderstandings, but misunderstanding of contains typographical programming language. misinterpreting the syntax may contain non-standard syntax – such as the semi- errors leading to undefined of the language. usage or superfluous colon in if(exp);{} names. elements. Logic Program logic is correct, Program logic is mostly Program logic is on the Program contains some Ability to specify with no known boundary correct, but may contain right track with no infinite conditions that specify the conditions, control flow, errors, and no redundant an occasional boundary loops, but shows no opposite of what is and data structures that are or contradictory error or redundant or recognition of required (less than vs. appropriate for the conditions. contradictory condition. boundary conditions (such greater than), confuse problem domain. as < vs. <=) Boolean AND/OR operators, or lead to infinite loops. Correctness Program produces correct Program produces correct Program approaches Program does not produce Ability to code formulae answers or appropriate answers or appropriate correct answers or correct answers or and algorithms that results for all inputs tested. results for most inputs. appropriate results for appropriate results for reliably produce correct most inputs, but can most inputs. answers or appropriate contain miscalculations in results. some cases. Advanced Proficient Approaching Proficiency Beginning 4 3 2 1 Completeness Program shows evidence Program shows evidence Program shows some Program shows little Ability to apply rigorous of excellent case analysis, of case analysis that is evidence of case analysis, recognition of how case analysis to the and all possible cases are mostly complete, but may but may be missing different cases must be problem domain. handled appropriately. have missed minor or significant cases or handled differently. unusual cases. mistaken in how to handle some cases. Clarity Program contains Program contains some Program contains some Program contains no Ability to format and appropriate documentation documentation on major documentation (at least the documentation, or grossly document code for human for all major functions, functions, variables, or student’s name and misleading indentation. consumption. variables, or non-trivial non-trivial algorithms. program’s purpose), but algorithms. Formatting, Indentation and other has occasionally indentation, and other formatting is appropriate. misleading indentation. white space aids readability. Modularity Program is decomposed Program is decomposed Program is decomposed Program is one big Ability to decompose a into coherent and reusable into coherent units, but into units of appropriate function or is decomposed problem into coherent and units, and unnecessary may still contain some size, but they lack in ways that make little reusable functions, files, repetition has been unnecessary repetition. coherence or reusability. sense. classes, or objects (as eliminated. Program contains appropriate for the unnecessary repetition. programming language and platform).