May 8 2014

Massively online courses' most important feature

Massively online courses are a great way to gain more knowledge. They don’t require you to be in a particular physical location or pay expensive fees, and you get pick from a healthy selection offered year-round. In the last year, I’ve used both Udacity and Coursera.

Udacity is quite nice in that it divides the material into small bite-sized chunks of 2-3 minutes. On the courses I tried, small quizzes in-between videos are more frequent than Coursera.

However, Coursera stands out by having one really really important feature. What could I be referring to?

Introducing the fast forward button.

Wait, why is this so important? And can’t it be enabled via a little hack on Udacity (which uses Youtube for its video player)?

I didn’t realize how useful this feature was until having gone through a few courses and three semesters of real-life lectures at University of Waterloo. From my personal experience, the main concern is pacing.

An online course can make very little assumptions about its audience. Consider a C++ course. There will be students with no programming experience at all, students with programming experience in higher-level languages like python, students with programming experience with C-style unmanaged languages other than C++, students with some programming experience in C++ but only for parts of the material covered in the course.

The course will need a refresher on basic programming concepts before moving into more advanced C++ material, say polymorphism. The refresher will feel slow to some students. Having taken a functional programming class IRL, the refresher section of “Principles of Reactive Programming” in Scala was quite slow.

Furthermore, the course cannot jump right into the material. Like an essay cannot start arguing for its main thesis without an introduction, a course needs to motivate its material and begin at a higher level. This establishes context. However, at the same time, the introduction will have significantly lower information density. Although I had already written GPU programs prior to taking “Introduction to Parallel Programming with CUDA”, I would have been confused if I jumped right into the material without a reminder of GPU’s capabilities and limitations, to set up a mental context.

As such, in 99% of cases, a course will begin slowly. This is an unavoidable consequence of designing a course in such a way that everyone can follow the material. Slow, however, means boring. Boring means loss of interest. Loss of interest means reduced retention.

Can’t the student skip over the slow and boring parts? Well, not quite. Low information density does not mean zero information density. There may be just a one or two concepts introduced in the refresher that is critical for later assignments, and even smart students will be confused if introduced to material without context. And without having taken the course, how can the student know which parts can be skipped?

The pace will eventually pick up - doesn’t this make this a non-issue? Well, unfortunately, the human brain doesn’t evaluate each lesson independently. If the brain gets bored in the early stages, it might view all subsequent material more negatively.

I took a data structures course, CS 240, on my third semester. It took a whole month to go through asymptotic notation and heaps. By the time I was introduced to new material (such as B trees or lempel-ziv compression), even when the pace was reasonable, everything felt like slooow mooootiooon. I could not regain interest in the course (but fortunately still ended up with a 94%).

That’s where fast-forward becomes really useful. If the words of the instructor have half the information density in the introduction than for the core material, it suffices to listen to it at twice the speed. I never got bored at any point during “Principles of Reactive Programming”, as I could adjust the speed to 2x during context-setting, 1.5x for easy material and 1.0x once I got to more challenging material, such as monads.

Fast forward can be enabled on Youtube players too, but discoverability is key here. I never thought that it would be useful to fast-forward until the option was presented to me. In the meantime, there are quite a few courses that I started on Udacity, but lost interest a quarter of the way through as it did not cover enough material I was not already familiar with (though I have no doubt many of the material covered later would have been new).

Now, if only someone could invent a similar fast-forward feature for real-life lectures…