Navigating the UCLA Computer Science Major

Getting through the CS major at UCLA is less about being a genius and more about understanding the structure early enough to not bottleneck yourself. The requirements themselves are straightforward on paper, but the sequencing is where most people trip up. I learned that the hard way. The major lives in the School of Engineering, which means you're locked into the engineering math sequence. That's Math 31A, 31B, and 31C covering single-variable calculus, multivariable calculus, and differential equations. You need those before upper-division CS courses. If you walk in thinking you can skip ahead to coding classes right away, you'll hit a wall by junior year when everyone realizes they forgot to plan. The core courses break down into three buckets. Foundation: CS 31 (data structures), CS 32 (algorithms and data structures using Java), and CS 33 (computer organization). These are your gatekeepers. CS 32 has a reputation for being a filter, and the pass rate reflects that. Discrete math through Math 33 or CS 35 is required and it matters more than most students realize. Without solid discrete math, proofs in later theory courses hit differently.

Upper-division core includes CS 42 (operating systems), CS 45 (databases), CS 47 (computer networks), and CS 131A or 131B in probability and statistics. You also need CS 14 (software construction) or CS 34, plus CS 100L as a capstone. That capstone is essentially a two-quarter sequence where you build something substantial. It's the closest thing the major has to a thesis, though nobody treats it like one because the schedule is so tight. The elective requirements let you specialize but also create confusion. You pick from approved upper-division courses across areas like theory, systems, AI, and graphics. The approved course list changes periodically, and advisors don't always catch updates before students register for things that turn out not to count. I had a student once take CS 136A in computer vision assuming it was an AI elective. It's actually a graduate course that doesn't satisfy the undergraduate CS major requirements. They had to swap it for CS 132, which was already full. Here's the practical workaround that saves headaches: run every elective you're considering through the CS Division's advising office or check the ucla cs homepage for the current approved list before registering. Don't trust the course catalog from two years ago. It's outdated. The approval process is mostly digital now, and courses get added or removed every semester based on faculty changes and accreditation reviews.

The math requirements go beyond just calculus. Linear algebra through Math 33D or Stats 100C is required, and it's not a sideshow. Any machine learning or graphics track depends on it. Students who ignore linear algebra and then try to take CS 131A anyway end up struggling with eigenvalues and matrix decompositions without any real foundation. You also need a writing-intensive course. CS 4 or equivalent counts, but some students use other department writing courses to spread the load. The quota system here is rigid. You can't waive it unless you transfer in a qualifying course, and transfer equivalency evaluations are their own nightmare. I've seen people spend three weeks arguing with the registrar about whether a course from another university satisfies the requirement. The decision usually goes against the student because the syllabus comparison is strict. Total unit requirements sit around 80 to 85 upper-division units depending on how you count prerequisite math and general education courses. That's roughly twelve to fifteen courses per quarter if you space it evenly over four years. During peak quarters when CS 32, CS 42, and CS 45 all overlap, the workload is heavy. I've had students carry three hardware systems courses plus math in the same term and burn out. Spreading CS 33 and CS 42 across different quarters instead of stacking them makes a real difference.

Get the Full Details

Ucla Computer Science Degree – Undergraduate Requirements – LYUYPB
Ucla Computer Science Degree – Undergraduate Requirements – LYUYPB

The minor option within the major exists but isn't popular. You declare a concentration track like theory, systems, or computation and society. Each track has its own subset of required electives. Picking early helps because certain tracks have prerequisites that aren't obvious. The computation and society track, for example, expects you to take philosophy or ethics courses that fill up fast. You won't find a spot unless you register on the first day available. One thing the catalog doesn't emphasize enough: grade floor requirements. You need at least a C- in most CS core courses, but a C- won't cut it for graduate school applications or many research positions. The unofficial competitive standard is a B or better in CS 31, 32, 33, and 42. If you're aiming for industry recruiting, those four grades show up on transcripts and recruiters notice when they're low. There's also the issue of capacity-constrained courses. CS 32, CS 42, and CS 45 regularly max out. The registration system opens and sections fill within minutes. I recommend having backup sections in mind before registration day, including cross-listed versions or courses at neighboring campuses through ARC if you qualify. Cross-enrollment at Caltech or USC is an option but adds paperwork and financial aid complications that most students don't want to deal with mid-semester.

The graduation audit through ucla cs student service center is essential. Run it early and often. I've seen seniors discover they needed a course they'd never heard of because it got added to the requirement list after they'd already checked out. The audit tool catches these discrepancies, but only if you run it every quarter rather than once before final year. Research opportunities exist but aren't automatic. You need to email professors during your first or second year. Waiting until junior year means the popular labs are already staffed by upperclassmen who recruited spots early. Professors appreciate students who send specific emails referencing their recent papers. Generic "I want to do research" messages get deleted. I had a advisee who sent a three-paragraph email about a specific implementation detail in a robotics lab paper and got a reply within two days. Another student sent a one-line message and never heard back. The internships and career services connect you through the same engineering career portal. The major requirements themselves won't prepare you for every technical interview, but they give you the foundation. The gap between academic coursework and what FAANG companies ask in interviews is real. Most students fill it with LeetCode practice on their own time. The CS curriculum focuses on correctness and theory. Interview prep is a separate skill set entirely.

One counter-intuitive point about the capstone requirement: CS 100L is often less demanding than students expect, but that's because it's structured differently. You're working in teams on a project that spans two quarters. The grading is partly peer evaluation, which introduces its own friction. Team composition matters more than individual talent here. I've watched groups fall apart because someone took a job offer and left mid-project. The workaround is to get commitment from every team member in writing during the first week and identify a backup person early. It sounds excessive, but it prevents mid-semester disasters. If you need a shortcut, there isn't one. The major requires genuine time investment. What works is planning around the prerequisites and spacing your load strategically. Take CS 31 and 33 together in your sophomore year if you can handle it. Take CS 32 after 31. Then stack CS 42 and 45 in junior year alongside your chosen track electives. Finish with the capstone in senior year while pulling interviews and applications. The degree itself from ucla engineering carries weight in both academia and industry. Employers know the filtering is real. That's why the workload matters more than the credits. Completing the requirements is table stakes. Doing well in the hard courses is what separates people who get interviews from people who don't.

Computer Science Major Requirements | PDF | Computers
Computer Science Major Requirements | PDF | Computers