In my last post, I reviewed Udacity’s CS101 course (Intro to Computer Science), which was a really good experience. Here’s my take on the next more advanced (and seemingly popular) course: CS253 (Web development).
A bit of a sinker (Grade = C+)
Unfortunately, my experience with CS253 left a lot to be desired. While I got something out of it, I think it would be a very frustrating experience for someone with even a "moderate amount of programming and computer science experience" (the sole stated prerequisite).
In terms of my great-MOOC ingredients:
- Content: The content for this course was a bit all over the place. While the source of the content was credible (someone with demonstrated success delivering large-scale, high-volume web applications), the actual content itself was lacking. Some of it was far too elementary for an intermediate course (notably all of the rudiments of HTML and CSS), it varied between the abstract and the concrete, and some of it was advanced and irrelevant. I had the same complaints about third-party documentation as in CS101. Some of the content presented used examples that were no longer valid (e.g., things that relied on API calls and return values). Finally, new content was often presented in the context of office hours, which was easy to miss, since those weren’t strictly required.
- Pedagogy: Steve Huffman, founder of Reddit and Hipmunk, is clearly smart, very like-able, and earnest; he obviously worked hard and did his best in this course. While these qualities are desirable in a good teacher, they don’t necessarily make a teacher good. By his own admission, the Udacity course was Huffman’s first (strike one), and he said he was learning as he went (strike two). Additionally, he was using the technology platform the course was based upon (Google AppEngine) for the first time (strike three). All of these factors added up to an earnest, but flawed, approach to teaching (in this reviewer’s opinion). Course material just wasn’t thought out well, and the execution left many in the dark (as evidenced by comments in the forum from numerous frustrated and confused students). One particular source of frustration for me was that in solutions to quizzes, Huffman often used code constructs or approaches that he had not covered in the course. He would preface his solutions by saying, "Well, I didn’t really teach you guys this, but here’s how I solved it [ha ha]." From a pedagogical standpoint, I thought this was poor form. Finally, I felt like a lot of the quizzes and homework problems were too much of a leap from the course material. I found myself struggling in a few instances, and a cursory examination of the forums showed many who had no idea how to proceed.
- User Experience: See comments for CS101 above.
- Connectivity and human interaction: See comments for CS101 above.
- Tie-ins to real-world problems: CS101 had a consistent thread of real-world application from start to finish (build a search engine). While CS253 was ostensibly about building a blog, this thread seemed a lot thinner throughout, and content in later units didn’t seem related to this underlying task. Maybe this was just my perception, but I felt like the real-world application tie-in just wasn’t as strong.
- Technical support: One of the first tasks in CS253 was to install a local version of Google AppEngine (GAE), which also required students to have Python 2.7 running locally. As it turned out, getting up and running with GAE was a non-trivial task; Google’s instructions were pretty poor, and CS253 didn’t provide too much guidance. I feel sorry for the non-Mac users who also had to install Python. It seemed like this was quite a hurdle for some students, as evidenced by comments made in office hours. I can see how this initial hurdle would have been too high for many people, and there just wasn’t enough support.
- Feedback and response: The CS253 team excelled in this department, basically trying to compensate for what I saw as poor instructional design. If the content covered in office hours is a reasonable indication, they got quite a bit of (negative) feedback from confused students, and to their credit, Huffman and his TAs did their best to address these concerns. This response was essential, and in many cases, material covered in the optional office hours was more useful than some of the course content.
- Assessment: The same problems I outlined above for CS101 apply to CS253, but I felt like they were exacerbated by quizzes or homeworks that just required students to fill in too many gaps not covered in the course. As a result, the binary right-wrong outputs were even more frustrating and useless.
Reviews on Knollop and coursetalk were flattering, as with CS101, and a thread on Quora also piled on praise. The Good MOOC points out some of the flaws I mentioned above, and indicates that students need more than CS101 to be successful, and will need to rely on external resources to solve many of the problems posed. One dropout blogged about her experience, complaining that the level of the course and homework were well above the stated prerequisites. Despite all the glowing reviews, I stand by my criticisms. This course was much more of a sink-or-swim experience, and they weren’t throwing out enough life preservers.
Next up is my last, hopefully controversial and exciting, post on what I think about the future of MOOCs.