Berkeley 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.
Fennie is independent and not affiliated with UC Berkeley. This is an unofficial study guide.
Build my EECS 16A study planWhat makes it hard
16A interleaves two subjects — linear algebra and circuits — and the homework demands justification-style reasoning closer to proofs than to plug-in computation. Students treating it as either a pure math course or a pure circuits course get caught by the half they discounted, and the timed exams reward genuine fluency in both.
What you'll cover
- • Systems of linear equations and Gaussian elimination
- • Vector spaces, eigenvalues, and eigenvectors
- • Resistive circuit analysis
- • Capacitors and touchscreen design
- • Least squares and linear regression
The EECS 16A study guide
How to study for Berkeley EECS 16A, step by step.
- 1
Respect both threads from week one
16A alternates linear algebra and circuits, and the exams weight both. Whichever thread feels weaker is where your weekly review time should go — discounting one half is the classic 16A mistake.
- 2
Write out justifications on homework, not just answers
16A grading rewards reasoning, and the exams ask why as often as what. Practicing clean justifications on problem sets is direct exam training.
- 3
Use the labs to anchor the abstractions
The imaging and touchscreen labs exist to make matrices physical. After each lab, connect what the hardware did to the linear algebra operation it implemented — that link is what makes the theory stick.
- 4
Drill circuit analysis to a routine
Node-voltage analysis done identically every time prevents the sign errors that bleed exam points. Build the routine early and apply it to every practice circuit.
- 5
Work past exams from the course archives
16A has a large bank of past exams, and the question styles recur. Timed practice with them calibrates both the math and circuits halves at exam difficulty.
- 6
Keep the interleaving survivable with Fennie
Upload the EECS 16A schedule and Fennie's Daily Plans balance the linear algebra and circuits threads week by week, generating practice quizzes on whichever half is lagging from your actual course materials. Free to start.
Start my EECS 16A plan free
How Fennie helps with EECS 16A
Fennie's Daily Plans balance EECS 16A's two interleaved threads — linear algebra and circuits — so weekly review covers both instead of whichever felt easier. Chat through why a circuit reduces to the matrix equation it does, and run generated quizzes on the lagging thread before each exam.
FAQ
Is EECS 16A hard?
It's a demanding foundation course because it teaches linear algebra with proof-flavored reasoning while running a circuits thread in parallel. Students who keep both halves current find it steady work; those who discount one half get caught at the midterms.
Should I take EECS 16A or MATH 54?
EECS majors take 16A/16B — it's designed for the major and required. MATH 54 covers overlapping linear algebra for CS majors on the L&S side. Check your degree requirements; the two are not interchangeable for EECS.
Do I need circuits experience before EECS 16A?
No — the circuits content starts from zero. What helps more is comfort with algebraic manipulation and a willingness to write careful justifications, since the homework expects reasoning rather than plugged-in formulas.
Pass EECS 16A with a plan, not a cram
Upload your EECS 16A materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.
Get started freeMore Berkeley courses
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.