Computer science students, frustrated with the department’s lack of practical classes, are asking faculty to create coursework that better prepares them for their careers.

UCLA’s chapter of Association for Computing Machinery, a student-run organization, Upsilon Pi Epsilon and the UCLA computer science department are holding a computer science town hall Feb. 20 to discuss students’ concerns about a lack of practicality in the department’s courses.

Yvonne Chen, a third-year computer science student and president of UCLA ACM, said in a Facebook post promoting the event she thinks the town hall will give students an opportunity to provide input on how to improve the major.

“We have an easy opportunity to change UCLA computer science for the better,” Chen said in the post.

Chen said current courses are mostly focused on the theories underlying computer programming, such as algorithm analysis and design features of programming languages. She said they are often not directly applicable to most recent developments in programming.

ACM sends out an annual survey to computer science students to gauge their satisfaction with the courses offered. Responses from more than 200 undergraduates who study computer science showed that students want more thorough and hands-on projects in courses such as computer vision, machine learning and human-machine interaction, Chen said.

Kevin Tan, a third-year computer science student and president of UCLA ACM Hack, a subsidiary of UCLA ACM, said he also wants to change the department’s curriculum.

“We have a rich theoretical curriculum,” Tan said. “(But) there is nowhere in our curriculum where you can learn practical web development or mobile development.”

This quarter, Tan wanted to teach a class on how to design iPhone apps using iOS software as part of the Undergraduate Student Initiated Education program, through which students can teach seminars to their peers.

However, when he tried to get his faculty advisor’s consent to teach the course, he was told the topic was too practical. Tan and his advisor agreed to offer a more theory-based iOS app design class instead.

Tan said he thinks more practical classes would give students the experience to work on real-world projects, such as app development, that would look better to future employers.

He also said computer science courses often require students to follow the projects’ instructions word-for-word and rarely leave room for creativity.

“Computer science students are not often given a chance to design things of their own,” Tan said. “Hopefully I can give people the perspective of how to design the specification in the first place.”

Richard Korf, the vice chair of undergraduate studies in the computer science department, said he regularly attends the annual computer science town hall. He said he thinks faculty are responsible for keeping the courses up-to-date and that instructors rely on student feedback for course content design.

Korf said faculty is doing their best to include practical courses, but it is difficult to make sure the courses are kept up-to-date with the constantly evolving field of computer science. He said while most of the courses offered are more theory-based, it is important to teach computer science students fundamental concepts to prepare them for the workforce.

“Given that we have four years to teach people to be productive professionals for 40 years, we have to focus on really basic things,” he said.

He added since languages and platforms that are considered more efficient gain and lose popularity quickly, students would benefit more from learning fundamental concepts that are unlikely to change.

Korf said the department teaches students how to think and trains them to be problem solvers.

Chen and Tan said they agree having a theoretical foundation is important, but they think practical and applicable courses are important in preparing students for programming careers.

“It’s all about balance,” Tan said. “It is important to have that foundation, but there should also be encouragements to explore practical skills that are not shoved to student groups.”

Tan said because the computer science department has not offered enough practical classes, many computer science clubs have had to take on the role of providing practical training for students.

He said the computer science department told him the department should not have to make its coursework more practical, since many student organizations already provide opportunities for practical training.

Tan added although students can learn from each other through these clubs, they would benefit more from departmental support.

Join the Conversation

3 Comments

  1. “Korf said the department teaches students how to think and trains them to be problem solvers.”

    How so? Does he mean something other than the generic sense that programming teaches when to use branching (e.g.) or the even more generic sense that one could intuit problem solving by learning the great works of the past (which is what all majors claim when they say they teaching thinking and problem solving)?

  2. Why would you want to learn about things that are likely to be irrelevant in 5 years time? This emphasis on practically is not a good approach to education. Your computer science education is not meant to make you a developer – you can only achieve this through your own devotion. Instead, your education tries to teach you the fundamentals so that you can learn things in the future. It is meant to be a timeless toolset. It is far more useful than a particular framework or web development technique that will certainly change in a few years.

  3. The magic of computer science is that you can learn everything based on the logic and algorithms. Without it, Computer science wouldn’t have the science in computer science, it would just be programming.

    To counter the flexibility of instructions, Commitstrip discussed it with their “Coder Autonomy” strip. It sounds nice in theory, for students to demand more flexibility, but through personal experience, that flexibility usually turns into demand for “non-rigid standards”, like “the instructions aren’t precise enough, duh duh duh…” Believe me, because that’s exactly how I felt between 2 projects.

    The entire field of computer science relies on using what you know to learn something new. Sure, universities can teach more practical classes in Javascript instead of C++, but there are many people who are overlooking the importance of C++ in the industry, especially in APIs for hardware products. What’s most “shamefur dispray” about this is that algorithms and C++, despite its portrayal in university CS curriculum, are not useless for career.

    I completely understand that, to prepare for a career, learning about bit shifting and xor may not look like the most relevant to getting an internship, but that’s also a problem. To me, I don’t want computer science to look like a major where “everyone attends to earn money”, to have classes develop cancer from people competing to see who can make the best Android app. That’s not computer science, that’s just programming, and knowing programming doesn’t let the world find faster ways to search for prime numbers. There’s a research side to computer science, that’s equally compatible with a career with the industry, and the courses that lean towards abstraction and algorithms are just as well suited to a career in the industry.

Leave a comment

Your email address will not be published. Required fields are marked *