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 - Discussion deleted - Post deleted
Some content has been posted - Post updated - Discussion deleted - 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 1, 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:
  • 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 my relocation to Auroville and work engagements here. Let's see what 2019 holds!

Wednesday, August 29, 2018

Making the Moodle Calendar block neater by removing the Events Key

(I've updated this post for Moodle 3.5)

I think I prefer the Moodle Calendar block to the Upcoming Events block because it has a little more visual appeal and event dates are highlighted. 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 or five 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.

Adding this CSS line in the settings of the Clean theme worked for me (on Moodle 3.5):

.block_calendar_month .calendar_filters {display:none;}

Earlier I used the below lines for Moodle 3.1:
.block_calendar_month.block .filters.calendar_filters 

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

Now my course calendar looks neater:

Thursday, May 10, 2018

7 aspects of accessibility to consider when designing and developing online courses

I recently had an interesting discussion with a colleague about accessibility in online learning and I was inspired to make this table listing some aspects of accessibility for online course designers and developers to consider.

Wednesday, March 14, 2018

Making Moodle pages that are accessible site wide

If you'd like to add 'global' pages on your Moodle site that you can access anywhere, you might find the options in this post useful. These are the options I know of - I won't be surprised if there are more!

Option 1. As part of courses open to guests: You could create a course on your site that is open to guest access, and you could make pages and put publicly accessible resources here (as a kind of repository). The trouble is when you link to any page or resource here, the user will be taken to a completely different part of your Moodle site and this might break the user experience. The user might drift into the course with all the publicly accessible stuff and wonder what it's all about!

Option 2. Using the Main Menu block: On your site homepage add the 'Main Menu' block. Within this block you can add not just pages but any Moodle resource or activity that your site supports! I don't want my users to see the block itself on their homepage so I edit the block-level permissions to make it invisible to students and other roles. This does not affect the visibility of the pages I create in this block. I copy the URL and put it anywhere I like. And they appear neatly as 'Home -> Site pages -> Page title' in the breadcrumb without the confusingly long trail as in option 1.

Option 3. Using the Static Pages plugin: This plugin adds a feature to the Site Administration menu to let you create and maintain static pages. It's great but for one problem: spaces are not supported in the page title. So you are constrained to use one-word titles like 'FAQ' and 'contact', or you need to add hyphens/underscores between words in the title, which ends up looking weird in big font when the page is published.

Option 4. Adding a page directly on the site homepage: If you enable the setting 'include a topic section' in the Front Page settings of your site, you can add any resource or activity directly in the main section of your Moodle site homepage just as if it were a course section. I think the Label resource is particularly useful for the site homepage: with the right design or CSS you can add visually appealing content on the homepage. If you add any other resource/activity such as a page, the homepage develops a course-like character that you might not like! 

Thursday, February 8, 2018

Free Moodle test site with Bitnami and AWS

As a Moodler at a nonprofit I like to know how I can run a complete Moodle site on a low budget if I need to experiment. MoodleCloud is great to try stuff at the course creation level but it does not come with full rights for site admins. I'm a Moodle site admin, not a system admin, so I'm not too particular about server access.

A couple of weeks back I started on a project at work to make our Moodle site more visually appealing. I wanted to show prototypes as we went along without disturbing our production site, and I remembered that Bitnami has a Moodle stack. I opted for the Amazon Web Services (AWS) option as it seemed to offer the cheapest monthly price. Then I found out that I could sign up for the AWS Free Tier which offers 750 hours per month of compute time free of cost for 12 months! A month can have a maximum of 744 hours so I figured I should be able to run one Moodle 'instance' on the AWS Free Tier nonstop.

The process of setting up a Moodle instance on AWS through Bitnami was a bit intricate and I got stuck at the point of copying in the access key ID from my AWS account into my Bitnami account. There was something weird about the form field on Bitnami where I had to put in the access key ID. But soon it was a happy ending and I was lord of my own Moodle site in an obscure corner of the internet :)

Now I'm looking forward to tinkering on this site free of cost for up to a year!

Thursday, January 25, 2018

Moodling in 2017

