We Took Harvard's Incredibly Popular Computer Science Course And Can See Why Students Love It

Advertisement

david malan harvard

screenshot via YouTube

Professor David Malan lecturing at Harvard.

Advertisement

Everyone is talking about CS50 - the Harvard introductory computer science course that saw more than 800 students enroll, making it the most popular course at Harvard this semester. The uptake has been dramatic: CS50 once attracted less than 100 students, and in 2005 only about 20 of them attended a computer science lecture given by Harvard drop-out Mark Zuckerbeg.

Currently, only about 10% of students enrolled in the course have any kind of background in computer science. The rest are taking it purely out of interest.

I wanted to see what the fuss was about so I sat down and watched Dave Malan, the course's lecturer, introduce students to the world of computer science. With no background in programming, I expected to get lost fairly quickly. But Malan is innovative and engaging, and I soon realized that his course was designed precisely with comp sci illiterates like me in mind. 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.

Here are some of the highlights and takeaways from Malan's introductory lecture:

Advertisement

You can use algorithms to make huge problems really small.
rsz_screen_shot_2014 10 13_at_11613_pm copy

Harvard

Malan introduced students to the concept of algorithms by introducing a problem: how do we figure out how many people are in the lecture hall? While counting people individually or by 2's would eventually lead us to a final number, it would take a very long time - much longer than it would take for an algorithm to do the work for us. Taking steps 1-5 as one complete step, Malan shows how using an algorithm it only takes 8-9 "steps" to count 400 people.

There's more than one solution for most problems.
rsz_1screen_shot_2014 10 13_at_12548_pm copy

Harvard

Malan describes algorithms as a kind of divide-and-conquer approach that gains speed the larger a problem becomes. He illustrated this by tearing up phone books. To find a particular name, Malan explained, most people would flip to the middle of the phone book, see what letter they land on, and go either backwards or forwards alphabetically from there. Landing in the 'M's but looking for the 'F's, Malan tore out the half of the phone book from 'M' onwards. "There!" he proclaims. "In one step you've halved the problem."

You can use an RSS Feed to create a Lolcat of the day.
Screen Shot 2014 10 13 at 1.30.47 PM

Harvard

Malan then moved on to explain what an RSS Feed is, using the wildly popular meme Lolcats. "An RSS feed is basically just a big text file that has a lot of links," Malan said. He demonstrated how he went about making a "Lolcat of the Day" feature on CS50's website by downloading http://icanhas.cheezburger.com's Lolcat RSS feed and embedding it into the course's page. Easy as that.

You know more about computers than you think.
rsz_screen_shot_2014 10 13_at_14041_pm

Harvard

This was my favorite part of the whole lecture. According to a survey taken of students enrolled in CS50, only about 10% felt "more than comfortable" taking an introductory computer science class. The rest felt either "less than comfortable" or fell somewhere in the middle. Wanting to calm students' frazzled nerves, Malan showed a clip of Alaska senator Ted Stevens talking about the internet to show students that there was always someone who knew less than them about computers.

rsz_screen_shot_2014 10 13_at_14254_pm

Harvard

Advertisement

Malan reassured students that as long as they know more than this guy, even those with the most limited computer knowledge can learn how to program.

All programming comes down to some very basic math involving two numbers: 0 and 1.
rsz_screen_shot_2014 10 13_at_15135_pm

Harvard

Using the number '123' as an example, Malan demonstrates how traditionally, numbers get their significance depending on the column they are in. Binary, or the system of 0's and 1's that we use to program computers to do virtually everything, works in much the same way. Each digit in binary takes on a different significance based on the column it is in.

You can translate Cambridge's zip code, and virtually anything else, into binary.
Screen Shot 2014 10 13 at 1.57.08 PM

Harvard

Apparently, the above translates to '02138'. Figuring out how to code something in binary was already a bit above my head, but for a Harvard freshman electing to take the course, I imagine Malan's breakdown was incredibly simple and easy to follow. This is no doubt the course's appeal, and why it will likely only grow in popularity as students become increasingly eager to take control of their own technology.