Well, thanks to Professor Dave Evans of Udacity, I now know how to programme. This, after just seven weeks!
I completed the CS101 Final Exam on Easter Monday, and achieved a score of 75% on the ‘Regular’ questions, and 67% on the ‘Starred’ questions. For the former, I made a silly error when I forgot to change the name of one of the variables, but, that’s life, and you learn far more from making mistakes, than when you don’t. The latter section consisted of three questions, one of one-starred difficulty, one of two-starred difficulty, and one of three-starred difficulty. I got the two-starred and three-starred questions correct, meaning I got five out of six stars. I’m still keeping my fingers crossed that I’ve managed enough to achieve a Certificate of Distinction (I have high standards despite being a noob), but I’m happy enough that this means I’ve passed, and can go on to take the 200-level courses that Udacity now offers.
What else have I learned since my review part-way through the course?
My original estimate of five to eight hours a week was woefully optimistic. Given how CS101 ramped up in difficulty and complexity as each week progressed, I’m thinking an average of ten to 12 hours is more accurate now. There have been weeks when I spent two whole days in front of the computer going through the videos and then attempting the homework assignments. I believe the final exam alone took me more than 12 hours to finish!
On that note, let me go on to my review of CS101 now that the course is over.
What was good about it?
I really enjoyed the goal-oriented nature of the course. Instead of merely learning about the theory behind computing, we got a chance to apply what was being taught by writing code, and building upon the code written in previous units and put it all together to build something practical, a working search engine.
The short length of lecture videos which is flexible enough to suit anyone’s schedule. Each of the units consisted of between 20 and 30 videos, with each video being less than five minutes long. Once a video had been viewed in its entirety, a green checkmark would appear next to it. This made it easy for me to view the videos whenever I had free time, and know precisely just where I got to, as opposed to the fifteen-minute long videos that I got in the Model Thinking course offered by Coursera, which was a bit of a disincentive for me when it came to viewing the lecture videos.
The frequency of the quizzes interspersed through the videos ensured that students learned by doing – the best kind of learning there is. The quizzes were a chance for us to see whether we understood the concepts of what had been taught, which I found incredibly useful as I learn so much better when I get a chance to apply what it is I’ve been taught. It’s good that CS101 offered an avenue of doing just that, without the students having to come up with their own ways of applying what we’d learned.
And the best part of CS101? It’s not just about programming. While I’ve never taken a computer science course before, I understand that there’s a difference between a programming class and a computer science class, and Professor Evans did a good job of mixing the two up. I didn’t just learn about Python and how to write a programme. I also learnt about famous computer scientists (Admiral Grace Hopper, who was an absolute hoot to watch on David Letterman, and Ada Lovelace among them), networking and what affects computing speeds. There were even interviews with staff from Google and Mozilla talking about what you need to look at when you’re working in computing, how open source came about and all that sort of things.
What could be improved?
The auto-grading system needs to be worked on. There have been some times when students have submitted answers which turned out to be correct, but were graded incorrectly because we’d left a comment after the code, and, because our answer didn’t fit exactly what it was the robot was looking for, we were marked wrong. Additionally, the auto-grader treats all questions the same way, meaning that all questions carried the same weight, irrespective of the difficulty the instructors had assigned it.
I had a bit of an issue with the exam format. The exam was put online on April 2nd, with the submission date originally scheduled for April 8th, but was eventually moved to April 9th due to technical issues. There was no time limit imposed, meaning that all students had a total of 168 hours (assuming no sleep and no work whatsoever), which, to my mind, doesn’t quite make for a proper exam. I’ve seen other online courses which keep the exam online for a seven-day window, but, the exam needs to be completed within three hours from the time it is first attempted, thereby providing true exam conditions. I believe this way – the stricter way – is fairer, provided that the final grade doesn’t consist purely of the exam grade, and credit is given for weekly assignments (i.e. the American style of grading, as opposed to the British and Singaporean system I grew up with, aka “one shot, one kill”, as we liked to call it).
But, these are minor quibbles. It’s the first time that the CS101 course has been run after all, and, as far as teething problems go, these are tiny. Even if these issues – and really, the second one is more a preference than a real problem – aren’t worked out any time soon, I’d still recommend Udacity wholeheartedly. I’ve learned a lot from just this course – and not just about computers. But that’s for another post!