My first MOOC (Programming Languages, Coursera)

I enrolled in my first MOOC, which started last week. It’s a course called Programming Languages, designed by Associate Professor Dan Grossman and others at the University of Washington, and hosted by Coursera.


What is a MOOC?

If you’ve never heard of MOOCs (Massive Open Online Courses), they’re online courses designed by universities, open to anyone (and free), and allow for unlimited simultaneous participants. Some are self-paced, some are scheduled. Some are offered by universities directly, while others go through a third-party like Coursera or edX. The concept is very much a work in progress. Read more here.

What’s not to like? Quality courses for the masses for free. I have no idea how it’s financially viable, but it seems a lot of involved parties are trying to figure that part out. Just who are these “involved parties”?

“The larger non-profit organizations include the Bill & Melinda Gates Foundation, the MacArthur Foundation, the National Science Foundation, and the American Council on Education. University pioneers include Stanford, Harvard, MIT, the University of Pennsylvania, CalTech, the University of Texas at Austin, the University of California at Berkeley, San Jose State University and the Indian Institute of Technology, Bombay IIT Bombay.

“Related companies include Google and educational publisher Pearson PLC. Venture capitalists include Kleiner Perkins Caufield & Byers, New Enterprise Associates and Andreessen Horowitz.” (source: wikipedia)

A lot of organizations, a lot of different ideas. Until they do figure out how to monetize it (if that’s the direction it ultimately goes), enjoy free courses! ;)


I can’t speak for any other provider yet, or even any other class at Coursera, but so far (only a week in) I’m impressed with the layout of this one. The site is divided into areas for:

  • class announcements,
  • installing required software (if any),
  • lectures (in video and pdf format),
  • homework submission,
  • participating in the community, and more.

Everything up to this point has been easy to navigate and find. If you’ve taken eLearning courses before, it should be relatively easy to get up and running; however, the devil’s in the details so to speak. The most confusing part of the process has just been the newness of it all.

Fortunately, Dan is aware of that and acknowledges it right away. He made videos showing him installing the various required software and running a few sample programs, and he also explains the homework submission process in detail. When you’ve got hundreds or even thousands of participants in a class, you need to find ways to grade homework that doesn’t involve going through one (or a few) people.

Programming Languages

There’s not much else to say about it yet, except that functional languages are much different than the OOP I’m used to! I can’t see how you’d write an entire application in it yet, but each successive “layer” builds upon an unchanging base, whereas pretty much any previously defined object in C# can be changed at any time, making earlier assumptions invalid. It’s difficult to explain until you see it in action.

Why am I doing this?

More like, why am I doing this to myself? There are two reasons.

  1. I develop nearly exclusively in C#, and I’m looking to expand my horizons. No one language is perfect or lasts forever, and getting boxed into a single language is foolish. I hope to learn the basic concepts that apply to all programming languages, and get an introduction to functional programming at the same time.
  2. I want something semi-structured, to get me moving.

The last time I was in school was back in 2007, earning my Bachelor’s degree in C.S. Looking back, it provided me with several things:

  • Accountability: There were deadlines and a moderate level of collaboration with other participants.
  • Confidence: I stayed motivated and self-driven, seeing something through to completion.
  • Mental Exercise: Finding new and interesting ways to challenge yourself keeps you sharp.
  • Knowledge

It was a PITA at times, taking courses when all I wanted to do in the evenings was relax, but I finished it. I’m proud of it, and hope I’ve set a good example for my kids.

Fast-forward 7 years. I read a bit, play around with new technologies a bit. But it’s so easy to get distracted, and for goals to get side-lined. It took me a week to get thru a 3-hour Pluralsight course on technical debt! (It was good, btw.) I’ve got 4 kids now, more responsibilities than before, blah blah blah.

That’s how rationalization works. And rationalization and procrastination go hand-in-hand. Why study when I could just relax? Why exercise when I could just relax? Why relax when I could just… um, relax more.


Basically, I want to push myself again, like I did before, and I think this may prove to be a good way to do that. Of course, things aren’t exactly like they were before. There are more participants (many more) than online courses I’ve taken before, so it’s less intimate. And the classes are free, so it’s easier to walk away when it gets tough or something else comes up.

If you doubt it’s tempting to walk away, just look at these abysmal stats from one class:

“In the course Bioelectricity, Fall 2012 at Duke University, 12,725 students enrolled, but only 7,761 ever watched a video, 3,658 attempted a quiz, 345 attempted the final exam, and 313 passed, earning a certificate.” (source: wikipedia)

Less than 3% of the original enrollment even attempted the final exam! Granted, I have no idea how the course was organized or what kind of technical limitations/aggravations there may have been, but geez it couldn’t have been that bad.

So, here’s to staying motivated enough to finish! It’s only 10 weeks. I’ll write more posts with my thoughts and experiences, as the course proceeds.

Subscribe to Weekly Updates!

Get an email with the latest posts, once per week...
* indicates required