Monday, December 23, 2019

Setting up automated reminder messages in a Moodle course

If you'd like to send automated messages to learners enrolled in a Moodle course, the reengagement plugin is what you need.

I recently set up time-based, contextualised reminder messages using this plugin, and this post might be useful if you're looking to do something like that.

The course I was working with is a self-study course that learners are encouraged to complete within 4 weeks. The course consists of three quizzes, and once they achieve a passing score on all the quizzes they receive a certificate of completion (generated automatically with the custom certificate plugin).

I wanted to send the learners an automated reminder message after week 1 about the first quiz, after week 2 about the second quiz, and after week 3 about the third quiz. Importantly, the reminder message would be sent only to those who had not completed the relevant quiz.

To accomplish this, I first added 3 reengagement instances on the course homepage and kept all of them hidden.

Below are the key settings I used in the first reengagement instance to trigger a reminder message after the first week. In addition, I wrote out a fairly detailed message in the 'notification content' field (not shown below), addressing learners by their name ('Dear %userfirstname% %userlastname%'), saying why they are getting this message (eg, they have not yet completed the first quiz), and putting the message in context (eg, they must complete all the quizzes to receive a completion certificate).

The reminder messages seem to be working: 47% of the learners who made a start on the course completed it within 4 weeks, which I think is not bad for a self-study course.

The reengagement settings I've used:


















Sunday, November 10, 2019

How to display a digital badge from a Moodle site on an Open Badges portfolio

(This post has been updated in 2019 following the transition of Open Badges from the Mozilla platform to the Badgr platform.)


Have you received a digital badge?
If you've received a badge from a Moodle site where you've completed an online course, you'll usually be notified by email, for example:













Click one of the links in the email to access the badge on the Moodle site. You'll see your name, the issuer name, and other details. For example:
















If you know you've received a badge but don't get this email, don't worry. You can access the badge on your Moodle site by visiting <your Moodle site address>/badges/mybadges.php

Adding your badge on badgr.com 
Step 1: Download the badge from your Moodle site by clicking the 'download' link that appears right under the badge. (You may also see an option to add the badge directly to a backpack, but if you don't see this link or it doesn't work, you can add the badge manually to a badge portfolio by following the steps below.) 

Step 2: Create an account on the badgr.com website. 

Step 3: Login to your account on badgr.com and click the 'Add badge' button. Upload the image file of the badge that you downloaded from your Moodle site. 

Step 4: Adding a badge doesn't automatically make it public. If you would like to display your badge publicly, you have to create a badge collection. Click on the 'Collections' tab in your Badgr account and then click 'Create collection'. 

Step 5: Drag the badge you have uploaded into the collection you have just created. 

Step 6: Enable the 'Public' option right under the collection. Then click the 'Share' link to get the public link to your collection. 

Step 7: Add the public link anywhere you'd like! Any time you want to add a new badge to this public collection or to a new collection, simply repeat the above steps.

Thursday, September 19, 2019

Permissions snafu when importing across courses in Moodle

The import feature in Moodle allows you to copy over resources and activites from one course into another.

When you start the import process, you choose the source course (ie, the course with the stuff you want to import) and you get to choose what to import: activities/resources, question bank, filters, blocks, etc.

Consider this scenario:

