Add way for students to determine their total score in the class
Now that all assignments are listed in Ok, it would be nice if there was a way for students to view the total number of points they've earned in the class, with automatic calculation of things like participation credits and exam recovery.
An ideal version of this would be a field on the student view that automatically updates (based on some script configured on the staff side).
An easier-to-implement version would probably involve creating a fake assignment and using the autograder to calculate the total score.
Yep! This is being worked on in the assignment categories branch - it’s a great idea, and we’re taking it a step further by adding grading categories so we can do grading policy stuff (like max hw points and allowing extra credit)
I believe calculating exam recovery will require something beyond just categories, so I'll leave this issue open for now
Let's make it flexible enough to support more courses than just 61A. E.g., we need support for dropping the lowest homework and rules like that.
Also, it would be ideal if students could inspect how their score was calculated instead of just seeing the number. That way, they wouldn't feel compelled to ask questions.
It would be nice to allow arbitrary calculation rules, so we didn't have to implement every possible configuration in Ok. One semi-serious suggestion would be to have grade calculation input as Scheme code. It would allow arbitrary calculation without completely arbitrary code execution.
How about Python code?
Another idea is to create and embed a Google Spreadsheet for the student, populate some of its fields from the raw scores, and the rest from a course template that computes the final score from the raw scores in a series of interpretable steps.
On Thu, Feb 1, 2018 at 1:40 PM, Jen Thakar [email protected] wrote:
It would be nice to allow arbitrary calculation rules, so we didn't have to implement every possible configuration in Ok. One semi-serious suggestion would be to have grade calculation input as Scheme code. It would allow arbitrary calculation without completely arbitrary code execution.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Cal-CS-61A-Staff/ok/issues/1224#issuecomment-362410863, or mute the thread https://github.com/notifications/unsubscribe-auth/AATikQbuIiYffaHN_YmQFnPwT310rSbLks5tQi8ygaJpZM4Rl92F .
Python code would be hard to sandbox. I like the spreadsheet idea though. I'll look into it
I think I figured out the best way to do this: have courses provide a snippet of JS that we then run in a web worker when the user clicks a button. I think this solves most of the issues with other options:
- Workers run in a separate thread, so arbitrary JS code can't access anything in the main browser thread (or stall the UI thread)
- We can set a Content-Security-Policy on the worker to prevent it from making any network requests
- Requiring user action to start (and perhaps setting the worker to terminate after a very short timeout) should prevent a rogue calculation script from running for any extended period of time
- JS is a common enough language that it's reasonable to ask staff to write it for the calculator (and for students to read it if they want to)