Back to all writing

Break up big tech (departments)

You walk into a civil engineering firm and ask for a job. They ask to see your qualifications. You hand over your CV which lists a degree in engineering from MIT. It looks something like this

BASc. Engineering, MIT. 2017-2021.
Phi beta kappa, best person award, zeta tau alpha, beta gamma epsilon, 6min beer mile.

You get hired. One year later a bridge collapses (probably in Pittsburgh) because you were an electrical engineer, not a civil engineer.

In reality, situations of this kind are (usually) avoided because Engineers specialize. Nobody lists Engineer on their CV. They list Electrical Engineer, or Chemical Engineer, or Computer Engineer. This is with good reason, because — while they might have some overlap — all of these disciplines and the skillsets they require are distinct.

The field of computer science has yet to figure this out. Whether you spend your undergraduate focusing on designing websites, programming operating systems, attempting to prove that \(P\neq NP\), or building machine learning algorithms, you often graduate with a degree simply called Computer Science.

Some schools are wising up. As of this writing, of the “big four” computer science schools — MIT, CMU, UC Berkeley, and Stanford — only Stanford fails to offer more than a single degree in computer science. Berkeley offers two. CMU offers seven, including degrees in AI, computational biology and robotics. MIT offers between seven and eight depending on how you count, including one involving urban planning, and one at the intersection of economics and data science.

Still, most other schools offer a single degree in computer science (e.g., University of Washington, UT Austin, UBC, UofT, Oxford). This is insane. Imagine if most schools offered a single degree in engineering and only a few allowed any specialization. This is inefficient talent allocation: We’re forcing theoreticians to learn how to write efficient javascript, and roboticists to study asymptotics.

In the fifties and sixties, when pixie cuts and pomade were running the show, it made sense to have a single degree in computer science because the discipline was young and its breadth limited. But now the term “computer science” encompasses a huge variety of subfields, many of which deserve to be degrees in their own right. Aside from simply knowing how to code in some language, the intersection between programming languages (PL) and computational biology, or theory and human computer interaction (HCI), or operating systems and graphics, is vanishingly small.

Admittedly, most computer science programs allow you to choose your electives in upper years, meaning that you can specialize to some extent. They might even call this a “concentration”. But this typically involves taking two or three courses in an area, and does not allow for nearly the same level of specialization as engineers. Given that half the population thinks AI is going to turn everyone into paperclips, and the other half thinks AI is irredeemably racist, you’d think people would be on board with offering an entire degree dedicated to AI and machine learning.

This isn’t just a problem for the students themselves, who are forced to take classes in areas well outside their interests. It’s also an issue for their eventual employers. The lack of specialization in the degree name means they have to dig through a morass of course codes to discover what you actually studied.

Of course, some students will want a broad education in computer science, just as some want a broad education in the arts. Just as General Arts degrees exist, so too can General Computer Science degrees. But this shouldn’t be the only kind of computer science degree offered.

Back to all writing