I just recently finished taking an online course titled "Functional Programming Principles in Scala". The course was offered by Coursera, and it is an example of an MOOC (massive open online course). This class was conducted entirely online, via video lectures, PDF handouts, online forum discussions, and programming assignments which were graded by computer.
"Functional Programming Principles in Scala", which the Coursera website abbreviates to "progfun", was taught by Martin Odersky, the creator of the Scala computer language, and a co-founder of the company that promotes this language. He is also a professor at the Ecole polytechnique fédérale de Lausanne (EPFL), a European technical university in Switzerland.
A few years ago, a co-worker quipped that when he lived in Poland, he spoke English at home, and now that he lives in the United States, he speaks Polish at home. I thought of that remark often, because by day I program in PHP but at home during this course, I programmed in Scala, a computer language that is as different from PHP as English is to Polish.
The course workload announced itself at 5-7 hours/week, but I found myself well over that amount as I struggled to complete the assignments (all computer programs). They had deadlines, and strict standards of completeness, so I put in lots of time just to get my code to even work.
I enjoyed and availed myself to the course forums, which was filled by quite helpful fellow students. I learned a lot from their hints (we were forbidden from sharing homework code) and interpretations of the lectures. Several key URLs were shared that illuminated the classes and assignments, and the forums became my favorite part of the experience. It was the main mechanism for interactivity.
My experience with this MOOC was very positive. I did treat this with the seriousness, enthusiasm and rigor of a freshman. By the end of the course, I felt enriched, and satisfied that I had picked up some significant new knowledge.
MOOCs are a fascinating experiment, but I don't think they will replace traditional college education. What I missed most in this class was talking to the teacher (or the teacher's assistants). Another difference: In college, I was focused on school-work (for the most part). In my online course, school-work took a back-seat to my home and work duties. Taking this class gave me an appreciation for anyone who decides to go to school part-time. It's very time-intensive.
The biggest difference between the course that I just finished and my college experience is money, and all that that entails. My formal education was expensive, and its cost gave it a value that a MOOC would be hard to replicate. During the course, I sometimes thought about abandoning my endeavor, simply because I hadn't put any money into it. Some would argue that I could have done that at real-life college, but I was aware of the lost cost that would have entailed.
My real-life college also furnished me with credentials (in the form of a diploma and a transcript), something that an employer typically scrutinizes, especially for first-time employees. I think it would take a unique and highly open-minded hiring manager who would bring in someone taught exclusively by MOOCs.
In the end, what the MOOC did was get me to learn again. I'm constantly learning at work. Sometimes I'll get sent to some corporate training, but typically I'm often reading and working out code on my own. This course got me to learn in that focused way only working students get to attain. Already, weeks after finishing, I feel like my new-found knowledge is slipping. But not to worry: there's another MOOC I'm planning to take in February 2013!