Tag Archives: reviews

I've spent a lot of time on Massive Online Open Courses (AKA MOOCs). I've learned some great things from them, but I've also encountered a lot of time-wasting inefficiencies. For the most part, I've been taking programming and CS-related MOOCs. There are quite a few I looked at and then bailed on before doing any work, but also quite a few I put work into. Below is a list of the classes I worked on and then a summary of each.

Courses Studied

  1. Software Engineering for SaaS (UC, Berkeley)
  2. Introduction to Systematic Program Design (University of British Columbia)
  3. Discrete Optimization (University of Melbourne)
  4. Coding the Matrix: Linear Algebra through Computer Science Applications (Brown)
  5. Algorithms, Part I (Princeton)
  6. Linear and Integer Programming (CU, Boulder)
  7. Functional Programming Principles in Scala (École Polytechnique Fédérale de Lausanne)
  8. Automata (Stanford)
  9. Principles of Reactive Programming (École Polytechnique Fédérale de Lausanne)
  10. Mathematical Biostatistics Boot Camp 1 (John Hopkins) - In progress
  11. Creative, Serious and Playful Science of Android Apps (UI, Urbana-Champaign) - In progress


I think the best introductory book to programming that I've ever seen is Learn to Program, by Chris Pine.  My buddy I was staying with last summer went through it while I was there and made absolutely fantastic progress.  Despite never having programmed before, really, he tore through it in a week or two and got enough out of it to start programming simple scripts to help with his research job.

The entire book is taught in Ruby, but I don't think the language used matters that much.  The thing is it teaches concepts basic to almost any kind of programming -- functions, classes, recursion, blocks, etc...   And more importantly, it makes them fun!  Even the very simple exercises, such as "deaf Grandma" and "angry boss" were amusing.  My friend has ended up working almost entirely with Python, but everything in the book was still useful and there was little pain in switching to a new language compared to the difficulty of getting started.

When I first got curious about Ruby myself three years ago, I tried the Pick-axe book and gave up out of boredom.  It really could have used regular programming challenges or problems at throughout the book.  Unfortunately almost all the other resources that were around at the time were focused on Rails.  I really wish I'd found this book back then.

Some free online lessons that later became part of the book can be found here: http://pine.fm/LearnToProgram/