Wednesday, March 8, 2017

Making the Moodle Calendar block neater by removing the Events Key

I think I prefer the Moodle Calendar block to the Upcoming Events block because it has a little more visual appeal, with event dates neatly highlighted. The Upcoming Events block can make the course homepage look crowded if there are many events such as deadlines in the near future. However, I don't like the Events Key that appears in the Calendar block. I'd rather not distract learners with links on the course homepage that are not central to the course experience. The Events Key has four links -- that's a lot.

I wanted to hide the Events Key in this block while retaining it in the full view of the Calendar (which you see upon clicking the month name in the Calendar block) -- I didn't want to lose this set of links altogether!

So I added these two lines of CSS in the settings of my theme:
.block_calendar_month.block .filters.calendar_filters 

.block_calendar_month.block .eventskey {display:none;}

Now I have a neater calendar:

Thursday, February 9, 2017

Moodling in 2016

About a year back I wrote my first 'annual review' of my adventures with Moodle. Now it's time to write one for 2016!
  • Last January preparations for the first MoodleMoot in India were in full swing and I was invited to be one of the speakers. Here's my Storify of the event.
  • In April the second AuthorAID MOOC in research writing got off to a start with a record number of participants.
  • In May I went to Dar es Salaam to facilitate a 3-day workshop for AuthorAID partners, and Moodle was high on the agenda.
  • The day I got back from Dar es Salaam I was on a Moodle conference! This was iMoot 2016, the annual online Moodle conference. My talk was about how to implement formative assessment using Moodle quiz.
  • From May to June I was involved in running a new online course on INASP Moodle for librarians in developing countries. My colleague Joanna later spoke about this course at PCF8 in Malaysia and we wrote a paper about it.
  • Early in July I went to Mumbai to run a Moodle workshop at Adhyayan, a company with the noble mission of improving the quality of leadership and learning in schools. It was wonderful to see the team coming up with innovative ideas to use their Moodle site.
  • In August I facilitated a workshop for an AuthorAID partner institution in Sri Lanka to help them include a Moodle component in their support programme for researchers. I went there again in October and was delighted to see them in action.
  • In September I spent a couple of weeks in the US and made a trip to UW-Madison, my alma mater, where I met Erica Hagen who is a keen Moodler. We spoke about the joys of using Moodle but I was sad to hear that UW is moving from Moodle to Canvas.
  • Soon after returning from the US I got ready for the third AuthorAID MOOC in research writing. I was at the INASP office in Oxford the day the course started, and Andy and I shot a welcome video standing together. For other courses we typically do this as a Google Hangout recording, with him in Oxford and me somewhere in India (I've been a little mobile lately).
  • In November it was time for more online conferences - I spoke at the mini iMoot and gave a remote talk for OpenCon Ranchi. Both talks were about Moodle and MOOCs. Then I went to Vietnam to run a workshop for an AuthorAID partner institution, and they made a plan to run an AuthorAID online course on their own Moodle site.
    Meanwhile, a poster I'd co-authored with Yaba College of Technology in Nigeria was presented at PCF8. 
  • In December I went to Dar es Salaam again for the annual AuthorAID project meeting, where I chatted about Moodle with our partner institutions in Dodoma and Dar es Salaam and presented updates to the AuthorAID team and partners on our MOOCs. And the second AuthorAID course run by Yaba College came to an end.
  • I had a learning itch to scratch last year - I really wanted to start exploring the treasure-trove of data in the Moodle database. The Moodle site I administer has thousands of users and we've run three MOOCs. There's a lot of data behind the front-end reports that were calling out to me. So I took the MoodleBites MySQL reporting course from HRDNZ through October and November. I have to say it wasn't as interesting as I thought it would be, but I did learn enough about the Moodle database to start getting my hands dirty with analysing forum ratings.
2016 was certainly an eventful year! Let's see what 2017 brings :-)

With fellow Badger-Moodler Erica Hagen at UW-Madison in September 2016

Friday, January 13, 2017

Getting to grips with the Moodle database

I've been a Moodler for many years and my work has been very much at the front end: web-based site administration, course creation and online facilitation. Every now and then, I do data analysis using Moodle reports and offer Moodle support to AuthorAID partner institutions. I've had a lot to do in each of these areas and I've been happily busy. But I had a nagging feeling about operating only on the surface of Moodle. So I decided to take the plunge into the world of databases with the unique 'MySQL Reporting for Moodle' course offered by HRDNZ, a Moodle Partner in New Zealand. I completed this course a couple of months back and I might write a course review at some point. For now let me just say that the main thing I got out of the course was an awareness and appreciation of the Moodle database.

Today I had the opportunity to work on the database of the Moodle site I administer. With more than 18,000 users and courses going back to 2011, it's not a small database. My goal was to get data related to forum ratings in a particular course, eg, how many posts were rated 'useful', which users received ratings, and which users gave ratings. The only way to do this, as far as I know, is to work with the Moodle database. There are no front-end reports that give you this information.

I actually made a post on a Moodle community forum yesterday asking for help, and today I posted a solution. It's not a detailed solution and definitely not the best. I'm sure there's a better way to do the whole thing using SQL queries. But for those who don't know SQL -- and those like me who have a smattering but would rather stick to CSV data for the moment -- my solution might be useful. Take a look if you're interested.

Friday, December 2, 2016

How the Wisconsin Idea inspires me in my edtech work

I'm a proud Badger. I graduated from the University of Wisconsin-Madison with an MS degree in electrical engineering about ten years back. It was quite a struggle as I opted to do research in a field I knew little about (don't ask why) and I was on the wrong side of 'publish or perish' for a few years. But one benefit of my relatively long stay at UW-Madison was the gradual assimilation of the Wisconsin Idea. You can read about it on Wikipedia and this is my favourite excerpt:

