I’ve recently gone back to college. Well, not exactly, but I have been attending a single class via a massive open online course (MOOC). The course I’m taking is “Principles of Reactive Programming” and is offered by Coursera. It’s being taught by Martin Odersky, Erik Meijer and Roland Kuhn.
The high-order bit of any discussion of MOOCs has to be set to the quality of the lecturers: Odersky is Scala’s inventor; until recently, Meijer was a leading force in Microsoft’s languages division; and Kuhn is the technical lead of the well-regarded Akka framework. These are the types of speakers that would be exciting to hear give a 1-hour keynote at a conference; the privilege of receiving a coordinated 7-week course from such speakers is, by far, the dominant takeaway from the experience.
Not that the technical experience is bad. Coursera’s infrastructure is very efficient. Signup is easy, pages are attractive, and all the logistical elements of the course (lectures, assignments and discussion forums) are easy to navigate. (I’m not sure if this is a broadly available feature, but the course’s homework-grading technology is quite slick: There’s a “submission” build target that uploads your code to a server that subjects it to a test suite, scores it, and posts the results to your account within a few minutes.)
The video lectures are also very clean. Rather than being PowerPoint or Keynote recordings, the content appears crisply displayed against a white background. It’s clear the text is being rendered directly, not videotaped from a whiteboard, yet the lecturer’s hand occasionally appears to annotate the content. It’s a nice piece of sorcery. I’ve mostly streamed the lectures and not had any buffering issues, but they are also available for download.
MOOCs had their 15 minutes as The Next Big Thing a few years ago and now are suffering a bit of a backlash. Completion rates for MOOCs are abysmal, even when controlling for various factors (e.g., college credit offered, being paid to take the course, etc.). The lecturers might be world-class, but no MOOC can provide the rich experience of a college community.
I’ll admit that I’ve fallen behind in my class and will not complete all the assignments, even though I was well prepared for the topic. As with SD Times readers, I understand that my career relies on my continuing education, and I enjoy learning, but a video explaining the universality of the “bind” function has a substantially higher cognitive load than a video in which goats scream like people.
A weekly Google+ Hangout with some friends taking the course was a crucial spur that unfortunately fell apart over the Thanksgiving holiday. Coursera’s discussion forums are impressively productive (the broad backgrounds and sheer volume of students produce high-quality answers to both simple and complex questions, and TAs do a good job of sweeping through and resolving lingering issues), but scheduling an actual discussion is, for me, far more motivating (and I suspect that an in-person meetup would be more motivating still). In the future I probably will not attempt a MOOC unless I can get at least a few friends to commit to a weekly video chat.
Those are my general observations, but I imagine that many readers will be curious about the specific course. I’ll reiterate that the lecturers are uniformly superb. The content is more academic than my friends and I expected, taking weeks to establish the “principles” spoken of in the title. C# developers familiar with that language’s asynchronous features will have a leg up on the concept of Futures, while familiarity with the Reactive Extensions gives an advantage only in week 4.