Why I Love Harvard’s CS50 Course

No, not because it’s Harvard.

Ben Yap
4 min readSep 13, 2019
David J. Malan. Photo by Connie Yan of the Harvard Crimson. Retrieved from: https://www.thecrimson.com/article/2017/5/5/cs50-plagiarism-algorithm/#gallery

CS50 is currently Harvard’s largest attended lecture at 735 undergraduate enrolees according to The Harvard Crimson, Harvard’s daily college newspaper.

To put it in perspective, in 2005 when Mark Zuckerberg was invited as a guest speaker at Harvard’s CS50 course, less than 20 people attended the lecture.

When I first started out my journey towards becoming a web developer, I was stumbled upon CS50 on YouTube and was smitten.

Here are four reasons why I like the lecture series.

He’s fully prepared for the lesson

“Of course he’s prepared. He’s being recorded.”

That might be true, but it’s not as if anyone who is being recorded is going to to put together a well-prepared presentation.

While I’ve not watched all of Malan’s lectures, I dare wager that if you picked any one lecture on YouTube, you will see a consistent thread across it: he is always prepared.

Case in point: I was looking up some material recently and stumbled across an old courseware from Harvard from 2012. In “Lecture 0:HTTP” Malan starts off by apologising for some kind of a delay but proceeded immediately to inform the class on what to expect in the lecture (that’s habit number 2: beginning with the end in mind, awesome).

His slides are well put together; They are concise and clean. He has his notes printed out and at hand and he probably has part of the lecture memorised. He’s prepared.

He has good energy and pace

I think energy and pace is key in any presentation. Low energy just makes me sleepy. On the other hand, it’s really annoying when someone is too energetic that they’re swinging from the chandelier.

He keeps his pace relatively quick through the lesson. While this might be partially due to the breadth of content he needs to cover, it keeps me on my toes throughout the presentation. He demands my attention and I readily surrender.

Best still, he maintains that energy throughout the lecture: that’s professionalism.

He knows his students

Malan is wildly popular because he has figured out how to make computer science fun. More importantly, he’s figured out how to make it easy.
— Business Insider

Malan knows how to make it easy for his audience because he knows his audience. According the CS50 website, two thirds of students enrolled with CS50 have no prior knowledge of computer science. Knowing that, he can safely plan the course according to the prior knowledge of students: which is none.

Consequently, he takes the liberty to illustrate abstract concepts concretely on stage. He makes sure that he is clear and concise with his explanations so that lay people would understand him while not labouring the point. How he does this is through illustrations.

He uses good illustrations to engage students

Case in point: in explaining binary search at one point in Lecture 0, he takes up a phonebook and waves it to the audience asking them how would they go about it. After a couple of responses, he mentions that binary search is a simple algorithm which:

  1. looks at the middle of the entire list of contacts, and
  2. see if it’s the contact you’re looking for (say Mike Smith).
  3. If it is, we’re done.
  4. If it isn’t, is Mike Smith in the left half or right half (assuming the phonebook is alphabetically sorted)?
  5. If it’s in the left half, discard the right half. If it isn’t, discard the left half.
  6. Repeat the process in the remaining half until Mike Smith is found.

While the idea isn’t unique to him, the fact that he demonstrated an abstract concept in a fantastically concrete way makes him easy to follow and, most of all, fun to watch.

I can’t resist another example: In Lecture 1, he had a table setup with three sets of bread, jam, peanut butter and cutleries. He invites two volunteers on stage and asks the audience to give them instructions on how to make a sandwich. This was to demonstrate the fact that computers are fundamentally “dumb” machines which takes instructions literally.

However, when we speak to one another, more often than not it’s ambiguous and we leave it to the listener to use common sense to interpret. For instance, at some point the audience shouted out “put jam on bread” and one of the “computers” merely placed the jar of jam on the slice of bread. It’s a fun, messy and fabulously concrete way to demonstrate a fundamental idea about computers. Just brilliant.


As a trainer, I’m reminded of the fact that it pays to:

  1. be armed to the teeth when preparing for any lesson or presentation,
  2. keep a good balance of energy and pacing,
  3. know the audience I’m speaking to, and
  4. think of fantastic illustrations to explain abstract concepts concretely.

Of course, many hours were put into preparing each lecture and I wish that more teachers will learn from his style of presentation and be inspired so that lessons can be more engaging for students all around the world.

There is a dearth of engaging teachers like David Malan in the world, especially in the public school systems in Malaysia where the teaching profession is often a final resort for undergrads who failed to secure their preferred profession.

There’s nothing magical about what he does; just plain old hard work and ingenuity slapped together.

Creative Lead by day, writer by night, husband and dad throughout. I write about things that interest me and lessons I’ve learnt. My views are my own. Check out other things I’ve written.



Ben Yap

Husband, father, digital marketer. I write about things I’ve learnt in my daily life.