'Van Hise declared that he would "never be content until the beneficent influence of the university reaches every family in the state". Today that belief permeates the UW System's work, fostering close working relationships within the state, throughout the country, and around the world.'

I was a teaching assistant for many semesters at UW, but I wouldn't have guessed then that education and edtech would become a big part of my career. Anyway, I'm not surprised. I was training to be an engineer but I was always a better teacher. The engineering side of my education has however been a boon for what I do with the 'tech' part of edtech and stuff like data analysis. But more than that, it's the Wisconsin Idea that I look to for inspiration.

I work in a capacity building context in international development, and lately I've been supporting some teams at universities in Ghana, Sri Lanka, Tanzania and Vietnam use Moodle. They have different aspirations and varying levels of Moodle proficiency, but they all have one thing in common: they can see how a learning platform like Moodle can expand access to learning and networking opportunities for people at their university and beyond, in their region or even nation. Moodle is open source software and there's generally an IT person in the teams I work with. I tell them that how well they use Moodle is a matter of their own commitment, both on the technical side and pedagogical side. They can easily scale up to a level of supporting a few thousand students without needing very specialized support. That's good news for universities in developing countries where there's usually not a lot of money to go around.

I think open source edtech like Moodle and the Wisconsin Idea go hand in hand for the kind of work I do. They're both about breaking down geographical barriers to education. Living in India - far away from both Wisconsin and Australia (where the Moodle headquarters is) - I can feel the effect of both.

Wednesday, November 30, 2016

A Twitter conversation that reveals what open source is all about

Yesterday I tweeted a very minor complaint about exporting data from Moodle. Then this happened:

In case you didn't know, Martin is the founder of Moodle and the lead developer. Moodle is easily one of the world's most popular online learning platforms, with millions of registered installations.

When was the last time your comment about a trivial problem with something so big was picked up by the person who originally made that thing and nudged you to do something to help fix it?

THIS is what open source is all about. Any major open source software application is built by and for a community for people, who can - among many things - report bugs and suggest ideas, all of which are catalogued in an open, conversational space.

Of course, the software code being openly available under an open source license like GNU GPL is the defining aspect of any open source application, and I cringe whenever I hear people referring to free web-based tools as 'open source'. But open source is also about a community of people who share a passion, and it's about everyone in the community having a voice and the means to make a difference.

PS. I've reported this bug in the Moodle Tracker.

Coming full circle: Medium of instruction from colonial to post-colonial times in Tamil Nadu

