Plugins to penalize students' grade for late submission.

Plugins to penalize students' grade for late submission.

by Daniel Thies -
Number of replies: 15
Picture of Core developers Picture of Plugin developers Picture of Testers

Hello all,

I have problems with students procrastinating with assignments and missing deadlines and asking for extension. Not granting the extensions means that the student does not learn the material covered, but granting the extension encourages the behaviour. The standard quiz does not provide an easy way to apply a penalty for late submissions. I had a idea this week to easily accomplish this.

I created two question behaviour plugins to apply a penalty to all question attempts. After the due date, the question behaviour can be changed from a standard behaviour to one of these. Students starting the assignment before the due date receive full credit; any after the due date are penalized with the value set in multiple tries in the question.

In adaptive mode this means they score as if they missed an attempt before they begin. In the deferred feedback mode, all question attempts have the penalty deducted once. I do not know how well this will work in practice, but I am sharing this in hope the I might receive some productive feedback.

Daniel

Average of ratings: Useful (4)
In reply to Daniel Thies

Re: Plugins to penalize students' grade for late submission.

by Marcus Green -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers

That sounds very interesting Daniel. At first I thought you were teasing us by saying "I have created two question behaviours", I thought "where is the code?", then I clicked the words and it took me to the source on github, excellent!

In reply to Daniel Thies

Re: Plugins to penalize students' grade for late submission.

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Thank you for sharing this code. Note that MDL-4309 is an ancient feature request for something like this.

I am not sure if using the behaviour is the 'right' way to do this sort of thing, becuase we are not really changing how the student interacts with the questions. However, it is the only way it is possible to implement this feature at the moment in Moodle. Also, it has the interesting feature that if students do some questions before the deadline, and some afterwards, then they only get penalised on some questions, which is good.

... Except no. The behaviour to use for each question is chosen when the student start's their quiz attempt. Which kind-of backups up my claim that doing this with behaviour is not the ideal approach from a software design point of view.

I think we need somethign else in the quiz. That might be an extesion to the Quiz access rule API, or it might be something else (a new plugin type Quiz score computation plugin). That would do the work of computing the final quiz score (or scores) from the individual question scores. The trouble is, I don't quite see how that would work. (For example, how would we handle quiz_update_all_final_grades in mod/quiz/locallib.php? and also how would we handle showing the necessary computation-specific information in the quiz reports?) Still, something like this would be a way to handle many requirements:

  • Penalty for late submission
  • Quiz score broken down by section
  • The scoring stuff that Tony Gardner-Medwin wants in relation to CBM
  • 'Instant fail' questions, or drop best/worst question scores
  • ...
Average of ratings: Useful (3)
In reply to Tim Hunt

Re: Plugins to penalize students' grade for late submission.

by Emma Richardson -
Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Plugin developers

I think someone has a project submission to Moodle Users Association for a late penalty, which I think belongs in the gradebook, not the individual activity.  That way it can be applied anywhere.  

The other three would be nice to see in the quiz though.  I know there have been several requests for a breakdown by category or section.  

In reply to Tim Hunt

Re: Plugins to penalize students' grade for late submission.

by Daniel Thies -
Picture of Core developers Picture of Plugin developers Picture of Testers

I agree that that a behaviour plugin is not the right way to do this, but is the best I could do at addressing my current need. It is at best a feature prototype to evaluate the utility of the function.

It would be great to have a new plugin type to address this and the other situations. The behaviour plugins have limitations because they do not have acesss to quiz settings. This is why it requires manually changing the behaviour and using penalty setting in the question. It is unclear how a new plugin type would handle multiple submissions in adaptive mode. It seems like it would still need to go by quiz start or end time.

Average of ratings: Useful (2)
In reply to Tim Hunt

Re: Plugins to penalize students' grade for late submission.

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

We are just talking about this at the #mootieuk16 hackfest. Just adding some notes here, so everything is in this thread.

Some other things that could be handled by this proposed plugin type:

  • Penalty if you use more than one attempt. (E.g. final score is the higher out of 'score on attempt 1' or 'score on attempt 2 less 20%'.)
  • So, actually, this plugin type could be used to replace the existing hard-coded logic for Final grade = first/last/best/average grade, which would clean up the code.

