Timing assignment modules relative to student joining date

Timing assignment modules relative to student joining date

by Richard Joyce -
Number of replies: 2

Moodle 1.9.1

Hi,

I am setting up a course which will be two months long with a multiple choice exam at the end.  The thing is that the course will be an ongoing course that students can sign up to on an ad-hoc basis. i.e. the start and finish time for the course is relative to the date that each student enrols.

Can anyone point me towards some information about how I go about setting this up? (or let me know if it is not possible).

Also, if it is possible then can I set up an assignment activity (i.e the multiple choice quiz) that is available, say, 1 week after the student enrols?

Any help much appreciated!

Thanks,

Richard

Average of ratings: -
In reply to Richard Joyce

Re: Timing assignment modules relative to student joining date

by John White -

Richard,

I think that no-one has come back to you quickly on this because it is difficult to see how this can be done successfully. I'm only putting together an answer from the fragments I know about, so this is not definitive...

Firstly you idea sounds great but flies in the face of way a standard assessment works; namely, a fixed start and end date - the same for everyone having the student role in that course. So it would require some rather special tweaks to make it work!

Secondly, AFAIK if a student is off-rolled from a course their assignment can no longer be seen or marked [does anyone want to correct me there?]

So you need a workaround...

I can think of two possible solutions, neither of which is perfect as each has drawbacks.

1. You could have one assignment that is always open (so you disable the due date), though it is set so that the user gets one attempt only (I suggest that otherwise you end up with no idea of closure for the student). You write a little php code that is triggered as the user enrols for the first time... This script gives the user access to the assignment (or Quiz, or Questionnaire) course module, which access begins in one week's time (that's all available stuff, and is made possible by clicking into the module, into Assign Roles, Locally assigned roles, and noting down the contextid which you would need in order to generate a new entry into the table mdl_role_assignments where you want to set timestart to the UNIX equivalent of one week hence. Care needs to be taken with this (as obviously you are aware) because corrupting the table by writing rubbish into the database is not going to make moodle very stable! But it isn't rocket science.

Now you could also put in a timeend for one week after that. But here's the rub. If the student disappears from the module (or course) after one week there is no opportunity to mark and record grades. Of course if the test is multiple choice and the correct answers therefore predetermined, then this won't matter so long as the grade is stashed away somewhere else automatically upon completion. Does the gradebook let us do this? I plead ignorance.

2. Rather messier (though the student sees exactly the same thing!) You create a course with 52 consecutive assignments (or quizzes or questionnaires) each with its own start/end date, and on enrolment to the course you give the user the student role in the next available assignment that is at least 7 days away. Now you need not fret about the start & end of the student enrolment, you use the start & end of that assignment instead.

One really obvious snag is that as soon as the user has the student role in the course he sees all the assignments. But not if you have them all hidden except the current week. Or if you do another sneaky thing and create (you wont like this) 52 clone courses each with its own assignment start / end dates, and give the user the rights to the appropriate one in your script (as above).

As you can see I'm suggesting that there must be some workaround (but the ephasis is on WORK, where the course creator is concerned).

Perhaps someone has a MUCH better whizz than any of this...

John

In reply to John White

Re: Timing assignment modules relative to student joining date

by John White -

...or, just maybe...

3. You clone the assessment type you want to use, and create an entirely new type which is identical in every respect, EXCEPT that it's start and end date are not taken from the usual settings alone, but by looking at the dates of the student's own enrolment.

So that for the assessment to be open...

now > student enrolment in this course context + 7 days AND

now > assignment start date AND

now < student enrolment in this course context + 14 days AND

now < assignment end date (or end date is disabled)

Now that would be VERY elegant!

Regards, John