Tuesday, March 15, 2016

Using the Moodle Certificate plugin when you've made exceptions for some students

Consider this scenario:
  1. You have a Moodle course with a bunch of activities and students need to complete these activities. You're using condition-based activity completion (eg, getting a passing score on a quiz, receiving a grade on an assignment) to track their work.
  2. Some students don't complete some of the activities but you give them something else to do, and this work is managed outside the course in Moodle.
  3. You want to generate certificates for course completers using the Certificate plugin. This will work for those who've done everything they need to do within the course. But what about those for whom you've made exceptions?
This is one approach:
  1. Create a hidden Assignment activity somewhere in the course. Call it "Course completion indicator" or something similar. In the completion settings for this activity, indicate that students should receive a grade to complete the activity. 
  2. Download the gradebook. Add one or more temporary columns to put in formulas to figure out who has completed the course based on the normal criteria. Then find the "Course completion indicator" column and put 100 against the name of (a) every person who has completed the course based on the normal criteria and (b) every person for whom an exception was made. The only manual work is to deal with students in category (b). And this shouldn't be a lot of work because exceptions should be made for just a few students -- otherwise the course completion criteria as a whole need to be changed!
  3. Copy over the values in the "Course completion indicator" column and paste it in a new column (that is, copy the column and paste "values only" in a new column).
  4. Delete the old "Course completion indicator column".
  5. Delete the temporary column(s) created in step 2.
  6. Now you should have a spreadsheet that has a format identical to what you downloaded from your Moodle site. This is very important - there should be no missing or additional columns. The only difference is that there are values in the "Course completion indicator" column. 
  7. Save this spreadsheet as a CSV file. This is your new gradebook.
  8. Import the sheet into your course. Change both "map from" and "map to" to "email address". Set all the other mappings to "ignore" EXCEPT the mapping for "Course completion indicator". For this you should select "Course completion indicator" - or whatever else you might have renamed this to in your sheet. Complete the import process. You'll now have a gradebook in the course in which "Course completion indicator" is the only activity that needs to be checked to determine course completion.
  9. You can now set up the Certificate plugin and add only one restriction criteria: the certificate should be available only to those who have got a score of 100 in the "Course completion indicator" activity.

Tuesday, March 8, 2016

Vertical layout for matching question in Moodle Lesson

Moodle Lesson is one of the most interesting and flexible of the 14 activities that are available on a stock Moodle site. One of the things you can do in a Lesson is include questions. But I'm not very pleased with the layout of the matching type question. This is an example of how a matching question appears in a Moodle Lesson:










The first two matching pairs look okay but there's a sort of alignment problem with the third. The problem might become worse if you have an even longer item in the left column of the matching pair. And what's with the right aligned text? Maybe it works for short items in the left column but not when you have longer items.

I thought the whole thing would look cleaner and simpler in a vertical layout: question, answer, question, answer, and so on. Like this:













If you want to present matching questions in the same way on your Moodle, try adding the CSS given below in your theme settings:

.mform .fitem div.fitemtitle {text-align:left; float:none; width:100%;}
.mform .fitem .felement {margin-left: 0px;} 



(This works in Moodle 2.6. Not tested in other versions.)