Sunday, 9 March 2014

Computer Science 101 @ Udacity



 

 On the recommendation of a friend, I decided to begin my journey into programming with a free Introduction to Computer Science 101 course at udacity.com.  While there are many courses online, I stuck with this one as I liked the fact it involved training videos and quizzes, which made the whole learning experience a lot more interactive rather than passive, and also I found the enthusiasm and friendliness of the course instructor (Professor David Evans of the University of Virginia) very engaging.  (I have a soft spot for endearingly geeky men – perhaps another good reason to do a career change into computer programming).  Udacity was set up by Sebastian Thrun and has a rather noble goal to "bring accessible, affordable, engaging, and highly effective higher education to the world", not just in Computer Science but also Psychology, Biology, Maths and Physics.  Sebastian Thrun is the closest thing the world of programming has to a rock star (see the pic below) - not content with being a Research Professor at Stanford University and a Google Fellow, he is the inventor of the autonomous car and project lead on Google Glass, as well as being a generally all round cool dude.
 
What a guy!  I wish he was my friend...


The course is taught using the programming language Python, assumes zero knowledge of computer science, and teaches you many basic concepts in the context of building a simple web search engine.  What’s really incredible is that if you stick with the course, you do actually end up programming an extremely rudimentary search engine!  Obviously there is a fair bit of hand holding, as the course sets up the framework of the search engine programme for you, but you do build the code yourself and are able to understand the individual components of the programme and how they link with each other.

The course is broken up into multiple units, with each unit introducing a new aspect of computer science and using it to add another section to your search engine code.  A typical format of a unit involves a series of tutorial videos, each one delivered with a hearty dose of passion and joviality by Professor Evans and his assistant PhD student Peter Chapman, interspersed with quizzes (some multiple choice, or involving simple calculations).  You do not have to get the answers right in order to progress, and a full explanation of the answer is always given in the next video.  At the end of the unit, there are a series of homework questions that help to consolidate what you’ve learned, and also develop the way you use your newly acquired knowledge.  Some of these are marked with a “gold star” (or even 2-3 stars) as they require the student to engage their grey matter and think slightly beyond the course material that has been fed to them, solving a puzzle using the knowledge they have acquired, but with a slight twist.  While I did find some of these problem solving exercises really very tricky, they are by no means impossible and  I always learnt something by continuing to work on them, and when you do finally get the green message that says your code is Correct, it feels SO GOOD!  They also have forums where you can ask for help from other users (aka “udacians”) and discuss topics from the course – while I never actually contributed material to the forums, reading the posts of others who were stuck on similar questions and the kind people who replied to help explain the issue, was always super helpful.

Yes, even a newb can end up building this:


I think what’s really satisfying about the course is that you do get to a basic level of familiarity with a widely used programming language, you gain a simple understanding of the concepts of how Google works and it’s an exciting sneak peak into what can be achieved by further study in computer science!  Of course, this also makes you realise how much there is still left to learn…

Thoughts about the Udacity course in Summary:

Pros:

  • Pitched at complete beginners and introduces the main basic concepts of computer science
  • Makes you think on your own, rather than spoon feeding
  • Downloadable Youtube videos  and pdf course materials help make the course a very polished and professional learning experience

Cons:

  • Some exercises do get quite tricky – this can be disconcerting for beginners, but you feel immense satisfaction when you work out the solution
  • After a few units the focus of the course narrows to the web search engine very specifically
  • The overall course is quite long, and it’s difficult to break down each unit into bitesize chunks, meaning you have to find the time and perseverance to get to the finished product



No comments:

Post a Comment