Sometimes things happen incrementally. I signed up for Coursera back in 2013, because I felt uncomfortable critiquing online classes without having experienced them myself, but it was not until this summer that I finally signed up for a course. I liked it, for the most part.
The course I chose was the ten-week “Programming for Everybody (Python),” a crash-course in Python run by the University of Michigan’s Charles Severance. The premise of the course is that programming is a life-skill for people in the digital age, so people should know the basics of how to program computers and can figure out applications for the skill later. [Of course, when I told my brother, a programmer, about the course, his immediate question was ‘what are you going to do with that’? and I didn’t have a great answer because I was doing this for a skill more than for a goal. More on this below.] Severance is a big-time advocate of MOOCs and digital and online learning and that enthusiasm carried over to the course, probably contributing to its popularity among Coursera’s offerings.
“Programming for Everybody” had four weekly components, two informative and two graded, and a final exam, as well as some added bonuses that I either wasn’t interested in or didn’t have time for (I am trying to finish my dissertation in a timely fashion, after all). Each week consisted of a video-lecture (posted to the course and to Youtube) based on one of the chapters of the textbook, which was available for download. The graded components were short quizzes (ten question, multiple choice) based on the lecture and book and a programming assignment that was graded on the ability of the code to spit out the correct answer. The final was a cumulative, longer version of the quizzes. None of these assignments were timed and the tests and quizzes could be retaken multiple times, with the graded score being the most recent (rather than highest, I think) of the allowed attempts. Some of the programming assignments were a little tricky as they became more complicated, but all were quite doable and the class forums were helpful when I checked them out.
All in all, it was a good experience with the course. I learned quite a bit and while parts of it felt like a breeze, there were points at which I had to put in real effort in order to move forward. Sometimes this was simple things like having difficulty distinguishing between a comma and a period in the video, other times it was more than that. However, I will also admit a bad habit that I found myself slipping back into. Whenever I felt like I was able to “just get by” with the lecture and/or simple logic, I would eschew looking at the textbook or pushing myself to learn these things more fundamentally. Repetition mostly like would push to me memorize some of the formulae, but as long as I could use my notes, I used my notes.
Still, the course is designed for beginners and one cannot walk away from it claiming to actually be a programmer, but it is designed so that the student can take the next step and the book offers an avenue for a motivated student to continue practicing his or her programming beyond the course. Just this week, I received an email that there are plans to expand the offerings, making a four-course specialization in Python that will complete the textbook, as well as opening up a larger specialization for web-design offered by the same department.
What I liked:
- Multiple choice quizzes, which were all based on factual information that allowed the student to progress through the course. I do not like the idea of basing the majority of a course grade on these, but I am becoming increasingly convinced of the necessity to mix this sort of online component in intro-courses to help reinforce facts and details. This can’t be the purpose of the course, but a necessary foundation to do more advanced work.
- Picking up from number one, all the quizzes allowed multiple attempts (I don’t think I used more than two). I liked that this applied the principle that the best way to learn is to undergo try-fail cycles until you get the desired result, something that too few of the brick-and-mortar courses I have seen do.
- The weekly assignment, which were admittedly eased by there being a “correct answer” that could be graded by the auto-grader, gave the students something to work on the principles applied. Each one took between half an hour and an hour and a half, and I came away feeling that there needs to be some sort of course regardless of the course structure. These assignments were also graded on either having been done or not, which I appreciated, but when in a course without “right” answers, how much the students get out of this sort of assignment is more ambiguous.
- There was a lively forum, with active participants, respondents, and instructors. This is the ideal for online courses and would be a perfect surrogate for class discussion and a weekly assignment…except that worry the dynamic would change if the forum ceased to be a semi-spontaneous discussion for people looking for help and became another piece of necessary drudgery attached to the course.
- The youtube lectures were well-constructed, with both an image of the professor at a computer and the “slides” where the work was happening. There was clearly editing to clean up the presentation and the slides, but enough errors were left in and/or corrected in the flow of the presentation. The length was also good, not being uniformly 24 minutes, but ranging from 20 to 40.
- There were also joint online, face-to-face meet-ups that functioned as office hours and made the professor seem fully available to the students. I never looked into these, but the feeling of access was nice.
Things I didn’t like:
- Despite how well the course was made accessible, I didn’t like the feeling of being voyeuristically tapping in from afar. Now, I approached the course as an exercise in self-education so it wasn’t a problem in the sense that I got what I wanted out of the course, but I don’t like this feeling for a course. It was totally distinct from actually feeling as though I was attending a class or schooling.
Programming for Everybody is one of the top Coursera offerings for a reason and it is exceptionally well constructed. It also benefitted from being a course that required people to do their work on the computer, so I blocked out time, used a google doc for notes, and then did my work in a text-editor. I could see myself becoming easily distracted if the whole course didn’t require the same direct interaction with the computer. The other big feature of this sort of course, particularly if it is added onto an already hectic life, rather than the other way around (at least in theory) is that real life time did not always correspond with the course time. Sometimes this was a benefit because I could do the assignment a bit later, but one time I had to do two weeks of work in two days in order to get ready for a vacation. It is designed to do that, but there was a real possibility of falling behind and never catching up. Ultimately, though, the course gave a lot of opportunities, but I did feel more acutely than in on-site courses that I could have gotten more out of the course if I just did a little more work. This is something I expect to do in the future, but I didn’t while taking the course. Similarly, there wasn’t really the opportunity to benefit from peer interaction that showing up at a class every week at least theoretically offers.
One final thought I had as a student in this course is that it worked really well for skills -based courses, for all the reasons laid out above. Skills are something that can be improved by group learning, but, in something like this, either you can do it or you can’t and it is all about you. Humanities courses offer skills, but they are more nebulous and are better cultivated in groups and in discussion. A smaller online course might circumvent this concern since there is a little more intimacy and personal attention, and an online course would probably work pretty well for learning a “dead” language like Latin, but cutting away the human from the humanities seems to defeat the purpose on some fundamental level. This isn’t to say that lecture are perfect, since they are a microcosm of the MOOC model, but you can still go shake hands at the end of class and, somehow, that seems important on a psychic level.
I am certainly open to taking another course, including the later Python courses and the other programming courses, but also perhaps some of the literature or humanities courses to see how they deal with the issues raised above.