Dec 17
2013

Self-directed programming and computer science study through MOOCs

Upon starting work as a software engineer at Groupon this April, I noticed that I was an outlier. Pretty much all the engineers I talked to had technical degrees, and a huge number were from one of three sources—Stanford, an Ivy League school or a start-up that Groupon acquired. My particular group was full of crazy-technical Chileans from one of those acquisitions. Needless to say, nobody else had a B.A. in a foreign language like I did. Within my first month on the job I started planning a roadmap to increase my skills to the point where I could shine even among this impressive company.

Education vs schooling

I can’t say I felt intimidated by the formal credentials of my peers. To be completely honest, I was and am a little concerned about credentialism being used to close certain doors, but it’s my belief that such barriers can nearly always be overcome. It’s true that companies tend to be conservative in matters deciding who to let do what work but after a person attains a certain level of mastery, credentials start to fall by the wayside. I learned that first hand when it came to university admissions

Learning foreign languages

I’ve always been a huge fan of education. My feelings about schooling have been mixed. My experiences learning foreign languages have been pretty representative. I took five years of daily French classes and came out of it with barely any communicative skills at all. I could conjugate some verbs and cram vocab for quizzes, but that was about it. In contrast, I never passed a Chinese class more advanced than “intermediate”, but I lived in Taiwan and made a concerted effort at self study for a while. The result was spoken fluency (with a local Taiwanese accent), basic literacy and good enough writing that it was useful for my business. In one case I experienced a schooling success and an educational failure and in the other my scholastic failure was an educational success. With the incredible resources available today, I’m sure self-directed learners can learn Chinese even faster.

And in a lot of ways, language is particularly difficult to learn as a solitary activity. After all, its very nature is social and communicative! Technical studies, such as mathematics and computing should be far easier for the autodidact.

What are MOOCs?

MOOC stands for Massive Open Online Course. There’s a bit of disagreement about what does and doesn’t count as a MOOC, but at least in my mind the gold standards are Coursera, edX, the Khan Academy and MIT’s venerable Open Courseware.

MIT Open Courseware

MIT’s Open Courseware has been around for longer than any other resource listed in this article. In the beginning it was a simple collection of materials used in MIT courses, along with old homework sets and tests. Over time, the school started recording and sharing every lecture of an ever-growing number of additional tools, such as discussion forums. Finally, there are several popular courses which have been bolstered through additional custom created content to better support independent learners.

Despite its age, Open Courseware has some real advantages over other MOOCs. Its material is actual course material that MIT used, so OCS students can be assured that if they’re doing well on the finals for courses they study, they’re attaining world-class skills. Similarly, it’s not too hard to know what courses to take when. MIT’s curriculum is has an explicit structure of classes that are required before taking other classes, just as any other school would. Since everything is open and available at any time, students can take courses in exactly the order that’s most suitable for their learning.

The weaknesses of OCS are that there’s no kind of proof of accomplishment, there are no gamification features to motivate students, and since everyone is studying at a different time, the forums aren’t always that active when people need help.

The Khan Academy

The Khan Academy started as a collection of youtube videos created by its founder, Salman Khan. Most focused on his domains of expertise, mathematics and finance. Each video is about 10 minutes long and covers a given topic, e.g. the Law of Cosines. Since each one is self-contained, it’s very easy to jump to exactly the kind of problem you’re currently interested in learning or reviewing. One area in which the Khan Academy really shines is Salman’s ability to explain topics clearly. He truly is a remarkable teacher. Even though nearly every lecture I watch on other platforms is from an instructor world-famous in their own domain, Salman still stands out in comparison.

More recently, the Khan Academy has built out its K-12 curriculum and turned it into what could be considered an actual “course”. The great videos remain and students who choose to log in can now do practice problems repeatedly. Using the principles of spaced repetition the platform gives students problems to work on at just the times they most need them. There’s also a well-integrated gamification system with badges and points. The higher level materials are still there but seem to have fallen by the wayside. Another thing the Khan Academy does well is its knowledge map of what concepts are prerequisites for other concepts.

Coursera

Started by a couple of Stanford profs, Coursera is modeled fairly closely after actual university courses. Classes have start dates, homework with due dates, tests and occasionally peer-graded homework assignments. The materials for a class generally include short videos of 5-20 minutes, lecture notes and sometimes starting code for computer classes. Students who achieve a high enough grade receive a “statement of accomplishment” PDF, generally signed by the instructor. These certificates hold no value in terms of credit, but they do still serve as some motivator.

