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 andI 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 videosand
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

About Me

Hi! This is my blog about attempting to change my life by becoming a computer programmer. I've never had formal training, or even dabbed into programming as a hobby before, but hopefully that's going to change over the next year...wish me luck! When I'm not trying to sort out my career change or working in my finance day-job, you can usually find me playing badminton, eating cakes and dressing like Jess from New Girl, hence the username...I'm too square to be as kooky as her though!