Model Grading Rubric

From Coder Merlin
Revision as of 08:54, 25 March 2022 by Chukwuemeka-tinashe (talk | contribs) (Added Long Island Rubric)
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder

About Rubrics[edit]

A rubric is a tool that highlights what is required for the successful completion of a mission. It is designed to ensure that you have a clear understanding of what you must do to succeed on the mission, and it provides your guide with a concrete method to evaluate your work. Rubrics also ensure that guides are grading fairly by looking for the same elements across all the submissions for a particular mission. You should review any supporting rubrics before you begin work.

Long Beach Rubric[edit]

Trait Exceptional Proficient Developing Inevident
Specifications The program works and meets all of the specifications. The program works and produces the correct results and displays them correctly. It also meets most of the other specifications. The program produces correct results but does not display them correctly. The program is producing incorrect results.
Readability The code is exceptionally well organized and very easy to follow. The code is fairly easy to read. The code is readable only by someone who knows what it is supposed to be doing. The code is poorly organized and very difficult to read.
Reusability The code could be reused as a whole or each routine could be reused. Most of the code could be reused in other programs. Some parts of the code could be reused in other programs. The code is not organized for reusability.
Documentation The documentation is well written and clearly explains what the code is accomplishing and how. The documentation consists of embedded comments and some simple header documentation that is somewhat useful in understanding the code. The documentation is simply comments embedded in the code with some simple header comments separating routines. The documentation is simply comments embedded in the code and does not help the reader understand the code.
Delivery The program was delivered on time. The program was delivered within a week of the due date. The code was delivered within two weeks of the due date. The code was more than two weeks overdue.
Efficiency The code is extremely efficient without sacrificing readability and understanding. The code is fairly efficient without sacrificing readability and understanding. The code is brute force and unnecessarily long. The code is huge and appears to be patched together.

Source: Computer Science Rubric (California State University Long Beach)

Long Island Rubric[edit]

Trait Exceptional Proficient Developing Inevident
Syntax
Ability to understand and follow the rules of the programming language.
Program compiles and contains no evidence of misunderstanding or misinterpreting the syntax of the language. Program compiles and is free from major syntactic misunderstandings, but may contain non-standard usage or superfluous elements. Program compiles, but contains errors that signal misunderstanding of syntax – such as the semi- colon in if(exp);{} Program does not compile or (in a dynamic language) contains typographical errors leading to undefined names.
Logic
Ability to specify conditions, control flow, and data structures that are appropriate for the problem domain.
Program logic is correct, with no known boundary errors, and no redundant or contradictory conditions. Program logic is mostly correct, but may contain an occasional boundary error or redundant or contradictory condition. Program logic is on the right track with no infinite loops, but shows no recognition of boundary conditions (such as<vs.<=) Program contains some conditions that specify the opposite of what is required (less than vs. greater than), confuse Boolean AND/OR operators, or lead to infinite loops.
Correctness
Ability to code formulae and algorithms that reliably produce correct answers or appropriate results.
Program produces correct answers or appropriate results for all inputs tested. Program produces correct answers or appropriate results for most inputs. Program approaches correct answers or appropriate results for most inputs, but can contain miscalculations in some cases. Program does not produce correct answers or appropriate results for most inputs.
Completeness
Ability to apply rigorous case analysis to the problem domain.
Program shows evidence of excellent case analysis, and all possible cases are handled appropriately. Program shows evidence of case analysis that is mostly complete, but may have missed minor or unusual cases. Program shows some evidence of case analysis, but may be missing significant cases or mistaken in how to handle some cases. Program shows little recognition of how different cases must be handled differently.
Clarity
Ability to format and document code for human consumption.
Program contains appropriate documentation for all major functions, variables, or non-trivial algorithms. Formatting, indentation, and other white space aids readability. Program contains some documentation on major functions, variables, or non-trivial algorithms. Indentation and other formatting is appropriate. Program contains some documentation (at least the student’s name and program’s purpose), but has occasionally misleading indentation. Program contains no documentation, or grossly misleading indentation.
Modularity
Ability to decompose a problem into coherent and reusable functions, files, classes, or objects (as appropriate for the programming language and platform).
Program is decomposed into coherent and reusable units, and unnecessary repetition has been eliminated. Program is decomposed into coherent units, but may still contain some unnecessary repetition. Program is decomposed into units of appropriate size, but they lack coherence or reusability. Program contains unnecessary repetition. Program is one big function or is decomposed in ways that make little sense.

Source: Computer Science Rubric (Long Island University)