Berkeley study guides, course by course
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 BerkeleyElectrical Engineering and Computer Sciences
CS 61A — The 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 61B — Data 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 70 — Discrete 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 61C — Great 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 161 — Computer 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 162 — Operating 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 170 — Efficient 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 188 — Introduction 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 189 — Introduction 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 16A — Designing 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 16B — Designing 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
DATA 8 — Foundations of Data Science
DATA 8 is Berkeley's intro data science course and one of the largest courses on campus, combining Python programming, statistical inference, and prediction with real datasets in Jupyter notebooks. It assumes no prior programming or statistics and anchors the Data Science major.
DATA 100 — Principles and Techniques of Data Science
DATA 100 is the upper-division core of Berkeley's Data Science major, covering the full pipeline: pandas data wrangling, visualization, sampling, regular expressions, SQL, linear models, gradient descent, regularization, and classification with scikit-learn. It follows DATA 8 and runs at enormous scale.
Mathematics
MATH 1A — Calculus 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 1B — Calculus 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 54 — Linear 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 53 — Multivariable 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 55 — Discrete 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
CHEM 1A — General Chemistry
CHEM 1A is Berkeley's general chemistry course for science and engineering majors, covering stoichiometry, gas laws, thermodynamics, bonding, and acid-base chemistry, usually taken with the CHEM 1AL lab. It's a first-semester staple for pre-meds, chemistry, and engineering students.
CHEM 3A — Chemical Structure and Reactivity
CHEM 3A is the first semester of Berkeley's organic chemistry sequence for biology majors and pre-meds, covering structure and bonding, stereochemistry, conformations, and the core substitution and elimination reaction families, usually taken with the CHEM 3AL lab. CHEM 3B completes the sequence.
Physics
PHYSICS 7A — Physics for Scientists and Engineers
PHYSICS 7A is Berkeley's calculus-based mechanics course — kinematics, Newton's laws, energy, momentum, rotation, and fluids — required for engineering and physical science majors. It's the first of the 7-series and typically taken in the first year alongside math.
PHYSICS 7B — Physics for Scientists and Engineers
PHYSICS 7B is the second course in Berkeley's calculus-based physics sequence, covering thermodynamics and kinetic theory, then the electricity-and-magnetism core: electrostatics, circuits, magnetism, and induction. It's required for engineering and physical-science majors and widely cited as the hardest course in the 7-series.
Economics
Statistics
Biology
Business Administration
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