MOOCing about with SaaS
I've been taking part in a MOOC, or Massively Open Online Course, over the last 4 weeks or so. The course in question is called Software Engineering for SaaS and is being offered by the University of California, Berkeley under the umbrella of Coursera, who are currently offering a range of online courses delivered by various US universities. This particular course is led jointly by Armando Fox (who spoke at our symposium last year) and David Patterson and is highly recommended - I'm finding it hard work but very enjoyable.
The course itself covers Ruby on Rails, the theory and underlying standards related to the development of SaaS applications, agile development, behavior-driven design (BDD) and test-driven development (TDD), Cucumber, RSpec and a range of other stuff. For a five week course there's a lot to take in (especially for someone starting from pretty much zero knowledge) and I'm probably taking more than the anticipated 10 hours per week to get thru it.
Course materials are delivered in the form of a $10 e-book (for which I bought a Kindle, though I have to say I'm rather disappointed with the Kindle as a means of reading technical text books - but that's another story), videos of lectures and associated material, backed up by an online forum where problems can be discussed.
Grading (i.e. homework) takes the form of 4 programming exercises (one per week) and 2 quizzes though it should be noted that there is no formal qualification awarded at the end. Other than the e-book (which is technically optional, though I doubt that I could have completed the course without it) the course is free.
The programming homework is submitted online and graded automatically (which is very neat) and can be submitted multiple times up to the deadline. Each piece of homework has to be completed in 1 week, though submissions up to 1 week late get 75% of the marks.
Homework is completed on your own infrastructure, though it can be done on a free Amazon EC2 account (and free credits for a better Amazon account were given out to everyone who completed the first week's homework). In my case, I have used Eduserv's Education Cloud as my infrastructure (as have a few others at Eduserv). You also have to use GitHub and Heroku as part of the course.
Some idle thoughts on the whole MOOC thing...
1) Despite the lack of a qualification at the end, deadlines really do feel like deadlines and I've spent at least one Sunday night up until 1 in the morning trying to get homework finished before the Monday deadline. Hey, if I hadn't had to get up for work the next day it would have been just like a real student experience :-).
2) How massive is massive? I've heard rumours that more than 50,000 60,000 people signed up for the course but I'm somewhat doubtful that as many as that are actively taking part. Homework 3 suggested that people should take a fork of a GitHub repository before starting their work, and that appears to have happened about 3000 times, which is obviously a much smaller number (though it turns out that people didn't have to fork the repository to complete the assignment, so that number isn't very helpful). The course organisers say that around 7,000 people are actively submitting homework, which is pretty impressive. And presumably there are a lot of others who are following the course but not submitting the homework.
3) In general, MOOCs are premised on the idea of connectivism as a pedagogic approach which I'll summarise somewhat trivially by saying, "you may not know the answer but in a large enough social network you'll probably know someone who does". I suspect this works particularly well in what I'll call "softer" disciplines - for example, where homework submissions take the form of essays. As it happens, it has also worked quite well for this course, not because people have directly given away the answers in the discussion forum but because the general discussion around problems and issues (with all aspects of the course) has been incredibly useful. There have been several occasions where I've only been able to get past a massive stumbling block because of hints left by other people in the formus. (Of course, just plain old Googling for stuff has also been very helpful (and has been actively encouraged during the course)).
All in all, if the other Coursera courses are anything like this one, I highly recommend them.
Addendum: I've just finished the final week, handed in my final piece of homework and taken the last quiz. I have to say that this week's focus on Rspec and test-driven development has taken me well outside my comfort zone. I really haven't understood it and the forums haven't helped (though I must admit that I haven't asked directly in them). I basically haven't grasped the fundamentals of why TDD is good and what I'm trying to achieve as I do it. Oh well, this week has slightly taken the edge off the course for me but hasn't fundamentally changed my overall summing up in the final sentence above. I joined the course primarily to force myself to learn Ruby, and I've suceeded in that.
Addendum 2: Armando Fox has a couple of blog posts (the most recent sounding somewhat relieved :-), Made it to Spring Break, things still holding together) giving his side of running the course. As of March 23 he says that about 5,000 students were still actively taking part in the course so my guesstimate above doesn't look too far wrong.