After my last online learning experiment concluded with me flunking out, it would be a lie to say I was eager to get back into the saddle. When I looked back on 2013 at the beginning of the year, however, I was not happy with the amount of self-improvement/developmental effort I put in.
So, I signed up for Stanford’s online CS144 course, “Introduction to Computer Networking.” It’s hard to provide a canonical link for this, but if curious one can easily find a particular example of the course materials/syllabus. I picked this course because I did not complete a networking course in school. There’s a story there, but it’s pretty short: I signed up for networking in school. The format at UIUC at the time was the class was partitioned into 4-member teams for programming assignments. The day before the drop deadline all three of my group members dropped the course … so I did too!
I am across the pass line prior to the final exam, so can safely say I’ve completed the course and programming assignment successfully. As the final exam is released and due while I’m on vacation, I’m not confident I’ll put substantial effort into it (there’s no impact on my standing in the course whether I get a 0 or a 100 on the exam at this stage). This is an interesting, if somewhat obvious, realization. Out in the real world with vacations and/or work trips, making time for limited-time portions of the course (such as exams) can be a real challenge. Most of the course material otherwise was released many weeks in advance of when it was due, making this less of a problem.
The information I have on the course is limited in many dimensions. Evidence suggests about 2700 people signed up for the course and about 900 completed the course at least through the first midterm. I Don’t know what the pass rate will be, but I suspect it will be relatively high. Doing slightly better than guessing on the exams and completing all of the quizzes successfully will get somebody past the pass line. Judging by the forums (likely not an accurate metric, but the best I have), most of the course’s attendees are students currently in higher education programs in foreign countries. The skill level ranges between folks with barely any CS and programming training to those that are highly educated and experienced. The majority of the forum traffic appears to come from the former population.
I am happy with the knowledge I gained from the course. One of the more interesting things about taking a class is the selection of the material. While I’m relatively capable at self-teaching, if I were to “teach myself networking” the results would be quite different. A lot of the time in the course was spent calculating out efficiency of a network bounded by a queue or explaining signalling and re-clocking theory. These things have little immediate benefit to me, but the intuition gained in working through the topics was quite valuable.
The rigor of the course is somewhat laughable compared to a “real” course in college. I would not say the amount of material taught is substantially less. However, the amount of effort required on homework and textbook reading was trivial by comparison. The exams are week-long and open-book/notes, with only 20 relatively simple questions. The only real difficulty there is in not making a stupid math mistake because of overconfidence (guilty as charged).
Cheating in the course would be trivial, with the only prevention of this the honor code itself. Since there’s no real reward for completing the course in the first place (beyond a digital document saying one completed the course), there’s little point in this … but my gut impression is that it’s rampant. The forums are full of questions that demand enough detail and explanation that it might as well be cheating. For nearly all of the challenging problems, the forums are full of detailed method explanations, getting down to the precise quantities and equations necessary. Still, students will ask for more detail to be spelled out in order to arrive at the correct answer. It’s somewhat disappointing.
The gem of the course for me was the programming assignment. It’s worth no points (in fact, it only awards a “with programming component” statement on the digital statement of accomplishment) towards course completion. It took a decent amount of time and was highly educational. The project was to implement a portion of a packet switch and was extremely well constructed. Very few of the programming assignments I encountered in college were this thorough or well-developed (the possible exceptions would be in my operating systems course when we had to implement a file system). Adding even more of these (the full course has four such assignments) would make the end result even more valuable.
It was interesting to discover that those administering/delivering the course were not compensated (beyond, I suspect, faculty compensation for the professors).
Based on just one data point, then, as a hiring manager I’m unlikely to take completion/attendance of a free online course particularly seriously. Like anything, it provides a good avenue for some potential questions. It also shows (potentially) an interest in learning outside of school. But, it barely even intimates any sort of guarantee about knowledge gained.
In any event, I’m glad I completed the course and it was definitely worth the time. I’m also glad that institutions like Stanford and the individuals involved in delivering the class are willing to make this sort of investment. It’s definitely not free or just a trivial transposition of work that’s already been done before.