In the 1960s, computer science students didn’t program behind a computer screen.
Instead, they wrote their programs on paper and then sent them to be processed by a computer. As a result, said electrical engineering and computer science professor emeritus William Kahan, a single mistake could cost students hours — thus requiring them to be more fastidious in checking their work before sending it to the computer.
“Currently, you don’t get punished very much for a mistake, and so you can afford to be sloppy,” Kahan said.
UC Berkeley sophomore Shana Hu, however, noted that mistakes still have their consequences — she once spent 12 hours straight searching for a bug in her program.
“That was me this past weekend,” said sophomore CS major James Maa. “Which is why I’m actually kind of sleep-deprived.
Sleep deprivation aside, though, students are flocking to the computer science field. This semester, 1,098 students enrolled in the introductory computer science class CS 61A, and the department saw 482 declared majors this fall — nearly double the number in the past fall.
“We are now seeing unprecedented enrollments of more than (one and a half) times the previous huge peak,” said David Culler, an EECS professor and the department chair, in an email. “Overall enrollments have more than tripled in the past five years.”
According to Culler, of the roughly 4,100 freshman at UC Berkeley, more than half will have taken an introductory computer science course by the end of the year. The spike in popularity, Culler said, extends beyond Berkeley and comes at an exciting time for the field.
From a changing curriculum to a changing demographic, the major is shifting along with technology. And as more students dive into the tech world, they emerge with a plethora of programming pursuits, from traditional software engineering to design to startups.
Oh, the humanity
Computer science originally existed only within the EECS major but then split into its own department in the 1960s. Nowadays, the curriculum of the two majors overlaps to a large extent, according to School of Information professor Marti Hearst.
“It’s boom and bust,” Hearst said, referring to the fluctuation of the computer science major’s popularity since its conception in the 1960s.
Culler said, however, that although CS enrollment has gone up and down in the past, it has never seen an up like that of recent years. A big boom in CS followed the Web’s arrival in the mid ’90s, according to Culler. Then enrollment dipped and picked up again around 2007 — tripling later once the economy picked up.
And aside from upping computer science’s popularity, the Web has also changed how people approach the subject, partially by sparking greater emphasis on developing more accessible user interfaces, Hearst said.
Moreover, Kahan said, a lack of usability can have devastating consequences. For example, in the extra 10 seconds the pilots of Air France 447 in 2009 spent struggling to understand a confusing computer program, the airplane crashed, killing 228 people.
According to Kahan, computer programs have become more “humane” over time, but they’re still not user-friendly enough. The blame lies partially on a lack of consideration on the part of programmers.
“I thought, foolish fellow that I was, that we could train computers to treat people more humanely than people treat people,” Kahan said of when he started studying computer science in 1953. “Ah, I was an idealist.”
To make something
According to UC Berkeley student Hina Sakazaki, who is the Computer Science Undergraduate Association’s president, CS has been associated with sexism, although things are getting better — the CS department at UC Berkeley takes pride in the increased percentage of women in the major. EECS, however, has made less progress.
“(I) sometimes wished I was better at CS just so I could reflect better on my gender,” Sakazaki said, “because I feel like I owe it to girls to step it up.”
And as CS works to progress in its demographic, it also must accommodate changing technology. Sakazaki describes the curriculum on campus as fairly theoretical, meaning it focuses more on logic-based foundational skills than on the ever-developing array of programming tools.
But the curriculum on campus still has changed significantly in recent years. For example, according to Nathan Rockenbach, a class of 2013 EECS alumnus, the introductory CS class switched during his time on campus from teaching the programming language Scheme to teaching Python, a more useful language in the everyday life of a programmer.
According to Culler, one course has introduced a new concept, called parallelism, to give students hands-on experience in making computers go faster.
“All through the program these kinds of changes are taking place, and continuously,” he said in an email.
Regardless, much of CS learning takes place outside of the classroom through extracurricular projects that reflect the diverse interests of students.
Sakazaki became a CS major so she could pursue video game development. Hu, whose programming interests include design, once made a color scheme and typeface generator specifically geared toward fellow programmers who love coding and dislike design. Richie Zeng and Nathan Zhang, who would have been juniors, dropped out of UC Berkeley this semester to develop a vision of wearable technology.
And with the immense resources made available by the Web, employers expect students to pursue their own creative work. Sakazaki recounted the advice of a friend who studied CS before the advent of the Web, marveling at the tools students have now.
“(The friend’s) like, you guys have no excuse to not make something,” Sakazaki said. “You have to make something and impress the recruiters and industry, or else you’re worthless.”
But regardless of the pressures of modern CS, students retain a relish for its freedoms.
“I just really enjoy the work involved,” Zhang said. “The magic never really goes away.”