At first glance, CS50 seems entirely antithetical to the Yale computer science department’s goals. Our department is decidedly theoretical — a sharp contrast to the push for practicality over in Silicon Valley. CS50 is certainly not a pure computer science course; it’s a programming class — more or less a hodgepodge of topics from Yale’s Intro Programming and Data Structures courses. But it’s exactly what we need if we want the Yale CS department to be capable of teaching the massive influx of students flocking to computer science.
Yale’s CS department is notoriously understaffed and overworked. With more and more students flooding the introductory CS courses each year, it’s a given that upper division classes are going to suffer if we don’t change something. Of course, the best solution would simply be to hire more professors, but that’s clearly not happening any time soon. CS50 offers us the next best option: outsourcing.
A Massive Open Online Course with in-person sections should satisfy a great deal of Yalies’ hunger for technical classes. Few deny that CS50 is a pretty engaging class to boot. It also frees up a lot of resources. Though we’ll still offer CPSC 112, the class will inevitably be smaller if CS50 gains the same popularity here as it has at Harvard. This means students in 112 will be able to receive more individual instruction. Professors can spend less time creating work and exams for intro classes, and more time teaching upper division classes. Moreover, integrating CS50 will likely force Yale to hire more teaching fellows — something the whole department will benefit from.
As for the students in CS50 itself, there really isn’t an appreciable difference between sitting in a large lecture hall and streaming a video online. Either way, there likely isn’t much of an opportunity for a student to ask questions, which is the big draw for taking classes in person to begin with. A good number of my friends in Cambridge agree; most of them who are enrolled in CS50 stream the lectures anyway.
For Yalies who choose to major in computer science, taking CS50 will prove useful as they progress through upper division courses. The class is taught in C — a language necessary for both CPSC 223 (Data Structures) and the notorious CPSC 323 (Systems Programming). Neither CPSC 201 nor CPSC 112, Yale’s two introductory courses, even touch C, meaning students are effectively thrown right into the somewhat tricky language in the upper division classes. At the very least, CS50 will give prospective majors a bit of experience with C before they’re forced to use C to learn advanced topics in computer science.
It’s true that we have organizations like HackYale to teach programming skills, but without a commitment device of some sort — the promise of a grade or class credit — a lot of people never end up following through on learning how to program. I think we’ve all told ourselves at some point or another that we’d learn something outside of class and then never followed up on doing so. CS50 forces us to learn.
It’s also true that programming isn’t the same as computer science, but that shouldn’t preclude us from offering the course at all. We need not make CS50 a requirement for the computer science major, but we should absolutely import the class.
I love Yale; I’ve had a wonderful time here so far, and I’ve enjoyed my experience with the computer science department thus far. That said, the department needs help. CS50 is a huge brand in and of itself. If importing the course brings more attention to CS at Yale — if it brings in valuable funds that we can use to hire professors and recruit graduate students — then it’s certainly a course worth having.
Shreyas Tirumala is a freshman in Trumbull College. Contact him at firstname.lastname@example.org.