CS50: Inside the world’s most elite computing course
There aren’t many university courses that can count Mark Zuckerberg and Steve Ballmer among its lecturers. There aren’t many university courses where more than 100,000 people have turned up for lectures (albeit, predominantly online). There aren’t many university courses that have their own brand, merchandise and battle to register the course name as a trademark. But then there aren’t many university courses like CS50.
CS50 is without doubt the world’s most elite computing course. It’s taught not only at Harvard, but now at fellow Ivy League institution Yale, where it instantly became the university’s most popular course in its first year. If you’re one of the many who fail to get a place on the course at one of the universities, you can take CS50 online, either via digital institutions such as edX or iTunes U, or simply via the course’s website, where all the lectures, tutorials, materials, assignments and their solutions are published for free. Lectures will soon even be watchable using VR headsets, as if you’re actually sat in the halls at Harvard.
So what makes this course so special? What drives thousands of America’s brightest minds and hundreds of thousands of people from across the world to stream the lectures? I’ve been speaking to the course leader and students, as well as sitting through a few lectures myself, to find out.
Computer science for all
CS50, or Computer Science 50 to give its full name, isn’t purely the preserve of those who write Perl in their pyjamas. Almost three-quarters of the students who sign up for the course at Harvard have never taken a computer science course before. As Professor David Malan told students during his introductory lecture to 2015’s course: “We’re not setting out in this course to turn all of you into CS majors or concentrators, but rather to give you an opportunity to hopefully go beyond the world with which you’re currently familiar and bring back from this world skills and knowledge and savvy that you can apply to your own world, whether that’s in the humanities, social sciences, natural sciences, or beyond.” The fact that you learn programming along the way is, according to the website, “perhaps its most empowering return”.
That’s not to say there’s nothing to be gained from those who already know their procedures from their variables. Each of the “problem sets” that students are challenged to solve come in two degrees of difficulty: Standard, which 90%+ of the class are expected to do, and Hacker Edition, for those with the technical chops who want to push themselves. Indeed, the entire course at Harvard and Yale is organised into three different tracks: those who are “more comfortable”, with the language of programming, those who are “less comfortable” and a band for those who are “somewhere in between”.
Almost three-quarters of the students who sign up for the course at Harvard have never taken a computer science course before.
The course and many of the lectures – delivered live to hundreds of students and on-demand via highly polished video streams – are led by Professor Malan: an engaging speaker who reminds me of former Windows chief Steven Sinofsky, in that you’re clearly dealing with an intellect so fierce that the words can’t tumble out of his mouth fast enough to keep up with his brain. He might speak at machine-gun pace, but he’s also brilliant at distilling complex concepts into digestible chunks.
In 2015’s introductory lecture, for instance, he uses a set of lightbulbs to teach students how to write numbers in binary, explaining how each bulb (switched on for 1 and off for 0) represents a bit. It’s the clearest explanation I’ve ever witnessed. Thanks to the supplementary videos on the CS50 website, I can now add, subtract and multiply in binary too.
He also begins to explore the development of “divide and conquer” algorithms by ripping up a phone book (somewhat awkwardly, given his orthodox geek physique). This graphically illustrates that even with 40 billion names listed alphabetically in a phone book, it would take only 36 steps to find the person you were looking for if you opened the book in the middle and ripped out the half that didn’t contain the person’s name (to explain the concept of log n).
Then there’s the demonstration of how commands written for computers require a degree of precision that we’re not used to when ordering humans around. He asks the students in the Yale lecture hall to yell out commands for how to make a peanut butter and jam sandwich, with one of his on-stage stooges carrying out the commands to the letter. Thus, “open bag of bread” results in the bag being ripped apart and bread spilling everywhere, while later in the “program” the sandwich maker gets caught in an infinite loop that doesn’t end well for the peanut butter jar.
This engaging way of presenting the potentially dry and intimidating topic of programming certainly appears to be a hit with students, particularly those who have never studied computing before. Ed Rex, the founder of British music startup Jukedeck, recently told me how he was inspired to start coding after attending a CS50 lecture. “I was just completely bowled over,” said Rex. “After an hour in his [Malan’s] lecture hall I came out thinking, first, why has nobody told me this before; second, programming is amazing; and third, it seems like it’s much more doable than people in the UK would have you believe.”
Twenty-three-year-old Kyle Schmigel is part of the current CS50 intake. He told me that “learning to program in general allows me to focus my mind in a much different way than I typically do in my day-to-day life. It’s a fun way of challenging yourself and problem-solving.
“So far the most important thing I’ve learned is to look at things from multiple perspectives,” Schmigel added. “I may not be looking at the problem the right way, or could be doing things a simpler way. CS50 is a hard class but I’ve never done anything I found as fun as challenging myself to take it.”
Malan is too modest to ascribe his teaching style as one of the main reasons for CS50’s success, pointing to other factors. “We’ve certainly benefited from a rising tide of interest in computer science internationally, particularly with tech so popular right now,” he told me. “But we’re hopeful that CS50’s accessibility, coupled with its rigour and culture, especially resonates with students as well, particularly those without prior experience.”