TL; DR: Despite the tech industry’s booms and busts, Columbia University’s Department of Computer Science remains at the forefront of educating aspiring developers by exposing them to both cutting-edge technologies and the tried-and-true systems and theories behind them. From identifying and developing new courses to quadrupling the rate of female students, Senior Lecturer Adam Cannon gave us an inside look into the relationship between tech business leaders and the university’s role in preparing the industry’s newest employees.
Each semester, Adam Cannon teaches the large introductory computer science class at Columbia University to 300 or more undergraduate students.
Although introductory courses for non-majors already existed, Adam and faculty from the Department of Computer Science noticed students coming from other degree programs were less interested in the basic concepts and wanted to learn programming. Humanities students began showing up in courses designed for computer science majors.
“They don’t want to be tourists,” Adam said. “They really want to learn some computing.”
In addition to leading the way with rigorous and innovative courses for computer science majors, the department places a strong emphasis on attracting students in other degree programs and giving them more than what Adam calls a “tourist’s view” of programming.
In the resulting Computing for Context course he developed, students learn Python for six to seven weeks before tackling a series of lectures and projects in various concentrations that show students how to apply the programming language and computing concepts to their own discipline. For example, some students looked at Hilary Clinton’s emails while other humanities students performed stylistic analyses of various authors. Last year, the course opened up to students from the School of International Public Affairs, and next year will introduce material for those interested in computational biology.
“It’s not like me when I walked away from Astronomy 101, where it was nice, and I never thought about it again,” Adam said. “Their lives are changed. They’re equipped with tools that will advance their respective disciplines in ways we just don’t know yet. In 10 or 20 years, these kids are going to be faculty members, and the research they’ll be doing in history or anthropology is going to be aided by computers. They’re going to be able to do things that generations before them just couldn’t do.”
Computer Science Enrollment and Interests Follow Cyclical Trends
Adam joined the department in 2000, at the end of the dot-com boom. Enrollment figures were high, but then came the bust; the number of students dropped about 75% in five years.
“In 2005, we were graduating at most 40 or 50 students a year, maybe less,” he said, adding that enrollment has exploded since. “This semester, we graduated 250 students.”
The current generation of computer science students shows a strong interest in data-driven technologies such as machine learning and artificial intelligence. The data science joint degree program the department offers in collaboration with the statistics department is becoming increasingly popular, according to Adam, who said Columbia is one of the first universities to offer undergrad and graduate degrees in the field.
The trends bode well for an industry hoping to avoid the next burst bubble. Although many are starting to predict an economic downturn for the tech startup industry, Adam doesn’t expect the bust to be as bad as those in the past.
“With smartphones, sensors, and the Internet-of-Things, there is so much data that it’s impossible to sift through without using machines,” he said. “I don’t think that demand is going to go away.”
Balancing Industry Needs With Giving Students Theoretical Foundations
It’s a question akin to, “What came first, the chicken or the egg?” Does the industry drive educational requirements or vice versa?
According to Adam, there are close partnerships between the two camps of computing — along with some minor disagreements.
“There’s not a wall between the industry and academia by any stretch of the imagination, but I know some would really love students to come out of degree programs ready to hit the ground running and start developing software on Day 1,” he said. “I just don’t think that’s very realistic. The heart of our curriculum is the science behind computer science. We want them to be theoretically grounded.”
Beyond teaching students about agile workflows or the hot, new language of the moment (students can find those in electives), Columbia’s core curriculum focuses on teaching concepts and skills that will never fade.
“We’re less concerned with teaching the latest technological trends as we are in teaching them the solid underlying concepts,” Adam said. “They can acquire new technology skills for the rest of their career without much difficulty because they understand how those technologies were developed in the first place.”
Curricula: Professional Societies, Hot Languages, and Timeless Concepts
Adam, who chairs the department’s academic committee responsible for undergraduate curriculum and sits on the School of Engineering’s curriculum committee, said courses evolve and are restructured based on a variety of input from professional societies, industry trends, and new technologies, among other sources.
Every decade, the Association for Computing Machinery and the Institute of Electrical and Electronics Engineers publish major documents that give detailed descriptions of what various degree programs should require. The organizations provide smaller updates to those materials every five years.
“We use those guidelines and look at what our peers are doing,” Adam said. “In computer science particularly, revisions have to take place fairly frequently.”
The department has a mechanism for adding courses that teach popular programming languages or current popular tools, but Adam said the department’s more permanent courses focus on foundational theories and helping students understand algorithms and the underlying systems behind those technologies.
“We still teach C very rigorously and strongly believe that, whether they’re ever going to code in C or not, students should understand what’s going on in the operating system and be experts,” he said, adding that students can’t graduate without being proficient in C, C++, Java, and Python. “It’ll make them better programmers in whatever they learn down the road.”
How Columbia Quadrupled the Rate of Female Computer Science Majors
A little more than a decade ago, only 9% of Columbia’s computer science majors were women. Now, the department boasts roughly 40% of female computer science majors — more than double the national average.
“Between the steps we took and maybe some cultural shifts, we’ve done something we’re all extremely proud about,” Adam said, attributing the gains to three specific initiatives:
- Supporting an on-campus student organization called Women in Computer Science
- Creating a peer-led seminar for female students in introductory courses (the co-ed group now welcomes about 40 of 100 applicants)
- Emphasizing hiring female teaching assistants, particularly in introductory courses, to give students a role model who is close in age
The department also has several female faculty members and a female chair, Adam said, which in part ensures female participation and retention.
“It’s gotten to the point now where it’s just so natural to have female teaching assistants,” he said. “I don’t look at the gender when I hire TAs, yet out of the 20 or so assistants I have, more than half are women.”
Giving Non-Majors More Than a Tourist’s View of Computing
Adam, who said he’ll typically spend four years perfecting a new course before feeling ready to teach something else, doesn’t expect his next course to stray too far from the current Computing in Context model.
“I’ve been speaking with folks who are interested in doing a professional-school version of Computing in Context,” he said, aiming to include students from the schools of business, journalism, social work, and others.
Adam expects the biggest change in the next 10 years will be the expansion of teaching computing to non-majors — and giving students more than just a cursory look.
“I think a course like that may be necessary for now,” Adam said. “Hopefully, if we do our jobs well, 10 years from now the class won’t be necessary because there wouldn’t be anyone in a professional school that didn’t have these skills already.”