openwebwork / webwork2

Course management front end for WeBWorK
http://webwork.maa.org/wiki/Main_Page
Other
145 stars 165 forks source link

Achievement items after a set closed #2278

Open Alex-Jordan opened 10 months ago

Alex-Jordan commented 10 months ago

In WW 2.17 and earlier, there were a number of achievement items that you could apply even after a set closed. For example, "Lesser Rod of Revelation", aka HalfCreditProb, allows you to choose a set, then choose a problem, and award yourself half credit. This could be done even after the close date.

In WW 2.18, most achievement items have been changed so that they cannot apply after a set closed. The exceptions are the items that reopen a set. Was this intentional or just an accident during the Mojolicious move? At this time in the term, my students try to use achievement items to bolster their grades, but they reported how most of them are not available now.

I have edited my school's server to allow access to items any time after the open date, provided it makes any sense to do so. I didn't want to open a PR about it until asking if the change was intentional.

Alex-Jordan commented 10 months ago

The relevant items are:

modified:   DoubleProb.pm
modified:   DoubleSet.pm
modified:   FullCreditProb.pm
modified:   FullCreditSet.pm
modified:   HalfCreditProb.pm
modified:   HalfCreditSet.pm
drgrice1 commented 10 months ago

If there was such a change it was not intentional.

drgrice1 commented 10 months ago

I am not sure that I believe that this is a change from 2.17 to 2.18. Comparing the 2.17 and 2.18 code for the "HalfCreditProb" (i.e., the "Lesser Rod of Revelation"), I see that the form filters sets that are open and before the due date. The condition is identical for both 2.17 and 2.18. Line 869 of AchievementItems.pm for 2.17 and line 39 of HalfCreditProb.pm both have the condition:

between($$sets[$i]->open_date, $$sets[$i]->due_date) && $$sets[$i]->assignment_type eq "default"

Looking at several of the other achievement items that you listed I see the same thing.

So it seems that the intent at least is that these items are meant to only be used on open sets before the due date.

drgrice1 commented 10 months ago

I tested this on 2.17 as well now. After the due date for a set has passed, the set is no longer listed in the drop down for the achievement item. So this is not a change from 2.17 to 2.18 as far as I can tell.

Alex-Jordan commented 10 months ago

OK, I believe what you say. I would have sworn that these items were usable at any time, and not until this term have I had questions from students trying to use them, but they can't. But I must have memory wrong or been misled by circumstances.

Of the six items I listed, does it make sense to change their behavior to how I described it? Or do we think it's better to not change their behavior for the sake of stability?

somiaj commented 10 months ago

Would creating some more achievement items be a possibility to allow students to use them on past due assignments? Basically they will be the same as the current ones but can work on past due assignments too. This way instructors could choose which one they want. Thus this won't change existing behavior unless someone goes and updates which achievement items the students earn.

drgrice1 commented 10 months ago

Changing the behavior is fine with me. I don't really have a preference (since I don't actually use achievements).

Alex-Jordan commented 10 months ago

It seems like the more I look into these, the more problems I find. I try to change something, and then while testing I see there is a different issue. The latest issue again has to do with checks/changes that are made based on the global set that really should be using the user's potentially overrided values. For example if you use the item to extend the close date 48 hours, and then use it again later to extend by 24 hours, you actually lose 24 hours. Because it resets the user's close date to the global close date plus 24 hours instead of to the user's current close date plus 24 hours.

I may get into this and revise a lot at the same time, since attacking one issue at a time will open up a lot of pointless testing.

I'd prefer not to create new achievement items for the distribution. Especially if they only differ by the kind of thing mentioned earlier (whether or not can be applied after the close date). I'd rather leave the current behavior and just have local changes on my server than add that type of maintenance. But also I'd be a little surprised if someone objects to changing that behavior. A student will naturally wait to answer as much as they can before the close date and think they can turn to the FullCreditProb item (or whichever) once its closed. So right now I feel like it potentially tricks the student.

drgrice1 commented 10 months ago

Unfortunately, achievements are one of the most poorly implemented parts of webwork2. I have maintained current behavior as things in webwork2 have progressed, but I also have noticed a lot of these issues in testing things. There is a lot of work to do to get achievements actually working well in general.

Alex-Jordan commented 10 months ago

I'd like to make this a strong feature that we can clean up and raise its profile. For example, something MOM-using faculty like is the "late passes" feature. The infrastructure for that is already present with Achievement Items, but needs the front end.