sagemathinc / cocalc

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

nbgrader: manual grading similar to original nbgrader (formgrader) #4723

Open DataScienceUWL opened 4 years ago

DataScienceUWL commented 4 years ago

My class assignments contain a lot of written responses and other work that must be manually graded. Having to flip back and forth between the assignments screen and the student notebook to leave feedback and to enter scores is tedious and time-consuming.

It would be really nice to have something like the original formgrader interface (see here - https://youtu.be/5WUm0QuJdFw?t=947) where we could just leave feedback and change scores all in the student notebook and have the score updated automatically in the assignments screen.

DataScienceUWL commented 4 years ago

Even better would be the ability to hide everything but the Student Answer cells to limit the scrolling ...

williamstein commented 4 years ago

Having to flip back and forth between the assignments screen and the student notebook to leave feedback and to enter scores is tedious and time-consuming.

You might try opening two browser tabs on cocalc, since collaborative editing works fine with courses (not just notebooks).

DataScienceUWL commented 4 years ago

Of course, using two browser tabs helps, but isn't nearly as straightforward as manual grading in nbgrader. Thanks.

DataScienceUWL commented 4 years ago

It's beyond my capability, but would it be hard to write a script that copies collected assignments into the directory structure needed for classic nbgrader, then run nbgrader in classic view and copy back to distribute to students while populating the grade.md files?

I'm asking because I don't know if this is difficult or not ...

williamstein commented 4 years ago

It's possible. I'm definitely not going to do it, since it's a huge amount of work; probably for me it would be more work than implementing what you requested above. For somebody else the situation may be different.

DataScienceUWL commented 4 years ago

Gotcha, thanks!

DataScienceUWL commented 4 years ago

One, possibly simple thing, that would help is for the manually graded question scores to be pre-populated with the max number of points possible. At least for me, it's far easier to subtract a point here or there than it is to manually enter the points earned on each problem.

DataScienceUWL commented 4 years ago

Also, when manually scoring, the problems appear in the assignment/nbgrader list in a different order than they appear in the notebook which is awkward for grading.

williamstein commented 4 years ago

I'm bumping the priority of this up.

wmwolf commented 2 years ago

Another vote of support for this. The vanilla nbgrader formgrader interface is pretty great, and it creates an excellent formatted file for feedback. In addition to making manually graded cells much less tedious, it also makes assigning partial credit on autograded cells and extra credit easy to assign.

I originally left CoCalc and set up my own JupyterHub server for this reason alone. For various reasons, that didn't work out for subsequent semesters, so I'm back to CoCalc, and this is the main pain point for me as an instructor.

szazs89 commented 2 years ago

Another vote of support for this. The vanilla nbgrader formgrader interface is pretty great, and it creates an excellent formatted file for feedback. In addition to making manually graded cells much less tedious, it also makes assigning partial credit on autograded cells and extra credit easy to assign.

I think manual grader's html form (of the submission) should be invoked from the ${warning sign} Edit... link. After grading, that filled form is to be returned (as Released feedback) instead of GRADE.md. IMHO

novoselt commented 9 months ago

I think for a new user it is not necessarily obvious that "our nbgrader" is different from "just nbgrader" and it would be nice to have the interface as close as possible to the official version. And yes - being able to see and enter grades right in the student notebook, including partial credit or bonus points, or overriding automatic grades would be very nice too.

williamstein commented 9 months ago

This whole ticket is really vague "grading similar to original". Tickets need to be ridiculously precise, e.g., one specific concrete thing that can be done. Otherwise it just sits in limbo forever. I'll make a new ticket that is about manual grading.

williamstein commented 9 months ago

https://github.com/sagemathinc/cocalc/issues/7088

williamstein commented 9 months ago

I think for a new user it is not necessarily obvious that "our nbgrader" is different from "just nbgrader" and it would be nice to have the interface as close as possible to the official version.

100% agree. I think (1) we should do more to make it clear that the implementations are different -- any suggestions?, but (2) I fully agree that we should make the actual functionality as close as possible.

Regarding (1) it could be good to be careful to call it "CoCalc Nbgrader" everywhere or something, and have that be a link to a page explaining the situation.

wmwolf commented 9 months ago

This whole ticket is really vague "grading similar to original". Tickets need to be ridiculously precise, e.g., one specific concrete thing that can be done. Otherwise it just sits in limbo forever. I'll make a new ticket that is about manual grading.

For me, here are a few specifics. If you'd like, I can open them up as individual issues/feature requests. All of these deal with processing assignments after running nbgrader's autograder, but before returning them.

My goal is to never have to use the "assignment" view in the course file in between running the autogravder and returning the assignments.

williamstein commented 9 months ago

I think it would be great for you to make individual tickets for each of the above. The description are also already very clear and useful, but individual tickets would encourage filling out the design more.

E.g., for grading using an nbgrader like toolbar, are you envisioning selecting different types of feedback?

Thanks!