The instructors are nearly all world-class, at least in terms of their careers. When I took their class on the Scala programming language, it was taught by none other than Martin Odersky, inventor of the Scala programming language! You can learn machine learning from co-founder Andrew Ng, who happens to be one of the leading researchers and authorities on the topic. You can take a multitude of courses from a multitude of top notch schools and instructors. Another plus is that with due dates, the courses tend to have discussion forums full of people working on the same things. I enjoy the automated grading systems for the CS courses. From what my friends have told me, they’re very similar to those used for actual computer science classes. The videos also have a feature I haven’t seen other platforms adopt yet—periodic pauses with multiple choice questions to make sure you’re following along! I never felt I needed anything like this, but I often find myself getting the questions wrong, rewatching part of the video and then understanding the material much more concretely.

A significant strength of Coursera that shouldn’t be underestimated is its huge and growing library of courses. There are hundreds of English language courses and at least a dozen Chinese language courses right now.

Problems

Coursera is the single platform I’ve invested the most time in, and as a result I’ve also found some drawbacks. The largest one is that the level of rigor in the classes vary quite a bit. For a few courses, such as the one on Recommender Systems, I get the impression that the students of the hosting university were given the exact same assignments. For others, the classes were clearly a very watered down version of what the university offered in its in person class.

The second problem is the nature of the testing-based approach. Since people are trying to earn certificates and Coursera’s business model relies on these certificates being valuable, they have to police cheating via an “honor code” that prevents people from getting help with or helping each other on specific problems. As a result, it’s great when things are going smoothly, but the student has few options other than quitting or inefficiently “grinding” when stuck or getting an error on something they believe is correct. That’s a horrible use of time and doesn’t lead to faster learning for anyone. Adding practice problem sets for each graded homework could help a lot.

The third large problem I’ve seen on Coursera’s platform is that courses often contain unlisted prerequisites and/or significant barriers that derail students from the start. Some courses do a good job of being self-contained. Most non-introductory ones make assumptions about their students’ backgrounds that go far beyond the prereqs listed on the course info page. Still other classes, including Coding the Matrix and, sadly, the flagship course on Machine Learning have had serious technical issues. I saw quite a few people bail on the ML class just because the download instructions for the MacOS version of the required Octave programming language didn’t work!

One thing I’d love to see: a Khan-style knowledge map that shows the actual dependencies from course to course and maps a path to get to a course a student wants to take in such a way that there are no prereq problems. I’d also love to see more standard math courses. As of right now, a search for “differential equations” turns up zero results!

edX

Not long after the initial success of Stanford’s Coursera, MIT and Harvard launched a similar project called edX. Since I’ve written so much about Coursera and am so much more familiar with Coursera, I’ll just highlight the main differences. Nearly everything in the two sections above about Coursera also applies to edX.

Coursera classes are free to take, but it’s a for profit venture. In contrast, edX is entirely a non-profit that survives off of donations. From an end user perspective I haven’t seen a way in which this makes a difference yet. On the plus side for EdX, it has a slightly nicer online system that includes some features for students to track their progress and grades throughout a course. EdX also managed to lure UC Berkeley away from Coursera onto its platform. That’s a pretty big win since they had some of the best MOOC content.

The downside for edX is that there’s hardly any content. A search for current CS courses yields a total of only four results, all of which have been running long enough that a passing grade is impossible to achieve for an entering student. It takes both planning and luck to get an appropriate course when it’s available. Generally edX courses all follow the semester schedule, which is also a downside since most people’s vacations and free time tend to be concentrated right when there are no courses offered!

Summary of MOOCs

There’s a fantastic array of free learning materials online now. It’s more possible than ever before for people without money or credentials to get an absolutely world-class education. Even non-English speakers are beginning to see some free material popping up. That said, every one of the major MOOC players has its flaws and weak points. In general, I’d recommend the following:

  • If you want to learn basic math, use the Khan Academy.
  • If you want the most rigorous education, use MIT’s Open Courseware.
  • If you want a structured course with support, use Coursera (or edX)

I’ll share more about the specific classes and what I encountered in Part II, and my current coursework and plan in Part III (to be published)

This entry was tagged , , , , , , .
Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *