Our Glasgow Haskell MOOC started just after midnight, early Monday morning, 19th September. I was slightly caught out, because I was still tweaking our online Haskell programming environment when the course went live! I quickly finished my edits and deployed the code on Amazon Elastic Container Service, so it was ready for the eager learners.
The first few learners to start the course were like swarming ants – energetically exploring all the activities and posting comments about typos and other minor glitches. So I was able to iron out lots of typos and inconsistencies before the bulk of the learners saw most of the material.
Lesson 1 – fix bugs early and often.
I was a little worried that our online Haskell interpreter would not scale to meet the demand of hundreds of learners – however it seems to have coped very well indeed. We are running 10 medium sized AWS instances, each one hosting a Docker container with the tryHaskell web server running on it. We have not exceeded 5% overall CPU load across the cluster – so we probably only need 1 or 2 instances in general.
Lesson 2 – cloud computing enables scalable provisioning for server tasks
Well, I haven’t actually scaled down yet – I will reduce the number of VMs and Docker containers once I get my head round the amazingly complex Amazon interface 🙂 UPDATE I have scaled down to 4 AWS instances now, and everything still seems to be running ok.
One of the most impressive aspects of the course, to me at least, has been the level of engagement from the learners. This is very evident in the Comments section attached to each page of the course material. Learners are very keen to find and fix bugs — and, more importantly, to discuss ideas and misunderstandings with other learners. We have a team of 3 mentors (PhD students from Glasgow) and myself, who all respond to comments where we can. However it’s brilliant to see the learners supporting each other.
Lesson 3 – peer assisted learning is the ‘default’ for MOOCs