Every programming assignment will have its own particular rubric and point values, but here is a general idea of what to expect:
- 25 points: submitted and compiles
- 25 points: satisfactory scope
- 25 points: good scope
- 10 points: testing
- 10 points: code quality
- 5 points: excellent scope
(Note: see each assignment handout for the actual point values. Those shown above are only for example.)
The first 25 points are for correctly submitting and compiling: your
submitted solution must be the code you intended to submit, and it must
compile, both on its own, and against the staff test suite. That is why
it is critical that your code passes
make check, as described in the
assignment handouts. Why are we so insistent on this? First, because
not “breaking the build” is a core value of programmers.
Second, because you are part of a learning community: expecting TAs to
fix your code means asking other members of your community to do work
that was actually your responsibility. Any kind of manual adjustment of
code that is necessary to grade it may fall under this category, whether
it strictly relates to compilation or not.
So, what happens if your submitted code does not compile? If the graders are able to quickly fix it, you probably will receive some penalty based on how much syntax they had to change. Then, your code will receive whatever grade it gets based on that change. Regrade requests and appeals are highly unlikely to be granted based on what changes you wish the grader had made: be careful what code you submit. If it’s not a quick change, you probably will receive a score of 0. If that happens, you may resubmit a revised version of your code, but you will lose all 25 points.
Similarly, suppose you submit the wrong version of your code (including accidentally submitting the unmodified release code), or you take advantage of the automatic 48 hour extension yet fail to submit before that final deadline. Then you will have to contact your TA to ask them to manually handle your submission, and you will lose all of the points devoted to “submitted and compiles.”
The next 50 points or so are for the satisfactory and good levels of scope. These are the functionality that we hope everyone completes as part of an assignment. Nonetheless, if you are struggling or are out of time, focus on completing just the satisfactory scope. You are likely to still pass the class at that point, as long as your exam scores are also okay.
The next 20 points are for testing and code quality. You can tell from the fact that this is worth 20% of the assignment that we place high value on these properties. If you’re not accustomed to spending time on polishing your test suite and your code quality, now is the time to learn! These engineering details are very important in 3110 as well as in industry.
The last 5 points are for excellent scope. You need to understand that, despite how few points are allocated for this scope, it will take you a very long time to achieve. Excellent scope is really for those who want to dig deep, go beyond the call of duty, and excel in 3110. We applaud anyone who tackles it, and we respect anyone who decides their time would be better spent studying for other courses.