Skip to main content
Top Public Flagships

UCLA study guides, course by course

Los Angeles, CAPublic R1

UCLA runs on the quarter system: ten weeks from first lecture to finals, which compresses every course and makes falling behind unusually expensive. Intro STEM courses are large, curved, and midterm-heavy — with two midterms plus a final in ten weeks, exam season effectively never stops.

UCLA courses use a department abbreviation plus a number, often with a letter suffix marking sequence position — MATH 31A and 31B, CHEM 14A through 14D, PHYSICS 1A/1B/1C. The 14-series and 20-series in chemistry are parallel tracks for life-science versus physical-science majors.

Fennie is independent and not affiliated with UCLA.

Use Fennie at UCLA

Computer Science

7

CS 31Introduction to Computer Science I

CS 31 is UCLA's intro programming course, taught in C++, covering control flow, functions, arrays, pointers, and basic program design. It's the first required course for CS majors and a common choice for engineering and math students adding programming skills.

CS 32Introduction to Computer Science II

CS 32 is UCLA's data structures course in C++, covering recursion, linked lists, stacks, queues, trees, hash tables, and algorithm analysis. Its multi-thousand-line projects — including the famous game-engine project — are a step change in scale from CS 31.

CS 33Introduction to Computer Organization

CS 33 is UCLA's computer organization course, taking students below C into machine-level representation, x86-64 assembly, the memory hierarchy and caches, linking, and concurrency basics. It follows CS 32 and is where CS majors first see what their code becomes on real hardware.

CS 35LSoftware Construction

CS 35L is UCLA's software-construction course, teaching the practical toolchain upper-division CS assumes: the Unix/Linux command line, shell scripting, Git, build systems, Python and scripting, and a collaborative software project. Long associated with Professor Eggert, it's the course that turns students into functional engineers.

CS 111Operating Systems Principles

CS 111 is UCLA's operating systems course, covering processes and threads, scheduling, synchronization, memory management and virtual memory, file systems, and protection, with substantial systems-programming projects in C. It's a core upper-division requirement and one of the most respected courses in the major.

CS 131Programming Languages

CS 131 is UCLA's programming-languages course, surveying language paradigms and concepts — type systems, scoping, functional programming, concurrency, and memory models — through a rotating cast of languages such as OCaml, Prolog, Scheme, and Java or Python. It's a core upper-division requirement, also long associated with Professor Eggert.

CS 180Introduction to Algorithms and Complexity

CS 180 is UCLA's algorithms course: graph algorithms, greedy methods, divide and conquer, dynamic programming, network flow, and NP-completeness. It's the theory core of the upper division and the course most directly mirrored in technical interviews.

Mathematics

7

MATH 31ADifferential and Integral Calculus

MATH 31A is UCLA's first calculus course — limits, derivatives, optimization, and the basics of integration — required across engineering, physical science, economics, and life-science-adjacent tracks. Most STEM freshmen take it (or skip it via AP credit) in fall quarter.

MATH 31BIntegration and Infinite Series

MATH 31B covers integration techniques, applications, improper integrals, and infinite sequences and series including Taylor series. It's the second course in UCLA's main calculus sequence and a prerequisite for the multivariable courses that follow.

MATH 32ACalculus of Several Variables

MATH 32A introduces multivariable calculus: vectors, vector-valued functions, partial derivatives, gradients, and optimization in several variables. It's required for engineering, physics, math, and CS-adjacent tracks, typically taken in the first year after the 31 sequence.

MATH 32BCalculus of Several Variables

MATH 32B completes UCLA's multivariable calculus sequence: multiple integrals, change of variables, line and surface integrals, and the vector-calculus theorems of Green, Stokes, and Gauss. It follows 32A and is required across engineering and the physical sciences.

MATH 33ALinear Algebra and Applications

MATH 33A is UCLA's linear algebra course: systems of equations, matrices, vector spaces, linear transformations, orthogonality, least squares, eigenvalues, and eigenvectors. It's required across engineering, math, and CS, and the linear algebra it teaches underpins machine learning and upper-division applied coursework.

MATH 33BDifferential Equations

MATH 33B is UCLA's ordinary differential equations course: first-order equations, second-order linear equations, the method of undetermined coefficients and variation of parameters, and applications to physical systems. It follows the 31 sequence and is required across engineering and the physical sciences.

MATH 61Introduction to Discrete Structures

MATH 61 is UCLA's discrete mathematics course: logic and proof techniques, induction, set theory, combinatorics, recurrence relations, and graph theory. It's a required foundation for the CS major and the course where students first learn to construct rigorous arguments.

Life Sciences

3

Chemistry and Biochemistry

4

Physics and Astronomy

2

Economics

2

Statistics and Data Science

1

Psychology

1

Studying at UCLA?

Upload your course materials and Fennie generates Daily Plans paced to your deadlines — plus chat, flashcards, and quizzes built from your own courses.

Get started free

Other top public flagships schools