There was some talk about whether this could be a more general plugin type. Several of the same score modification rules would also make sense for the Assignment tool. Should we find a way to let the code be shared? Perhaps it belongs in the gradebook?

Average of ratings: Useful (2)
In reply to Tim Hunt

Re: Plugins to penalize students' grade for late submission.

by Daniel Thies -
Picture of Core developers Picture of Plugin developers Picture of Testers

Perhaps it would make sense to have an aggregation type plugin so that there could be different ways of evaluation the grade based on attempts than the standard ones.

As far as where to do this, it does seem to make sense to do this in the grade book instead to in the quiz. There are several other activities that have analogs to attempts besides quiz (and lesson). Glossary , Forum and Database could return grades for multiple entries and have them aggregated to a single grade in the book. Actually these must be sharing code from the rating library already.

In reply to Tim Hunt

Re: Plugins to penalize students' grade for late submission.

by Daniel Thies -
Picture of Core developers Picture of Plugin developers Picture of Testers

I just looked at the code for quiz and adding a penalty there as you suggest would not be difficult, it would better if the aggregation options were not hardcoded. The code is currently duplicated in grade.php.

In reply to Tim Hunt

Re: Plugins to penalize students' grade for late submission.

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Note that there did not seem to be an existing tracker issue for "Different scores by section", but someone just created MDL-53639, which I have edited a bit, to use for that. Does not make it any easier to code, unfortunately.

In reply to Tim Hunt

Re: Plugins to penalize students' grade for late submission.

by Daniel Thies -
Picture of Core developers Picture of Plugin developers Picture of Testers

I just noticed the plugin Export Component Grades which addresses the analogous situation in the assignment module. It allows subscores from the advanced marking guide or rubric to be downloaded as a spread sheet. A quiz report could do the same thing to break grades down into sections.

In reply to Daniel Thies

Re: Plugins to penalize students' grade for late submission.

by Nadav Kavalerchik -
Picture of Core developers Picture of Plugin developers Picture of Testers Picture of Translators

Thank you Daniel for sharing this. It was very helpful.

I was asked by our teachers to see if I can give penalty to the entire quiz attempt, from the second attempt and on...

And also multiply it as more attempts are made. Formula = (Quiz attempt number - 1) * (Question penalty).

So I patched your qbehaviour_deferredpenalty question behaviour plugin, and added the following code.

It is not as elegant as I would like it to be but it works.

I would love your and anyone's feedback on it.

Nadav

Average of ratings: Useful (1)
In reply to Nadav Kavalerchik

Re: Plugins to penalize students' grade for late submission.

by Daniel Thies -
Picture of Core developers Picture of Plugin developers Picture of Testers

Hi Nadav,

What you are doing seems more like a type of aggregation than a question behaviour.

I think Tim has suggested adding a new plugin type either to the quiz or gradebook that would have the information to do this calculation without having to sift through the database. It would be a more elegant way of doing it.


In reply to Daniel Thies

Re: Plugins to penalize students' grade for late submission.

by Daniel Thies -
Picture of Core developers Picture of Plugin developers Picture of Testers

I found a way to set the time for a penalty. I created a quiz access plugin that overrides the question behaviour after a specified time. This can be used in with one of these plugins or by changing from adaptive to deferred feedback to penalize late submissions.

Average of ratings: Useful (1)
In reply to Daniel Thies

Re: Plugins to penalize students' grade for late submission.

by Daniel Thies -
Picture of Core developers Picture of Plugin developers Picture of Testers

I reworked the way this plugin behaves a little because I was have difficulty with making the calendar events sensible to students. Instead of having a penalty phase before the due date, it now sets a grace period after the original close where students can attempt the quiz with a less favorable question behaviour. The original close date shows in the calendar, but the final close of the grace period does not.

If a new grading plugin type is added, consideration should be given to reworking the calendar events in the quiz. The code for start and stop events and overrides is currently contained  in the quiz library rather than access type plugins. The code in quiz_update_events deletes all other calendar events associated with the quiz. The grading plugins ought to have the capacity to add other due dates.