One of UCLA’s greatest ironies is that its computer science curriculum is just a series of textbooks. So much for building the next Facebook.
Computer science students have long complained that their curriculum is not practical enough. Students raised these concerns with their department Wednesday during a department town hall co-hosted by the Association for Computing Machinery student group, pointing out they needed to learn more applicable skills relevant to the industry.
UCLA’s computer science department is largely based on 20th-century theoretical foundations of the field. Many of the courses the program offers focus on giving undergraduates a strong sense of the mathematical and conceptual foundations without much focus on the practical applications of the major. The department stresses teaching students the C programming language – an archaic code scheme developed in 1972.
The department expects students to obtain practical skills from their student-run extracurriculars, rather than teaching them. One of these extracurriculars is ACM, which helps students pick up machine learning, cybersecurity and application design.
In a world where companies hire students based on their ability to do things, it’s crucial that UCLA’s computer science education extends beyond mere theory. But students are the ones who need to claw their way into the competitive private sector, and they’ll need strong application skills to compete with other graduates.
Richard Korf, a professor and undergraduate vice chair of the computer science department, said the disparity between theory and practicality is intentional.
“A lot of our courses are theoretically based. We’re trying to train people for a career that lasts 40 years or more,” Korf said. “The question is, what do you teach people to become productive professionals in a field that’s changing very, very fast?”
His answer: teach students the theoretical foundations of the major.
But students give a different answer. They say more practical skills are what’s needed to cut it in the field. While a strong theoretical foundation is helpful during their careers, they still have to actually land a job first.
Korf disagrees, though.
“It’s like going to the gym and lifting weights. It’s not productive to get that weight from the ground up there, because no one needs it up there,” Korf said. “But what you are doing is trying to train your muscles to do that. And you do that by lifting weights.”
Korf’s analogy suggests that, just like lifting weights allows one to lift things outside of the gym, a strong theoretical foundation allows students to carry out practical tasks in the workforce. But that’s not really true. A purely theoretical education will leave students unprepared for practical tasks. Just like lifting weights won’t make the average student better at picking up a football and throwing a spiral pass, learning the theoretical foundation of computer science won’t grant students the practical skills necessary for landing a job at Google or Apple.
The department expects students to learn all the practical elements of computer science in their own student-run clubs. But the computer science workforce is a landscape that thrives off the practical skills of recent graduates. Projects and hands-on applications are precisely what employers look for in students seeking full-time positions or internships.
“I think joining a club is super important because we don’t get actual applied CS experience in classes,” said Smayra Ramesh, a first-year computer science student. “I joined CS because of how applicable it is. I’m not necessarily interested in pure back-end software development or theoretical CS.”
And while the department does offer several practical courses, they are hard to come by. That’s not enough for students like Ramesh and others who aren’t interested in an excessive theoretical education without matching practical courses.
If UCLA won’t teach students what computer science clubs are doing in its stead, the least it can do is offer more student-led classes focused on practicality.
“It would be nice to have a few more classes on the practical side. ACM is pushing the department to introduce more student-led classes that focus on that,” said Nathan Yang, the ACM external vice president and fourth-year computer science student. “If I was a second-year, those would have been helpful.”
Classes like those in the Engineering 96 series, which are lower-division, student-led courses, focus on teaching undergraduates hands-on skills. These types of classes not only help Bruins develop applicable skills, but also promote important collaboration among students.
Certainly, Korf has a point: Computer science is fast-moving, and it’s hard to constantly change curricula to match the pace of the industry. It thus makes sense that UCLA has a big focus on students mastering the fundamentals of computer science. But the department seems to be conflating understanding theory with understanding the entirety of the field. Teaching the basic science behind how computers operate teaches you just that; it doesn’t show you how to do things like combine virtual reality with network technology to build an innovative communication utility – one of the many things industries are investing heavily in today.
This misunderstanding is likely the reason the department has passively given students the task of educating themselves.
And so long as the department continues to do so, students will be forced to decide: Join a club to supplement their one-sided curriculum, or settle for never being able to program a robot to throw a spiral pass.