CS50 – Harvard’s intro to computer science

I came across Harvard’s CS50x course on edX. It’s a publicly available version of Harvard’s CS50 course. Let me quote their introductory description:

This is CS50x, Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. 

I do have prior programming experience, but I was keen to see what Harvard had to offer. And I don’t often code, so I am sure I will learn a lot.

https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x

As is common on edX you can enroll for free; study all the content, and complete the program. However a certificate at the end will cost a fee.

I’m already just over a week into working on the CS50x content and so far I completed the week 0 and week 1 problem set’s successfully. One of the things I like is you can submit your exercises and get feedback straight away. If you don’t get 100% you can drill down into the detail of why not then re-word the problem and re-submit.

I’m going to make a series of blog posts about the different weeks, the problem sets and my approach to solve them. I’ll keep a note of useful reference materials I find online. I’ll do that in a number of separate posts.

In this post I wanted to share a couple of things that impressed me. The first one is David Malan and his teams energetic and entertaining lectures. I think their style makes computer science accessible to everyone. Note – you can watch them online w/out enrolling on edX:

https://cs50.harvard.edu/college/weeks/0/

The second thing I like is the week 0 topic and problem. They use a tool developed by MIT to help young people learn to code. It’s called Scratch and it’s awesome:

https://scratch.mit.edu/

It’s accessible enough to easily build your first program regardless of experience and technical proficiency, but has enough depth to go down a serious rabbit hole of adding more and more features and complexity.

Programming is in my view quite a creative activity. At the core of it you have something you want to do and through research, lateral thinking and experimentation you try to figure out a way to make it work.

I often solve the problems I have while taking a shower, daydreaming with a coffee, riding a scooter or on a walk.

It might be surprising, but it’s a similar process and experience to writing poetry or taking photos.

I’m looking forward to sharing more details of my experience on the course and I’ll start with my next post on week 0 and working with Scratch.

Leave a Reply

Your email address will not be published. Required fields are marked *