Catalog Description: This course and its follow-on course EECS16B focus on the fundamentals of designing modern information devices and systems that interface with the real world. Together, this course sequence provides a comprehensive foundation for core EECS topics in signal processing, learning, control, and circuit design while introducing key linear-algebraic concepts motivated by application contexts. Modeling is emphasized in a way that deepens mathematical maturity, and in both labs and homework, students will engage computationally, physically, and visually with the concepts being introduced in addition to traditional paper/pencil exercises. The courses are aimed at entering students as well as non-majors seeking a broad foundation for the field.

Units: 4

Prerequisites: MATH 1A and MATH 1B (1B may be taken concurrently); COMPSCI 61A (encouraged to be taken concurrently).

Summer: 6.0 hours of lecture, 4.0 hours of discussion, and 6.0 hours of laboratory per week
Fall: 3.0 hours of lecture, 2.0 hours of discussion, and 3.0 hours of laboratory per week

Grading basis: letter

Final exam status: Written final exam conducted during the scheduled final exam period

Class Schedule (Summer 2024):
EECS 16A – MoTuWeTh 09:30-10:59, Dwinelle 145 – Moses Won

Class Schedule (Fall 2024):
EECS 16A – MoWe 18:30-19:59, Pimentel 1 – Babak Ayazifar, Jean-Paul Tennant

Class homepage on inst.eecs

Department Notes:

16A Modules:

Frequently asked questions:

Q1: Should I take EECS16A my first semester at Cal?
A1: If you have taken an AP calculus class, then the answer is yes! EECS16A has no prerequisites other than calculus and is designed with freshmen and incoming transfer students in mind. It is designed to be taken alongside 61A. Furthermore, we reserve seats for freshmen and incoming transfer students in the class, so you are essentially guaranteed a spot in the class your first year. It will be harder to get into the class as an upperclassman.

Q2: Should I take EECS 16A and EECS 16B before or after CS 70?
A2: EECS16A and 16B were specifically designed to help ease the transition to CS70 for incoming students. These classes provide an introduction to proofs and the kind of mathematical thinking that is very useful in a class like CS70. We recommend you take 16AB before taking CS70.

Q3: Should I take MATH 54 before taking EECS16A?
A3: EECS 16A is designed to be taken without any prerequisites, so there is no need to take MATH 54 before EECS 16A. EECS 16AB teaches linear algebra with the intent of preparing you for courses like EECS 127 (Optimization) and EECS 189 (Machine Learning) and provides engineering and machine learning examples and applications for linear algebra. EECS 16AB also uses Jupyter notebooks and python so you can better connect linear algebra and computation. There is no need for a CS/EECS student to take Math 54.