Article Image
Jaime Danies / Senior Staff Photographer

Upon arriving at Columbia four years ago, I was immediately overwhelmed by the size of my engineering classes. Coming from high school, where class sizes never surpassed 25 students, it took a while to get used to lecture halls that were often filled with hundreds of students. I was always told that this was the worst of it—junior year and senior year were when you specialized. Class sizes were supposed to shrink, giving you the opportunity to develop strong relationships with your professors.

This is not the reality for many computer science students at Columbia. On the first day of class of my senior spring, I entered my lecture hall, which had a capacity of around 200 students. Despite arriving a few minutes early, those who arrived before me had already filled every seat, and the leftover students crowded the aisles. After joining dozens of students on the floor, I looked around to see which of my peers had arrived so early and in such large numbers to fill the room, but I recognized no one: The seats seemed to be full of master’s students.

Over the last 10 years, undergraduate enrollment in the Fu Foundation School of Engineering and Applied Science has grown by around 18 percent from 1,433 students in 2009 to 1,693 students in 2018. Over the same period, graduate enrollment for the engineering program has nearly doubled from 2,027 students to 3,914. Given that SEAS charges master’s students $2,104 per credit, the graduate engineering program is a growing source of revenue for the University.

However, the expanding graduate school population comes without a separate graduate class infrastructure, which greatly harms undergraduate computer science students. Undergraduates hoping to take courses such as Artificial Intelligence, Machine Learning, and Natural Language Processing can expect to be buried deep in waitlists, to have limited access to professors, and to be graded on a curve against master’s students who seem to make up the majority of these classes. As a result, many undergraduate computer science majors may leave Columbia without a single computer science professor knowing their names.

Columbia’s course numbering system provides some insight into how the University gets away with its mixed-level system. The University labels class difficulty using the first digit of the course code. According to the engineering bulletin, a 4000-level course is a “Graduate course that is open to qualified undergraduates,” and a 6000-level course is a “Graduate course.” Yet, undergraduate computer science majors are required to take 4000-level courses. For example, a computer science major on the Intelligent Systems track needs to take a minimum of eight 4000-level courses in order to graduate. Despite the bulletin’s claim that a 4000-level course is open only to “qualified” undergraduates, every computer science student knows that 4000-level classes are standard requirements for juniors and seniors. For master’s students, 10 total computer science courses are needed to graduate. Eight out of 10 can be 4000-level classes while only two out of 10 have to be at the 6000 level. Not only does this cause undergraduate students and graduate students to compete for enrollment in the same classes, but it also means that many undergraduates fulfill most of the requirements of a master’s degree but receive just a bachelor’s degree for doing so.

To solve this problem, the same computer science course should be offered in two separate sections, one for master’s students and one for undergraduates. Even though the large graduate population is most noticeable in the computer science department because of its overwhelming size, SEAS as a whole has a ratio of graduate students to undergraduate students that is far higher than the makeup of peer engineering schools. Columbia’s graduate engineering population exceeds the undergraduate population by around 2,200 students, whereas Cornell’s undergraduate engineering program is around 1,200 students larger than its graduate program, and Harvard’s undergraduate engineering population nearly doubles its graduate population. After comparing the size of Columbia’s master’s program to its peers, it is especially disappointing that Columbia has yet to make an investment in graduate-only 4000-level courses.

The inclusion of master’s students into existing undergraduate classes not only harms the education of undergraduates but also worsens undergraduates’ job prospects. At the engineering career fair, master’s students contribute significantly to the long waits in front of employers, but they are also often more qualified than undergraduates. These undergraduates may also find it increasingly difficult to impress an employer who has just spoken to several master’s students. A simple solution is to have separate engineering career fairs for undergraduates and graduate students, but this idea has not yet been implemented by the Center for Career Education.

At graduation in May, a friend of mine expressed that his parents were excited to meet his professors, but were disappointed to find out that he did not know any of them well enough to introduce them to his parents. I fear that this has become the norm for computer science students, both graduates and undergraduates. This will not change unless the University begins to spend the revenue it is earning from the master’s program on separate infrastructure for undergraduate students and graduate students who would both benefit from reduced class sizes and easier access to professors.

The author graduated from SEAS in 2019.

To respond to this op-ed, or to submit an op-ed, contact

computer science academics engineering SEAS professors
Related Stories