Grading
In-class Labs
In-class labs are graded Credit (CR)/No Credit (NC).
Exams
Exams are graded on a points scale from 0 to 100.
Lab Assignments
Lab assignments are graded using a specification-based grading system. You can receive one of four grades: A, B, C, or F, which corresponds to:
- A - This work meets or exceeds the specification of the assignment. There are no non-trivial errors. There are no code quality issues. This work could be used as a classroom example.
- B - This work meets the specification of the assignment. If there are errors, they are minor. There are code quality issues that need resolution.
- C - This work fails to implement all the specifications, or there are significant bugs that affect the playability of the overall work. However, at least half of the specification features are implemented to a sufficient standard.
- F - The student’s work does not meet enough of the specification to give meaningful feedback. Less than half of the specifications are implemented.
Your lab assignments will be graded by Learning Assistants. The criteria for an A on an assignment includes following the course style guide. While many style items are tested via clang-format and/or clang-tidy, quite a few require manual code review.
All assignments will be due at the end of day on a Wednesday, and you will receive your initial grade on Saturday (three days after the due date). When you receive your initial lab assignment grade, you will also receive feedback on recommended changes. You may resubmit your lab for a regrade by the end of Tuesday (three days after receiving your grade). Upon regrade, you can increase your grade by at most one letter on the scale. I.e., an initial grade of F can potentially regrade it to a C, an initial grade of C can potentially regrade to a B, and an initial grade of B can potentially regrade to an A.
Regrading Lab Assignments
After your initial grade report from the learning assistant who graded you, the regrade process for labs is as follows:
- Make the listed changes
- IMPORTANT - Confirm your game still works after the changes. Sometimes when fixing some code review items, you might break something accidentally, so please make sure your game still works! If your game breaks after your changes, then most likely your grade will not be upgraded. Also, if you are trying to regrade to an A, make sure that you do not introduce new warnings with your changes, as that will also prevent you from regrading to an A.
- Push your changes to GitHub by the deadline (typically Tuesday 11:59PM, unless you used an extension in which case it’s Thursday 11:59PM)
- Reply to the GitHub Issue to say you’re requesting a regrade, also by the deadline. If you do not request a regrade, we may miss that you want one and won’t process it.
Regrade FAQ
Q: I was asked to fix my warnings. Do I really have to fix all of my warnings or is getting just most of them okay?
A: Yes, you need to fix all of your warnings (compiler warnings, clang-tidy warnings, and clang-format warnings) to satisfy that requirement.
Q: How do I view my warnings on GitHub?
A: See the instructions here.
Q: I’m not sure how to fix a specific warning I got, what should I do?
A: If it’s a general “how do I fix this warning?” question, you can usually make it a post on Piazza, and assuming you only need to show a couple of lines of code for the warning, you can make it public, too.
Q: I’m having problems with clang-format errors that I can’t resolve, what should I do?
A: See the instructions here.
Q: I’m not sure what one of the generic code review items means, can I get more context?
A: For the generic code review items, there often is a link directly to the relevant entry in the style guide, which can give you more information. For other items, there should be additional information telling you what it’s asking.
Q: When I get code review items which include examples, do I only need to fix the examples or all instances of the problem?
A: We expect you to make a good faith effort to fix all instances of the problem. For example, if we ask you to use nullptr
and give two examples where you’re not, but there’s 10 places you have the same issue, we expect you to go through and fix them. If you accidentally miss one or two instances, we have some leniency, but if there were 10 and you only fixed the two we pointed out, we don’t consider that a good faith effort.
Q: I’m not sure what something on my grade report is asking me to change, or think that possibly there was a mistake, what should I do?
A: We ask that you first reply to the GitHub issue grade report with your question, as it will directly go to the person who graded you. If you don’t hear back within 24 hours, feel free to make a private post on Piazza asking your question (and linking to your repo/issue in the post). You can also ask during office hours or lab if you have more specific questions/concerns.
Q: I made some changes for my regrade that added warnings/bugs that I didn’t have before, do I need to fix those too?
A: Yes. If you break stuff, you need to fix it as otherwise you will not get your grade bumped up.
Q: I fundamentally disagree with something in the style guide, who should I argue with?
A: In general, we do not make any changes to the style guide during the semester, unless it is just a clarification of something that was unclear. You can try to plead your case to your section’s professor, but it’s unlikely you will be successful. In general, think of this like working at a company where you may not like everything in the style guide, but you still need to conform to it. Even the individual professors don’t necessarily like everything in the ITP 380 style guide, but it represents a compromise between us collectively.
Q: How do the learning assistants define bugs and whether or not a spec is satisfied?
A: The general rule is:
- “Minor” Bug - The spec does work but there is a small glitch that while it doesn’t prevent the spec from working, it doesn’t look great. (Think of things like a 1 frame animation glitch and stuff like that)
- “Medium” Bug - The spec usually works as expected but there is an edge case where it doesn’t work (For example, Mario usually runs on the blocks fine, but you noticed there’s one spot where Mario can fall through)
- “Major” Bug - While there is code for the spec, it has a very apparent bug that considerably prevents the spec from working properly, and a reasonable person would say that the spec doesn’t really work. (For example, there is code for Mario to stomp Goombas but it almost never actually kills the Goomba)
If the spec has a “Major” bug, we do not give you credit for the spec (and thus is a minimum grade of a C). Similarly, if you have three or more “Medium” bugs, then it’s a bit too buggy and will be a C, as well. Minor bugs are something you will have to fix for an A, but they don’t prevent you from getting a B.
Q: I got a C as my initial grade, but I feel that, according to the above criteria, my initial grade should be a B. Who should I talk to?
A: Please talk to your section’s professor as soon as you can about it, and they can make a final decision.
Q: If I get a C initial grade on a lab, does that ruin my changes of getting an A in the course?
A: By itself, no, it does not ruin your chances. Keep in mind only the final grade lab grade after the regrade is what counts towards your final grade criteria. So as long as it only happens a small number of times and you end up with the minimum of 8 final letter grades of an A (and the rest Bs), you are still on track for an A assuming you satisfy the other criteria.
Final Grade Criteria
Final letter grades are assigned using a combined criteria. Possible grades are A, A-, B+, B, B-, C+, C, C-, D, and F.
As an example, here is the criteria to receive an A in the course:
- Get Credit (CR) on at least 18/24 in-class labs
- Get a B or higher on all 12 lab assignments (the final grade after your regrade)
- Get an A on at least 8/12 lab assignments (the final grade after your regrade)
- Have an average exam grade of at least 85%
Note that to receive a particular grade you must satisfy all listed criteria. Furthermore, there is no spill over or bonus points across the criteria. For example, if you have an exam grade of 90%, that doesn’t mean you need less Bs or As on assignments to get an A in the course.
We understand this grading system is very different from what you are used to, and will spend some time discussing how this works during the first week of class!
Grade | Criteria |
---|---|
A | * Credit (CR) on at least 18/24 in-class labs * Get a B or higher on all 12 lab assignments * Get an A on at least 8/12 lab assignments * No Fs on any lab assignments * Average exam grade of at least 85% |
A- | * Credit (CR) on at least 16/24 in-class labs * Get a B or higher on at least 11/12 lab assignments * Get an A on at least 6/12 lab assignments * No Fs on any lab assignments * Average exam grade of at least 80% |
B+ | * Credit (CR) on at least 14/24 in-class labs * Get a B or higher on at least 11/12 lab assignments * Get an A on at least 4/12 lab assignments * No Fs on any lab assignments * Average exam grade of at least 75% |
B | * Credit (CR) on at least 13/24 in-class labs * Get a B or higher on at least 10/12 lab assignments * Get an A on at least 3/12 lab assignments * No Fs on any lab assignments * Average exam grade of at least 72.5% |
B- | * Credit (CR) on at least 12/24 in-class labs * Get a B or higher on at least 9/12 lab assignments * No more than 1 grade of F on any lab assignments * Average exam grade of at least 70% |
C+ | * Credit (CR) on at least 11/24 in-class labs * Get a B or higher on at least 8/12 lab assignments * No more than 2 grades of F on any lab assignments * Average exam grade of at least 67.5% |
C | * Credit (CR) on at least 10/24 in-class labs * Get a B or higher on at least 7/12 lab assignments * No more than 2 grades of F on any lab assignments * Average exam grade of at least 65% |
C- | * Credit (CR) on at least 8/24 in-class labs * Get a B or higher on at least 6/12 lab assignments * No more than 3 grades of F on any lab assignments * Average exam grade of at least 60% |
D+ | * Credit (CR) on at least 7/24 in-class labs * Get a B or higher on at least 6/12 lab assignments * No more than 3 grades of F on any lab assignments * Average exam grade of at least 55% |
D | * Credit (CR) on at least 6/24 in-class labs * Get a B or higher on at least 5/12 lab assignments * No more than 4 grades of F on any lab assignments * Average exam grade of at least 52.5% |
D- | * Credit (CR) on at least 5/24 in-class labs * Get a B or higher on at least 5/12 lab assignments * No more than 4 grades of F on any lab assignments * Average exam grade of at least 50% |
F | * Fail to meet criteria for a D- |