Skip to main content
Top Public Flagships

Berkeley study guides, course by course

Berkeley, CAPublic R1

Berkeley is a semester-system public flagship with some of the largest and most-discussed intro courses in the country — CS 61A alone enrolls well over a thousand students a term. Intro STEM courses lean on autograded projects, brutal curved midterms, and a course culture where past exams and student-run resources are essential study material.

Berkeley courses use a department abbreviation plus a number, e.g. CS 61A or MATH 1B. The CS 61 series (61A, 61B, 61C) is the famous lower-division core, and letters after numbers (1A, 7A) usually mark sequence position.

Fennie is independent and not affiliated with UC Berkeley.

Use Fennie at Berkeley

Electrical Engineering and Computer Sciences

11

CS 61AThe Structure and Interpretation of Computer Programs

CS 61A is Berkeley's legendary intro CS course, taught primarily in Python with excursions into Scheme and SQL. It emphasizes abstraction — higher-order functions, recursion, object-oriented programming, and interpreters — and it's the first course in the CS 61 series that every CS and Data Science student takes.

CS 61BData Structures

CS 61B is Berkeley's data structures course, taught in Java, covering lists, trees, hashing, graphs, sorting, and asymptotic analysis. It's the second course in the 61 series and the one most cited in industry-interview prep — its projects, including the famous build-your-own-world and Gitlet (build a mini Git), are substantial software engineering exercises.

CS 70Discrete Mathematics and Probability Theory

CS 70 is Berkeley's discrete math and probability course, required for the CS major, covering proofs, graph theory, modular arithmetic, RSA, polynomials, counting, and a substantial probability unit. It's the theory gateway — and by reputation, the hardest lower-division course in the major.

CS 61CGreat Ideas of Computer Architecture (Machine Structures)

CS 61C completes Berkeley's 61 series, going below the abstraction line: C programming, RISC-V assembly, CPU datapaths and pipelining, caches, virtual memory, and parallelism. It's required for the CS and EECS majors and is the course where software students finally see what the hardware is doing.

CS 161Computer Security

CS 161 is Berkeley's upper-division security course, covering memory-safety attacks and defenses, cryptography, web security, and network security. Its centerpiece is a substantial project sequence, including a famous secure file-sharing system built in Go that students design and defend themselves.

CS 162Operating Systems and System Programming

CS 162 is Berkeley's operating systems course: processes and threads, scheduling, synchronization, virtual memory, file systems, and distributed-systems basics, with a semester-long group project sequence building pieces of the Pintos teaching OS in C. It's a core upper-division requirement for the CS major.

CS 170Efficient Algorithms and Intractable Problems

CS 170 is Berkeley's algorithms course: divide and conquer, graph algorithms, greedy methods, dynamic programming, linear programming, and NP-completeness. It's the theory core of the upper division, building directly on CS 61B's data structures and CS 70's proof skills.

CS 188Introduction to Artificial Intelligence

CS 188 is Berkeley's upper-division AI course, famous for its Pacman project series: search, constraint satisfaction, game trees, Markov decision processes, reinforcement learning, probabilistic inference with Bayes nets and HMMs, and an introduction to machine learning. The Pacman framework Berkeley built here is used in AI courses worldwide.

CS 189Introduction to Machine Learning

CS 189 is Berkeley's rigorous machine learning course: linear and logistic regression, SVMs, kernels, neural networks, decision trees, clustering, and dimensionality reduction, treated mathematically rather than as a library tour. It's the gateway to ML research and the course where MATH 54's linear algebra gets cashed in.

EECS 16ADesigning Information Devices and Systems I

EECS 16A is the first course in the EECS-major foundation sequence, teaching linear algebra through engineering applications: systems of equations via tomography-style imaging, circuit analysis, and least squares through GPS-like positioning labs. It's the EECS counterpart to MATH 54, with hands-on labs the math department doesn't have.

EECS 16BDesigning Information Devices and Systems II

EECS 16B continues the EECS foundation sequence into differential equations, transistor circuits, stability and feedback control, and the SVD/PCA, culminating in the SIXT33N voice-controlled car lab that ties the whole sequence together. It's the bridge between 16A's linear algebra and the upper-division EECS core.

Data Science

2

Mathematics

5

MATH 1ACalculus I

MATH 1A is Berkeley's first-semester calculus course covering limits, derivatives, applications of differentiation, and the beginnings of integration. It's the standard entry point for STEM majors without AP credit and a prerequisite chain-starter for nearly every technical major.

MATH 1BCalculus II

MATH 1B covers techniques of integration, applications, infinite sequences and series, and first- and second-order differential equations. It's required for engineering, CS, and physical science tracks, and it carries a reputation as one of the toughest lower-division math courses at Berkeley.

MATH 54Linear Algebra and Differential Equations

MATH 54 packs linear algebra (matrices, vector spaces, eigenvalues) and differential equations into one semester, serving engineering, CS, and science majors. The linear algebra it teaches underpins machine learning coursework, which makes it one of Berkeley's most consequential lower-division courses.

MATH 53Multivariable Calculus

MATH 53 is Berkeley's multivariable calculus course: parametric curves, partial derivatives, multiple integrals, and the vector calculus arc through Green's, Stokes', and the divergence theorem. It's required across engineering and the physical sciences and is the calculus that physics and upper-division applied courses assume.

MATH 55Discrete Mathematics

MATH 55 is Berkeley's discrete mathematics course: logic and proofs, induction, set theory, combinatorics, recurrences, number theory, graph theory, and discrete probability. It serves math majors and students outside EECS who need discrete math — CS 70 covers overlapping ground for the CS-major path, and most programs accept one or the other.

Chemistry

2

Physics

2

Economics

1

Statistics

1

Biology

1

Business Administration

1

Studying at Berkeley?

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