It's that time again when I reflect on my Moodle experiences in the past year!
  • Last January I tinkered with the Moodle database for the first time soon after taking the MoodleBites MySQL Reporting course. My goal was to get a count of the number of forum posts that received 'useful' ratings. I posted a query and a solution on the Moodle community forums, and my friend Farhan posted a better solution in the same thread. I've not yet got a chance to try out his solution though.
  • In February I was busy revising a research article I'd written with my colleagues. We had submitted the article to a journal a few months before and we got a load of reviewers' comments. I thought the revised article would again be peer-reviewed so it was a huge relief when it was accepted a couple of days after we submitted it. The article, titled 'A MOOC approach for training researchers in developing countries', was published in the March 2017 issue of Open Praxis.
  • May and June are the hottest months of the year in south India, where I live, but luckily I had some travel to take my mind off the weather. I went to Hyderabad to speak at ICT4D 2017 (Hyderabad was also hot though!) and made two trips to Tanzania to conduct training-of-trainers workshops for university lecturers interested in running the AuthorAID online course locally.

  • I was inspired to look at the AuthorAID online course through a new lens after attending a scholarly commons workshop at Indiana University Bloomington in July, and I wrote this piece: Can an online course be a commons?
  • In August my colleague Andy Nobes and I were invited to give a talk based on our Open Praxis paper at a webinar series run by e/merge Africa. We had a really engaged audience who asked a lot of questions!
  • Last year we ran two AuthorAID MOOCs on our usual schedule: one in summer and one in autumn. Before the second one I had some time to make the course materials compatible with the Moodle Mobile app, and it was less work than I thought it would be. The course lessons are made with eXeLearning and I only had to change the theme for mobile compatibility. The core activities were of two kinds: quizzes and writing activities including peer assessment. Moodle Quiz is compatible with the app (even the offline feature of the app) but Moodle Workshop (for peer assessment activities) isn't compatible yet. Still, it was great to see that most of the course materials work well in the app! We got some nice feedback from the learners too :)
  • After another exciting year of Moodling, it was unfortunate that I couldn't attend the MoodleMoot in Mumbai that took place in December. But I'm happy that my friends Farhan and Michelle, two of the most high-profile Moodlers in India, were part of it. Martin (the founder of Moodle) even went to Michelle's school! I'll sign off with the video he made:

Tuesday, August 29, 2017

Is Moodle good for MOOCs? Let's inspect the question first.

Last week I had the pleasure of being a speaker in a webinar organised by eMerge Africa. My colleague and I spoke about MOOCs in the African context based on our experience running such courses on our Moodle site. During the lively chat one of the participants popped this question: 'Is Moodle good for MOOCs?' I didn't quite know what to say and I didn't want to start writing a 'yes, but...' response. Later I realised that the problem lies in the syntax of the question: 'Is X good for Y?' is not the best way to figure out the means to an end if the 'end' or goal is simplified or woolly to begin with.

Let's consider the Y in this case: MOOCs. What's a MOOC? A course with a large number of learners? Fine. What's this course about? What is this course made of - what kind of content and activities? What taxonomy levels do the learning objectives map to? What is the nature of student-student and student-teacher interaction? How will student work be evaluated, and how will the course itself be evaluated? Then, what does a 'large number of learners' mean? 100? 1000? 10,000? 100,000? We need answers to all these questions and more to make the Y concrete. After that we can take up the question 'Is Moodle good for MOOCs?', and there's a good chance you'll find that it is!

Monday, August 28, 2017

Prevent automatic linking in Moodle

Do you (1) have auto-linking enabled on your Moodle site, (2) want to keep it enabled for a given resource or activity, and (3) want to prevent the auto-linking in specific places within this resource/activity?

I use Moodle 3.1 and the advice on this page about adding a span element with the nolink tag did not work for me:

Sadly, the additional tips given here also did not work:

The web address that I wanted to display as plain text rather than as a link kept appearing as a link. Argh!

So I looked for a generic HTML way (not Moodle specific) to prevent auto-linking and came upon this thread:

Phew, problem solved.

You just have to add the <nolink> tag after the http bit of a web address, eg, http<nolink>://

Wednesday, August 23, 2017

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

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.