Online learning

Coursera Machine Learning course logo

In addition to trying to learn how the MEG works and how the brain works and how to put the two together, I’m beefing up my data analysis skills with a few MOOCs from Coursera. MOOC stands for Massive Open Online Course, and they are all the rage recently. And not for nothing, as they will if not revolutionise university learning, at least help to flip the lecture halls, level the playing field of higher education and help out thousands of PhD students around the world. We were just discussing this with a colleague, how many hours we could have saved as first your PhD students if we had these online courses back then! Filling in all the gaps in stats, basic psychology or whatever it is that you now realise you need but never learned as an undergrad is so easy with these open online courses.

With many of the top universities now providing courses online for free, it is easier than before to learn new things and if needed, get a diploma for passing the courses. I’ve enrolled in a couple of machine learning courses, as these methods are used in our group to analyse brain data. Also, I’ve enrolled in a course on networks, as brain connectivity analyses are based on network theory (and I find social network analysis very interesting). Also, I’ve enrolled on Statistics One, as I feel that even though I’ve taught the topic myself, it would be interesting to see how someone else teaches it, what kinds of examples they use, how they explain the basic concepts. (I haven’t had time to view the Stats One videos at all, but there are some critical voices about how the course has been so far.)

Of course, all these courses are time-sinks if you do them properly. You should set aside 8-10 hours per week to view the lectures, take notes, do the quizzes and especially to do the programming exercises. I’ve been struggling with the Machine learning assignments but it is getting better. I think the videos by Andrew Ng are good explanations and they give not only the exact mathematical definitions of the various concepts but also give a good intuition of how they work. And so I haven’t had any problems with the quizzes, which are mostly multiple choice with some calculations that you need to do yourself. This tells me that I clearly understand what the contents of the course and what it is about.

The programming assignments are more difficult, and I have to admit I would not have managed to do them in this limited time I have without the discussion forum and looking at the attempts of other students and the suggestions that some others gave them. The course honour code forbids sharing your code and copying the code of others, but I think for many it is the only way to get forward, as in the online course the teacher is not there to help you out if you get stuck. And in these assignments, it is easy to get stuck and difficult to get unstuck. The programming assignments are set up so that you only fill in snippets of code into functions that are in turn called by other functions that you are supposed to run to evaluate and test your code. This to me makes things very difficult to debug, as you only do a bit of a bit.

Also, even though I’m familiar with MATLAB and the course work is done in Octave, which is almost exactly the same, there is a lack of a bridge between the lectures (and the equations there) and how they should be implemented in the assignments. Some more examples of how to actually implement things and what the whole set of functions that you need looks like would have been welcome. Now it seems that the programming assignment is really about getting all the parentheses, vector inversions and elementwise operations right and in the end you don’t learn anything about what you should do if you needed to work out a machine learning solution for your own data.

But anyway, I’ve learned a lot already, and with a little help of the discussion forums, I’ve managed to return all the assignments so far successfully. This is an interesting course format and can be an effective way to learn new things. I just wish the coding part would be more like CodeAcademy, where you learn by taking small, incremental steps.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s