Submitty / Submitty

Homework Submission, Automated Grading, and TA grading system.
http://submitty.org
BSD 3-Clause "New" or "Revised" License
638 stars 771 forks source link

Temporary override when student incorrectly loses registration access #9738

Open bmcutler opened 1 year ago

bmcutler commented 1 year ago

What problem are you trying to solve with Submitty Approximately once per term we have corrupted datafeed. Students are incorrectly omitted from the course enrollment, and an automated script removes the student from the course. The student loses Submitty access and cannot obtain files, access the discussion forum, upload homework. Students send email, and must wait for the instructor or sysadmin to manually add them back into the course -- but precious time is lost.

Describe the way you'd like to solve this problem

Proposal:

Tagging @williamjallen @cjreed121 @NiaHeermance @pbailie for discussion.

Also linking this to the feature request for "self-registration" courses #3950

bmcutler commented 1 year ago

We should probably also consider adding a column with data on "date first added to course", and maybe also "date last removed from course". Also, at the very start of term maybe a student hasn't access a course at all, so maybe it can be "accessed course in last 24 hours or it's within the first 2 weeks of the start date of the term". We do store the start date of the term in the master database.

NiaHeermance commented 1 year ago

If an instructor later permanently removes a student from the course, how do we enforce the "permanence" if students can readd themselves? Maybe by using the "date last removed from course" column idea? So the message that allows students to readd themselves would only appear if the student was not removed from the course by the professor manually.

bmcutler commented 1 year ago

We could use the "Manual edit" status to disallow a student re-adding themselves.

Currently, we only use manual edit to prevent the automatic script from dropping a student (students marked manual are ignored / not edited by the automatic script). Students in the NULL section who are marked "manual" should not be given the option to self-re-enroll, even if they have recent access timestamp.

NiaHeermance commented 1 year ago

That makes sense. I think this is a great feature idea that would stop a lot of the headaches we talked about at RCOS today. 72 hours sounds better to me imo as it's possible a student might not check Submitty from, say, Friday night through Sunday morning if they're taking a break from their CS coursework.

NiaHeermance commented 1 year ago

We should probably also consider adding a column with data on "date first added to course", and maybe also "date last removed from course". Also, at the very start of term maybe a student hasn't access a course at all, so maybe it can be "accessed course in last 24 hours or it's within the first 2 weeks of the start date of the term". We do store the start date of the term in the master database.

For the "within the first 2 weeks of the start date of the term" condition to display the option, the student would have been added to the course in the first place, of course? We wouldn't want students to just be able to add themselves to any courses in the first 2 weeks of the term, ha ha.

bmcutler commented 1 year ago

Yes, I was think "currently in the null section AND (its the first 2 weeks of term OR student has accessed course recently)"

The "self registration" feature request (issue #3950 ) is for certain courses that do want to allow anyone with university access to be able to take (not required to be in the NULL section). E.g., the "crash course in C++" should be available to anyone who might take Data Structures in a future term. We could make other optional bonus courses for other courses or non-course related things.

NiaHeermance commented 1 year ago

Do we have any columns in the database that are the last time a student accessed a course? Or is that a column I should add to the database?

bmcutler commented 1 year ago

Look at how we determine the last access information on the "Student Activity panel" it shouldn't be necessary to add a column, but I suppose because the information is only stored in the course databases (not the main Submitty database) loading the "my course" page could be a performance concern...

NiaHeermance commented 1 year ago

Oh I'll look at that. Thanks so much!

NiaHeermance commented 1 year ago

When students are readded, they'll just be readded to section 1. Is that okay, or do you think we should store the last section a student was in so that is the section the student is readded to?

bmcutler commented 1 year ago

If we have the information, we should restore them to the last valid registration section. Being in the proper section is important for lab checkpoint grading.

Also, to add to the above, in addition to "last valid registration section" we should also have "last valid rotating section".

I realize this is a big issue, so tackling this in multiple PRs, and holding the implementation of these "last valid"s for a later PR is likely a good plan.

NiaHeermance commented 1 year ago

Rotating sections are just used for homework and test grading, right?

Okay! I think I'll readd to section 1 for now and a future PR will change it to the last valid section. I think we would need to add another database column so we remember what the last valid registration section was.