This post is not about Moodle but about something else I'm passionate about: language. I work with people in different countries, and sometimes I get asked if I studied English at school in India. I used to find this question funny until I began to consider it in a post-colonial context.

My mother's parents were born in the 1920s in the Madras Presidency of British India, and they went to schools where the medium of instruction was English (that is, the language in which all subjects are taught). By the time India gained independence in 1947, they were young adults with high fluency in English. They had their first child - my mother - a few years later, and many others followed. None of them studied in English. In the 1950s, 60s and 70s, my mother's generation in this part of the country went to schools where the medium of instruction was usually Tamil, the dominant language of the post-independence Madras state (which later became Tamil Nadu in a further division of Indian states along linguistic lines). English was simply a subject at school with not much relevance to daily life. It was however still the medium of instruction at university, and my parents, like most people at that time, struggled to adapt to the change from Tamil to English.

Why wasn't university education offered in Tamil? Some courses were, but I suppose it would have been an impractical project to translate entire bodies of knowledge into Tamil. With the anti-Hindi agitation of 1965, the importance of English as a 'link language' in the nation was strengthened. Indians have always been migrants to lands abroad, and it must have been obvious all the while that any international prospects for one's life and career hinged on English skills.

So it was perhaps natural that English would re-enter schools in a big way. My brother and I studied in English-medium schools in the 80s and 90, and this was completely normal for a middle-class Indian family. There was no question of studying in a Tamil-medium school. Such schools were considered to be rundown places of education run by the government for the poor, who aspired to send their children to English schools.

But Tamil is in no danger. It is a language with a long written history spanning 2,000 years. The Tamils are fiercely proud of their linguistic identity to the point of offending people from other parts of India, even if they can only use English to make their point.

Monday, May 9, 2016

XML template for creating entries to import into Moodle Glossary

Let's say you want to write a bunch of entries for a Glossary on your Moodle and you want to do this offline -- not directly on your Moodle. In that case the best course of action is to create an XML file with all the entries and import it into a Glossary.

Here's an XML template that you might like to use. It also contains an example of an entry including hyperlinks (you have to use &lt, &gt and &quot in place of <, > and ", respectively).

To create your own entries, copy the lines between <ENTRY> and </ENTRY>. The tags after </DEFINITION> need a binary input: 0 or 1. I'm not sure what <FORMAT> means but I don't think there's any harm keeping this and the last one - <TEACHERENTRY> - as 1. The other three tags match the below settings which you'll see when you try to add a new Glossary entry in Moodle. If they're not self-explanatory see this page.

PS. This post has been featured in Moodlenews!

Monday, May 2, 2016

List of emoticons in Moodle

Depending on the cultural and digital literacy context in which you work, you may find that people use emoticons well, awkwardly, or not at all. If you'd like to promote the use of emoticons on your Moodle, here's a link to a webpage I've created with snapshots of Moodle emoticons. The only Moodle emoticon I've left out is "kiss" -- I don't think that would be very appropriate for most online courses!

Friday, April 1, 2016

User count in the Online Users block in Moodle

In Moodle 2.6 the number of online users is not displayed in the Online Users block until you have at least 50 online users. Until that point you see only their names. Turns out the Online Users block can accommodate a maximum of 50 names. Names beyond the first 50 online users are not displayed, and the online user count magically appears at the top of the block. Sensible -- it's a lot to see the names of even 50 online users! There doesn't seem to be a way of changing this setting, at least in Moodle 2.6.

I discovered this just now -- it's the first day of the AuthorAID MOOC, which I'm facilitating, and we have more than 2000 participants! 

Efficiency tip for Moodlers dealing with many Moodle assets

So you're a super-active Moodle admin or teacher who has to dip in and out of many courses and perhaps even many Moodle sites. On your admin homepage you can use the Admin Bookmarks block to bookmark settings pages within your Moodle site, and of course all the courses you're enrolled in will appear in the Course Overview block. But these aren't enough for me. So I use a simple bookmarking scheme on Firefox. This is what my bookmarks toolbar looks like:

