Yale’s computer science department has changed quite a bit since I arrived here in my first year. We’ve hired new professors and now offer more varied and interesting electives. But, of course, if you’ve ever met a computer science major, you know that we complain regardless of what goodies we get. This year’s problem of choice is that courses are getting easier because of a growing demand for computer science.
To give you an idea of how strongly some students feel, consider a review of an upper level course posted by an anonymous Yalie that suggests that there are “2 kinds of CS majors at Yale”: those who “get by taking gutty CS electives” and those who take hard and time-consuming courses. If you’re not taking the hardest courses, the review warns, “HAHA, the real world [is] going to hit you bad.”
This is evidence of a clear sense of elitism in the major. While most students aren’t quite as vehement as this anonymous reviewer, there is definitely a culture problem that we need to address before it demoralizes new students.
It seems to lie in the decision to unofficially offer two versions of the same class, thus de facto creating two tracks in the major. For example, there are two courses on operating systems. One is “Operating Systems Design and Implementation.” The other is “Principles of Operating Systems.” Although they sound similar, the former focuses on actually building a computer operating system from its barest bones and has a work-level rating of 4.2 on CourseTable. The latter deals with theory, and its work-level rating hovers around two.
There’s nothing overtly strange about having two courses on the same topic with different work ratings. What is strange is that relatively few students actually enroll in the supposedly easier versions of the most popular electives.
This year, for the first time, a similar branching will occur in the core curriculum in which students will be given the option to take a new course, “Intensive Algorithms,” or an older course made easier, “Algorithm Design.” There’s a stigma against easier versions of courses, so will students who take “Algorithm Design” be derided by those who take “Intensive Algorithms”?
What complicates matters is that there is some degree of truth to the criticisms levied by students in favor of more in-depth courses. Such courses do indeed cover far more content and are often filled with talented students. But the fervor with which students advocate for difficult courses is callous and cruel.
There’s a social pressure to take difficult courses, but nobody can accurately evaluate the difference in difficulty, save pointing to more time spent on problem sets. And time is a huge barrier to entry to computer science already. Students who not only have less coding experience than their peers from Silicon Valley (who already outnumber others in the major by a huge margin) are at a disadvantage. Similarly, other students might have less time to work on the same material due to obligations such as athletics or the student income contribution. If such students don’t take the most difficult classes, they are excluded from social and study groups, but they do not have the time, and so they take the easier, less glamorous classes. I wouldn’t be surprised if students have dropped the major for these very reasons.
How can we make computer science more inclusive without forsaking the quality of our courses? I wish I knew. The department faces a double bind: It could continue to offer multiple tracks for courses and risk socially disadvantaging the students who choose the lower track. Or it could keep students together and make courses easier, spurring cries about the curriculum being watered down.
Instead, the culture change needs to come from students ourselves. We have to acknowledge that we all enter the major with dramatically different preparation levels, and we have different and real demands on our time. Furthermore, we should acknowledge that not everyone who majors in computer science wants to be a computer scientist or coder upon graduation. There are future financiers, videogame designers, doctors and teachers in any CS lecture, and they are just as welcome as a budding Google engineer.
What’s particularly important is that there’s nothing unique to computer science in this story. I’m sure this kind of elitism is present in other departments too. If we want Yale’s campus to be a company of scholars and a society of friends, we need to be much more mindful about the culture we perpetuate. It’s not a binary system after all.
Shreyas Tirumala is a senior in Trumbull College. His column runs on alternate Wednesdays. Contact him at shreyas.tirumala@yale.edu .