Adding partial credit to checkbox problems

151 views
Skip to first unread message

Colin Fredericks

unread,
Apr 15, 2015, 10:33:20 AM4/15/15
to edx-...@googlegroups.com
Hello again!

I've coded up a version of the ChoiceResponse class that gives two different kinds of partial credit. I'm hoping to eventually get this into edX. I opened a Jira ticket for this ( https://openedx.atlassian.net/browse/CRI-17 ), but I figured I'd also post here to get commentary.

There are two kinds of grading implemented. One (EDC) gives you equal credit for each checkbox; the other (Halves) gives you 100% for a completely correct answer and takes half off for each error you make (with some adjustment for the number of choices in the problem). I may add more depending on feedback within HX. The standard type is still present unchanged. The type is chosen by adding partial-credit="whatever" as an attribute on the checkboxgroup tag.

Full code attached. It's just that class, drawn from responsetypes.py. Most of the changes have been in the get_score function, and there's one small addition in setup_response so that I can get a more complete list of what students did and didn't answer.

I'm especially looking for comments about:
  • Optimization - am I doing anything unnecessarily slow here?
  • Unexpected Consequences - is there somewhere else that may have trouble because of what I wrote here?
Also: the comments in the code seem to be wrong about some things. Should we take this opportunity to fix those up as well?
ChoiceGroup.py

Sarina Canelake

unread,
Apr 16, 2015, 8:15:19 AM4/16/15
to edx-code
Hi Colin,

It would be great if you could show this code in action. That is, post some screenshots that show what the author interaction looks like setting up this problem, as well as what the student experience looks like.

Any time you're in an area of the codebase and things seem wrong, my vote is to always make improvements.

Sarina

--
You received this message because you are subscribed to the Google Groups "General Open edX discussion" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/37e7b8c1-4d96-40dc-833a-3291aa5aaa3d%40googlegroups.com.

Colin Fredericks

unread,
Apr 16, 2015, 9:39:21 AM4/16/15
to edx-...@googlegroups.com
Sure! Check out the two attached files. The user side shows both of the alternative schemes in action; the author side shows what it looks like to set up the problem for EDC-style grading (the other one works similarly). 
User Side.png
Author Side.png

Sarina Canelake

unread,
Apr 16, 2015, 9:42:31 AM4/16/15
to edx-code
What does EDC mean?

Colin Fredericks

unread,
Apr 16, 2015, 9:48:21 AM4/16/15
to edx-...@googlegroups.com
Every Decision Counts. It's a style used by one of my old colleagues in the Scientific Reasoning Research Institute at UMass Amherst.

--
You received this message because you are subscribed to a topic in the Google Groups "General Open edX discussion" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/CAGrrCpE8n4h%2BTCXBszLCkJUg%2BSArrcnhvrw8foBmC3ctA13nCg%40mail.gmail.com.

Sarina Canelake

unread,
Apr 16, 2015, 11:11:34 AM4/16/15
to edx-code
Is this a standard, well-known terminology? If not, your proposal and code should clearly communicate what this means, or find a single word that will more easily explain to all users what's going on. "Half" and "halving" make sense. "EDC" does not, to me.

Colin Fredericks

unread,
Apr 16, 2015, 7:04:46 PM4/16/15
to edx-...@googlegroups.com
It's not a standard, but it's an easy short phrase for it. I'll document it properly, and I'm open to other suggestions for it. (Maybe "one-choice-one-point"?)

Colin Fredericks

unread,
Apr 20, 2015, 1:16:35 PM4/20/15
to edx-...@googlegroups.com
Revised version attached - it turns out that you can already show an image for partial credit just by returning 'partially-correct' as the correctness string! Sweet.

No other changes from my last one.
ChoiceGroups_rev.py
Reply all
Reply to author
Forward
0 new messages