1. You have a forum in an old course for which you have removed posting permissions (maybe because you have students in that course who stay enrolled but you don't want them to use the forums any more).

2. You want to import a Book resource from the old course into a new course. You do not want to import the forums.

When you carry out this import, you would of course have the Book resource in your new course, but you may find that the students in your new course can't post on the forums any more! This is because the import process brings in the forum permissions from the old course into the new one, even though you have not imported the forums themselves. In other words, all the user permissions from the old course are copied over into the new course, regardless of which activities or resources you imported.

I would definitely put this down as one of the idiosyncrasies of Moodle. I looked it up on the Moodle Tracker and indeed there is a bug report.

So the next time you import anything from one course into another, check the user permissions in the destination course to check and fix anything that has inadvertently changed.

Friday, September 06, 2019

Keyboard shortcut for "replace in selection" in Brackets

I recently moved from Notepad++ to Brackets for coding some of the dynamic elements in Moodle course content. With its modern UI, live preview feature, and very useful Emmet extension, Brackets has given a boost to my workflow. Strangely, a simple feature is missing in Brackets: you can't replace characters within a selection of text. There is however an extension for this called, quite simply, "Replace in selection". Finding and installing it is straightforward using the Brackets extension manager, and the brief help text says that the keyboard shortcut is Control + R.

But that shortcut didn't work for me. What use is a find/replace function without a keyboard shortcut?

Looking at the user key bindings in Brackets (Debug -> open user key map), I realised I had to figure out the command ID for this feature. The main.js file of this extension indicated that it might be "replaceInSelection.Replace". And that it was indeed - I added the following to the key map file and the keyboard shortcut worked!

"overrides": {
         "Ctrl-R":  "replaceInSelection.Replace"
    }

Wednesday, September 04, 2019

Questionnaire plugin in Moodle vs SurveyMonkey

A few years back I compared the "Feedback" tool in Moodle with SurveyMonkey.

"Feedback" is one of the standard Moodle activity types, but it doesn't seem to be getting a lot of love from developers. I haven't seen any major improvement in its features from Moodle 2.1 to 3.5 over the past eight years.

One major drawback of the Feedback tool is that it is still not possible to include matrix-type questions (with rows for statements and columns for marking choices).

Here's where the "Questionnaire" plugin offers a compelling alternative, because you can create questions such as this:

Source: Moodle Docs for Questionnaire plugin



SurveyMonkey will probably always have a better user interface, a greater variety of question types, and more options to analyse responses than any feedback/questionnaire tool in Moodle.

But the Moodle Questionnaire plugin may be a better option if the following statements resonate with you.
  • Your course participants don’t have to go to a different site to take the survey – there’s no break from the course experience.
  • You can make survey completion part of the formula/criteria for participants to complete the course.
  • Even if you set the survey in anonymous mode, you can check which participants have completed the survey (though you can’t match the responses with the participants) and you can send a follow-up message with the non-responders.
  • You can easily refer to surveys used in previous courses to check which questions were included, view/download the responses again, etc.

Monday, April 29, 2019

How to calculate the total number of forum posts from the course logs in Moodle

The course logs in Moodle contains a treasure trove of data for learning analytics. One of the numerous data points in the logs pertains to the forums in the course. If you'd like to calculate the total number of posts learners have made on the forums, how many posts were made in each forum, or who has posted how many posts, look no further than the course logs.

1. Go to Reports -> Logs from the Course Administration menu.

2. The default settings that you see on the Logs page gives you "everything but the kitchen sink" kind of data. For a course with 1000 learners, the Logs could have more than 300,000 events! At least that's my experience. You might not want to generate a spreadsheet with so much data. I prefer to use the "All changes" option instead of the default "All actions" option to zoom in a little closer to the events of interest, in this case, forum posts. This gives me a substantially smaller number of events to work with, for example, 50,000 instead of 300,000. This is of course still a daunting number but it yields a manageable number of categories for the next stage of spreadsheet processing.

3. Click "Get these logs".

4. Scroll to the bottom of the page and download the table data as a CSV or Excel spreadsheet. I'd suggest CSV for faster data generation and downloading. You can change the file format if you'd like when you open the sheet with Excel.

5. Once the sheet gets downloaded, open it with Excel (or LibreOffice/OpenOffice). Generate a pivot table with all of the data as the base.

6. In the new tab with the pivot table, put the following in the field list: "Component" in the Filters section, "Event name" in the Rows section, and "Time" (as count) in the Values section. Leave the Columns section empty. You can use some other field instead of Time for the values - this is simply to count the events.

You'll then see something like this (the numbers below are actual figures from a course with around 800 learners):


7. With this table, you can calculate the total number of posts made in all the forums in the course. Use either of the below formulas to get this data:

Discussion created + Post created - Post deleted
OR
Some content has been posted - Post updated - Post deleted

To find out the total number of posts made in each forum in the course, put "Event context" in the Columns section of the pivot table's field list. And to look at the posts made by each learner, put "User full name" in the Rows section - when you do this, you might want to choose either "Event name" or "Event context" for the Columns section, as using both together might make the data intractable to work with.

Wednesday, March 13, 2019

Emails from Moodle site marked as spam or not delivered to some domains

So you have cron working on your Moodle site but you have the annoying problem of emails from your site being marked as spam or not getting delivered at all to some email domains. For example, they might be delivered to a Gmail address (even if they're going to the spam folder) but not to an institutional email address.

If you see an email from your Moodle site marked as spam, download the email with full headers (in Gmail, you can do this through the “Show original” option) and check if there is a “fail” message next to SPF, DKIM or DMARC. This is a sign that something is wrong.

For example, if you see a “fail” or “softfail” message for SPF, the SPF DNS entry for your Moodle site may not be up-to-date. I encountered this problem recently after a Moodle site I administer was upgraded and it resulted in a change in the IP address as well as a transition from IPv4 to IPv6.

Google provides useful advice to deal with SPF, DKIM and DMARC.

It could also be that the IP address of your Moodle site has somehow been blacklisted. There are lots of email blacklists but only some of the blacklists influence email delivery to major providers such as Gmail and Yahoo.

None of the above - SPF, DKIM, DMARC, IP blacklisting - are Moodle-specific issues but they can affect your Moodle site, so you will need to consult a system administrator who has overall responsibility for the IT systems at your institution.

Friday, March 01, 2019

Moodling in 2018


Continuing in the series of my annual Moodling recaps (though this one has been delayed)...
  • What does "openness" mean in the context of an online course? At the most basic level, I would think it means open access to the course materials, that is, anyone can enrol in the course. What about reuse and adaptation? Can an online course be made available in its entirety - including source files of the resources and activities - and be ported to a different learning platform, where it can be freely adapted? And how about training people to make the most of the course as they embark on this embedding or localization? In 2018, I worked with my colleagues at INASP to address these aspects in relation to the popular AuthorAID online course in research writing. We developed and offered the AuthorAID Online Course Toolkit Programme to help experienced researchers in developing countries run the AuthorAID research writing course on their own, on their own Moodle-based learning platform. Hopefully we will be writing about our experience soon on the AuthorAID or INASP blog.
  • I implemented a new interface on the INASP Moodle site to help potential participants learn about our courses and enrol in them directly. Check it out: https://moodle.inasp.info/
  • With the emergence of GDPR, it was imperative for us to upgrade our Moodle site so it would be GDPR-compatible. I was involved in getting the site upgraded to version 3.5 and implementing the GDPR stuff. I'm yet to explore all the new features in 3.5 though!
  • And as usual I continued to be the technical administrator for online courses at INASP.
Compared to previous years I spent less time Moodling as a result of different work priorities. Let's see what 2019 holds!