Difference between revisions of "Model Grading Rubric"
From Coder Merlin
(Provide explanation of a rubric) |
(Added Long Island Rubric) |
||
Line 2: | Line 2: | ||
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. | 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 == | |||
{| class="wiki table" | {| class="wiki table" | ||
! Trait | ! Trait | ||
Line 46: | Line 47: | ||
|} | |} | ||
Source: [https://assessment.fiu.edu/resources/rubrics-and-curriculum-maps/_assets/rubrics/Computer%20Programming%20Grading%20Rubric%20-%20California%20State%20University%20Long%20Beach.pdf Computer | Source: [https://assessment.fiu.edu/resources/rubrics-and-curriculum-maps/_assets/rubrics/Computer%20Programming%20Grading%20Rubric%20-%20California%20State%20University%20Long%20Beach.pdf Computer Science Rubric] (California State University Long Beach) | ||
== Long Island Rubric == | |||
{| class="wiki table" | |||
! Trait | |||
! Exceptional | |||
! Proficient | |||
! Developing | |||
! Inevident | |||
|- | |||
| '''Syntax'''<br/>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'''<br/>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'''<br/>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'''<br/>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'''<br/>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'''<br/>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: [https://liucs.net/cs102f15/programming-rubric.pdf Computer Science Rubric] (Long Island University) |
Revision as of 08:54, 25 March 2022
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)