Algorithms Continued

Last April, my friend Eric told me that I would love taking Coursera’s Algorithm’s class by Stanford’s Tim Roughgarden. I love it. They remind me of my math problem sets in college. Now, why it didn’t occur to me to take the course when I actually was in college… is probably fodder for a different essay.

I wasn’t surprised that I liked the topic, but I was surprised by how much I actually liked a MOOC. Things that make it work well are:

  • You can speed up/slow down the videos so you’re always listening at the right pace for you and that topic. I find myself often switching speeds depending on if I’m effectively “skimming” something I understand, learning at a tyical listening rate for me, or slowing it down (with pauses too) to go over something particularly complex where I want to be able to think about it and not just list.

  • The in-video quizzes help you check understanding and engage the problem solving (not just listening) parts of the brain mid-lecture, so it’s just not listening.

  • The problems are actually challenging which makes them interesting, but doable. In particular, having the programming problems means that you don’t just have multiple choice guessing. The discussion forum helps, so that if you’re stuck you’re not on your own. This means that they can make the problems harder since people can get help to work through issues.

  • Even though the material is static, there are still deadlines. It seems tempting to not have deadlines to increase flexibility, but having deadlines creates a forcing function for actually prioritizing the work since you can’t just ‘do it later’. In particular, “I have to finish my homework before it’s due!” is much more socially acceptable to friends and significant others than “I’d rather study algorithms than hang out with you” :). At the same time, they offer the class every few months, so if you have to drop off you can pick it up again the next session.

Speaking of having to drop off… even though I’d been enjoying the class quite a bit, I ended up not finishing the first round. Things came up, in particular my Simpson’s paradox data viz paper being conditionally accepted to InfoVis and needing revisions on a tight timeline. Then, during the next round, I was at SFPC.

But, the course just started again and I’m excited for the chance to complete it. I’m on week 1, and was pleased to find that I actually remembered the content quite well from the first round. So, after completing the homework assignment, I had some fun with the optional theory problems. I figured out the first 4. One more to go! I also implemented the solution for the first problem in python, and implementing the algorithm is a certainly different challenge from figuring out what it should be.