ok icon indicating copy to clipboard operation
ok copied to clipboard

Add way for students to determine their total score in the class

Open jathak opened this issue 7 years ago • 7 comments

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.

jathak avatar Jan 21 '18 21:01 jathak

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)

epai avatar Jan 21 '18 21:01 epai

I believe calculating exam recovery will require something beyond just categories, so I'll leave this issue open for now

jathak avatar Jan 21 '18 22:01 jathak

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.

papajohn avatar Feb 01 '18 20:02 papajohn

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.

jathak avatar Feb 01 '18 21:02 jathak

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 .

papajohn avatar Feb 01 '18 22:02 papajohn

Python code would be hard to sandbox. I like the spreadsheet idea though. I'll look into it

jathak avatar Feb 01 '18 23:02 jathak

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)

jathak avatar Apr 28 '18 04:04 jathak