These days, there are several dozen ways to learn to code online. Python, in particular, is the language of choice for several online courses. This has allowed me to “shop around” for the online tool or tools that suit me best. It has also given me a chance to think about the different elements that go into a successful online learning experience.
I have been thinking about learning some computer programming for quite some time. In fact, as I’ve told a number of people recently, not taking CS is my biggest regret about my own college experience (oh, so many years ago!)
When I first read about the mechanical MOOC, I decided that it was time. It would use Python, which is the language I had settled on, and it would use existing online resources in combination: Opencourseware and online textbooks courtesy of MIT, exercises from Codecademy and online discussion in OpenStudy.
Before the Mechanical MOOC even started, I learned that edX would offer MIT 6.00x: Introduction to Computer Science and Programming. I enrolled in that course and worked through the first week’s material. I quickly fell behind though, as it required more than 12 hours of work each week, which was not possible while working full time and raising two small children! I then found out that a team of Rice University professors would offer An Introduction to Interactive Programming in Python on Coursera. Around the same time, I started looking at the Intro to Computer Science course on Udacity. In the end, Udacity was the python course that proved to be “just right” for this
serial dropout Goldilocks. Here is a summary of the elements I find interesting or effective from each course.
I tried Codecademy out at the beginning of the year when they launched the “Codeyear” challenge. I revisited it when I started planning for my participation in the Mechanical MOOC. In the end, this was not an effective way for me to learn. The exercises offered little challenge. It was analogous to learning French by transcribing a dictionary. There are challenges built into the sequence, so maybe there is a little more problem-based learning built into the system than I am giving them credit for.
(As an aside, all of these systems can learn a lot from Khan Academy’s approach to gamification. My kids are highly motivated to complete exercises because they need those points in order to “unlock” new avatar images and other tools on the site.)
Codeacademy wins for gamification.
MIT 6.00x is a trial-by-fire approach to an introductory course. The material covered in 12 weeks would be covered in three semesters at my own institution. If I could dedicate myself to it full-time, it might have been possible, but it just wasn’t realistic for me to stick with it.
Another problem with the course was the quality of the videos. Low resolution made the live-coding videos completely illegible, and most of the action was happening at the bottom of the screen where the text was obscured by closed-captioning anyway. There were a few interesting visual metaphors in the first video, but after that, the videos alternated between a talking head, a scribbled-on slide, and illegible live-coding.
On the bright side, this platform might be the best of the three in terms of community management. First, The course starts with some orientation videos, which include advice about discussion board etiquette. Under each video, the learner can access a discussion board. This is quite useful because finding relevant information on the main discussion board can be daunting. The course wiki was also quite effectively used, with TAs seeding a number of pages to steer its development.
The “finger exercises” sprinkled between the videos are true puzzles to solve. I found them more useful than the Udacity in-video exercises. There were multiple problems on each page that built on each other. Many of them went over my head, but if I had more time, or a background in another programming language, I think this would have been a very effective way to learn.
MITx wins for design.
Rice / Coursera
This is the course I spent the least amount of time in, as I discovered Udacity at the same time and decided to stick with that one. However, I was very impressed with the production values of the videos. There was clearly some editing, and the livecoding was legible and appropriately used. Based on the first couple of videos, I think the content of the MITx course may be more complete (There were a few points in these videos that only made sense to me because I had already covered those concepts in the MITx class), but it seems a reasonable introductory course.
Rather than focusing on syntax like Codeacademy, or deep theoretical knowledge like MITx, this course is oriented around game design. The first videos show the learners an example of the game they will design by the end of the course. I can imagine that this would be highly motivating for younger learners or those who are interested in digital games. I’ve heard this called a “media first” approach to computer science. The use of humor made the instructors accessible to the learner in a way that the MITx course didn’t achieve.
I didn’t stick it out in this course, largely because I had heard negative reports about peer-grading in Coursera, and didn’t think it would be an effective way for me to learn.
Rice wins for engagement.
Where the Rice course is built around game design, the Udacity course orients its lessons around building a search engine. I’m not much of a gamer, so this goal was more motivating for me. After only a couple of units, I have enough knowledge to start writing my own scripts for projects at work.
Udacity is the most “careerist” of the three major MOOC platforms, with its latest course additions offered by industry experts rather than academics. The videos occasionally cut to a shot of Sergey Brin or of Sebastian Thrun in his autonomous car lab. Even the discussion board is a clone of StackOverflow, the Q&A site for programmers. Udacity is positioning itself as a silicon valley prep school, which is part of the reason I find this platform more interesting than Coursera, which is trying to be some sort of metauniversity.
Rather than a talking head, most of the Udacity videos are of a (transparent) hand, writing and sketching. This sketching approach is adapted from the one Salman Khan uses in most Khan Academy videos, with a few additional production values. Most interaction (a.k.a. quizzes) is embedded into screenshots from these videos. This is one part of the interface that I could do without. It seems like a bit of a gimmick to me, and I’d be interested to learn if there is some pedagogical advantage to them. The MITx finger exercises delve deeper into the material, but they also keep the learner away from the instructor/video longer, so it’s easier to start feeling lost, I suppose. In this sense, the Udacity experience is more like solving problems on the blackboard while the MITx experience is more analogous to homework.
The social features of the course are somewhat limited, especially since it it self-paced and there is no cohort of classmates to connect with. The Stackoverflow-like forum is designed to yield artifacts, rather than ongoing discussion. In that way, it’s a bit more like a FAQ or wiki. Udacity.me is a new showcase for student work, which is also oriented toward static displays rather than community-building
Ultimately, what keeps me in this course is that it is self-paced. Apparently, the decision to drop the deadlines from the second iteration of the course was a controversial one. The instructor Dave Evans posted on the discussion board:
it’s clear there are both major advantages and disadvantages of forced pacing and deadlines, especially in terms of keeping a community together. Our hope is to eventually get to a model where we can provide the important experience of a community going through a course experience together, while allowing individual students to choose the desired pace and strictness of the course. Unfortunately, our technology isn’t up to that yet. We are viewing this model as an experiment, and hope to learn from it what works and doesn’t work about this more open model, towards the goal of eventually providing the best of all worlds. – April 22, 2012
Udacity continues to add pieces to its course, including a few optional problem sets and some recorded videos of the instructor answering student questions. I respect the “under-construction” vibe I get from public comments made by David Evans and Sebastian Thrun.
While Coursera has faced problems due to plagiarism in combination with its peer-grading scheme, Udacity has mostly stayed above the fray by sticking to areas that can be graded by computer and not worrying as much about certification. Both Udacity and EdX have contracted with Pearson VUE for testing, which outsources much of the user authentication and certification aspects of their courses. That gives David Evans the flexibility to say things like this:
Keep in mind that the main goal is learning, not so much assessment, and we prefer to use materials in a way that maximizes the learning opportunities for honest students rather than worrying too much about how they could be abused. July 10, 2012
Udacity wins for philosophy.