In the "Active spaces" bookmark folder I have links to all the active learning spaces (not all are formal courses so I prefer to say "spaces") on the main Moodle site I work on. Some links point to settings pages within courses, eg, the enrolment page for the ongoing AuthorAID MOOC so that I can quickly check how many people have enrolled. "Old spaces" has links to spaces where courses or interactions have ended but which I still need to refer to now and then. And "More Moodles" is well, a collection of links to other Moodle sites where I help out as an administrator -- these are mostly Moodle sites managed by developing countries universities that are connected to the charity I work for, INASP.

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.)

Friday, February 26, 2016

Extracting user list filtered by enrolment method in a Moodle course

Imagine you want to invite two sets of people to enrol in a Moodle course. You want to place different limits on the enrolment numbers for each set. You can't use Moodle Groups in this case as it doesn't allow group-level enrolment caps (at least not in version 2.6). You can only place enrolment caps at the level of a self-enrolment method. So you'll have to create a self-enrolment method for each set of people. That's easy, but what if you want to extract users who joined the course using each method and perhaps do further analysis? It's easy to see these lists using the filters available in Users -> Enrolled users, but you can't download them (at least not in Moodle 2.6, which I use).

This is what you can do:
  1. Filter the required list of users in Users -> Enrolled users using the "Enrolment methods" filter.
  2. Hide all blocks on this page.
  3. Copy everything on this page using Control + A (on Windows). Yes, copy everything - all the stuff you need and all the messy surroundings. Quicker this way.
  4. Paste everything into Notepad or another text editor (not Word).
  5. Copy the Notepad stuff and paste into an Excel sheet. Now you should see a lot of stuff all in one column - don't worry about the mess. Just make sure it's all in one column.
  6. In the adjacent column, put this formula to extract all the email addresses and ignore cells that don't have an email address: =IF(ISERROR(FIND("@",A1,1))=TRUE,"",A1)
  7. Pull the formula down to occupy all the cells corresponding to column A. You'll then have a cleaner column with only emails but a lot of empty cells too. Copy all this and put into another sheet. Remove the duplicates (in Excel, Data -> Remove duplicates). And you should have a clean list of only email addresses.
  8. Repeat the above process for every page of enrolled participants (I see 100 people per page on my Moodle for step 1 - I'm not sure if this setting can be changed).
  9. Repeat the above process for different enrolment methods.
  10. You probably want more than just email addresses of the participants. Use the gradebook or activity completion report in your course to get a list of all users, add a column in that sheet to put in the enrolment method of each participant, paste the emails from steps 7 and 8 into a sub-sheet, and do a VLOOKUP.

Thursday, February 18, 2016

Checking on participants falling behind in a course on Moodle

There are at least two ways to do this. Easy way first:

Access the list of participants through the Navigation block on the course homepage or the People block if it's there. Look for the option called "inactive for more than" at the top of the participant list. You'll see some time periods going back to the beginning of the course. I'm now helping run a course that started on 1 February, almost three weeks back, so I see the following options:

Select an appropriate value in the drop-down list, depending on what you think counts as active participation. Then scroll down, click "select all", and then click "send a message".

Then write your message for these participants who have fallen behind -- make it an encouraging one! I would say it's a good idea to remind stragglers through this approach only once, ideally a week or so after a course begins. Then it's up to them to decide whether to come back to the course. If you keep writing to the same group of people, they're likely to get annoyed.

But what if you want to closely track who has done what in the course and send reminders to specific people, instead of a catch-all "inactive for X time" criterion?

Then the activity completion report is your friend. This is easy to get started with but requires some spreadsheet analysis:

Click the “Reports” link in the course administration menu block on the left and click “Activity completion” – you’ll see a table with icons denoting who has completed which activity. At the bottom of this table you’ll see options to download the table as a spreadsheet. Download this (a CSV file) and first save it as an XLS or ODS file so that you can use it for analysis, eg, spotting participants who have not done specific things in the course or have fallen behind. (Of course for this you would need to have used activity completion settings for the different resources and activities.) Then you would need to collect those participants' email addresses from the same spreadsheet and email them. Again, it's important to strike the right balance: reminders that are encouraging and get some participants back on track (you can't hope to win over all of them) but don't end up reaching the same people again and again with little effect.