Recently, I took on two classes online on two different providers. After a trial more than a year ago, I decided to try MOOCs and I have a few conclusions from them.
As I’ve said, I tried a class some time ago on Coursera on audio signal processing. I was quite disappointed, as the content was more than basic and the tests were screwed up. Lots of the tests are automated and you can pass them several times.
This already shows that the quality of course and its tests depends a lot on the time spent by the teachers on building these systems. In that course, you would upload a Python pickle and the system would check the results. The issue is that the data for those tests was different from the data we could use to try and fix our code, with less common sense and with constraints that one could not think about.
But I tried again, first on Coursera with a course on Neural Networks. I took the class with the certificate just before they updated it to use Python. I was still lucky that someone ported their Matlab code to Python! There were a few mishaps, some formulas that were not obvious from the videos, but the tests were doable, the skeleton code was good and robust and the teacher knew his turf.
Then I went looking for a class on OpenGL. I found one on Edx and followed that one. And there it was exactly the opposite. First the tests were quite easy for the first 3 assignments, but then the last one… I mean one of them was implementing light in a skeleton shader, with a few transforms that were presented in the video, and the next one is implement a full raytracer with a parser. The step is just too high for the average programmer. Especially since you spent 2 out of 4 units talking about matrix multiplications in deep length!
The first straw was actually the OpenGL content itself. It was 10 years too late (OK, 8), still talking about OpenGL pre-3, and even the last assignment where you started playing with shaders, half of the code required OpenGL pre-3. This is not acceptable. Not when you have to pay 99$ to get a certificate that is basically useless.
MOOCs are targeted at professionals, not students (as the latter are still learning in real class rooms, there is no benefit for them). But the quality of the classes is still really random. On the same platform, you can have something great like neural networks, or something uselessly hard (to pass because of crappy auto grading, not to follow) like audio signal processing.
Each platform has its own way of presenting the classes, and they are more or less similar, you can find your way in one or the other. The issue is being able to qualify the quality of the course and how you get graded. Nothing is more annoying when you don’t learn anything relevent or when you fail a test because the online grading tool expected a vertical vector when you provided a horizontal one and it passed locally.