sagemathinc / cocalc

CoCalc: Collaborative Calculation in the Cloud
https://CoCalc.com
Other
1.16k stars 211 forks source link

nbgrader: bonus points #5271

Open williamstein opened 3 years ago

williamstein commented 3 years ago

Question from a user:

"Would it be possible to tell nbgrader that there are bonus points in an assignment? If not, take it as a gentle request."

This is not implemented. There are probably a couple of design choices. The first question is whether or not official nbgrader has anything like this, and if so exactly what choices they made and how do they store the extra information to declare something "bonus points". If somebody is interested, they could do some research (or send a message to the mailing list?) and find out, then post back here.

In the meantime, I suppose you can work around this by putting an explicit statement at the top of the file that though the points total $N$, you'll be counting the grade as being out of $N-3$ (say). I imagine that accomplishes the same goal, unless of course you want only a certain specific problem to count for extra credit...?

williamstein commented 3 years ago

I did find one relevant thing in the nbgrader repo: https://github.com/jupyter/nbgrader/issues/488

It's kind of weird though, since they seem to be talking at cross purposes in the thread, and then finally that issue is closed by this PR https://github.com/jupyter/nbgrader/pull/768 which actually instead adds a way to explicitly give extra credit on a problem when manually grading it only!? But that doesn't seem at all like what's being requested here.

williamstein commented 3 years ago

Here's what Alina wants:

"I declared that 10 points are bonus (for the last problem), and thus I would like the assignment graded out of 28 which is the total number of points for the other problems. When nbgrader grades it, it then reports the grade as being out of 38, so students who got 29/38 get worried that they got lost points on the assignment when in fact they most definitely did not. I am happy with the grading it does, I would just like to tell it to report 29/28 in that case."

I think she just means that there is a checkbox to mark certain problems as "extra credit". Actual grading is automatic still. So this is completely different (and MUCH better) than what https://github.com/jupyter/nbgrader/pull/768 implements, and probably what https://github.com/jupyter/nbgrader/issues/488 originally requested. Unfortunately, this will have be something that we do differently than upstream, which is incompatible. When implementing this, we'll put in a warning about that discrepancy.

kno10 commented 2 years ago

I would also appreciate the option to have bonus points, for example for particularly good solutions. In some cases these could be detected by automated tests, e.g., if a particular function is called or not called (via mock testing). For example, using a fast numpy function instead of a manual for loop may give you an extra point.

haraldschilly commented 2 years ago

I would also appreciate the option to have bonus points...

I've an idea: why not add two "autograder test" cells below a student answer cell? The first test cell is for regular points, and the second test cell calls the same function again and checks for bonus points.

What might be a bit bad with this, you get nagged with an error if you don't get the bonus points. So, my thought here is, to somehow have a test cell, which detects an error but doesn't report it in the same way … or well, maybe if the text in or above such a bonus point cell spells out this is for bonus points, it's fine with how it is right now.

kno10 commented 2 years ago

I am using two cells, but the overall count then includes both; i.e., there is no way to track the amount of bonus points across multiple assignments.