All point values are approximate and may vary assignment to assignment. This rubric is meant to give students a rough understanding of what they will be graded on each week. Most assignments are worth 20 points.
Approximately 11/20 points.
A large portion of your grade on the assessment comes from just looking at the behavior of your program using the client program provided. If it externally behaves the way we describe in the specification, you will be awarded full points.
|Given Test Cases (Specification Examples, Output Comparison Tool)||7||Output Comparison Tool||A large part of each assignment is your program behaving in the way that we define in the specification. For each assignment, we will provide test cases on the online output comparison tool. You should use the client program we provide and check that your output exactly matches the expected output. There may also be additional examples in the specification that you can check against manually.|
|Works in all cases described in specification (Extra cases)||4||See specification details for specific assignment||There will be additional cases that your program will be tested on to ensure your program is robust and follows the expected behavior as detailed in the specification. It is up to you to follow the spec closely and make sure you think about the edge cases described there.|
Internal Correctness (Code Quality)¶
Approximately 9/20 points.
The remaining points of the assignment will be based on the quality of the code that you write. We will provide resources and teach good coding practices throughout lecture and section. We put emphasis on code quality in this class because it’s a very important skill to learn early while learning to code.
In most industries, just getting something “done” is not sufficient. A bridge constructed by a an engineer that’s “done”, but not “done well” could cause serious harm or loss of life. An article written by a journalist that’s “done” but not “done well” could cause confusion, or worse, spread misinformation. Software is an ever-expanding influence in our day-to-day lives, and we would hope that the most important software that effects us is not just “done”, but also “done well”.
One important thing to keep in mind is that the audience of your program is not the computer, but in fact yourself or other programmers. If the audience were the computer, we would just write in the 0s and 1s the computer natively understands. But we don’t write programs for the computer. The program is instructions the computer runs, but we write the program in a human-readable language so that you or your colleagues can understand what computations you are trying to do. A program written with good style makes it easier for humans to read and understand what is going on, and it makes it easier to right correct code without bugs in the first place.
|Exceptions||2||See Specification for all exception to the be thrown||Throughout the assignments, some methods you implement are expected to throw certain exceptions in specific cases. Because the output comparison tool does not test these, it is up to you to ensure that you are throwing the correct exceptions in the correct cases. You can do so by creating your own testing programs.|
|Documentation||2||CSE 143 Commenting Guide||You are expected to provide meaningful comments describing behavior, exceptions, returns and parameters for all methods (including private methods), without revealing implementation details.|
|Assignment Specific Style Considerations||3||Assignment Specification, CSE 143 Code Quality Guide, Code Quality Highlights||Each assignment will be introducing new coding constructs. Part of the rubric will be looking specifically at whether or not proper style is used when implementing those coding constructs. The specification will often give guidance and the other online resources will often document what is expected.|
|Otherwise Good Style||2||CSE 143 Code Quality Guide, Code Quality Highlights||There will be points awarded students who consistently follow all other style guidelines that we mention in lecture/section and are detailed in the resources linked|