EECS 16B. Designing Information Devices and Systems II

Catalog Description: This course is a follow-on to EECS 16A, and focuses on the fundamentals of designing and building modern information devices and systems that interface with the real world. The course sequence provides a comprehensive introduction to core EECS topics in machine learning, circuit design, control, and signal processing while developing 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 exercises. The courses are aimed at entering students as well as non-majors seeking a broad introduction to the field.

Units: 4.0

Prerequisites: EECS 16A

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

Grading basis: letter

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

Class Schedule (Fall 2020):
TuTh 9:30AM - 10:59AM, Internet/Online – Maxwell Chen, Michael Lustig, Ramsey Mardini, Seth SANDERS

Class Schedule (Spring 2021):
TuTh 11:00AM - 12:29PM, Internet/Online – GIREEJA RANADE, Vladimir Marko Stojanovic, PhD

Class homepage on inst.eecs

General Catalog listing

Department Notes:

16B Modules:

  • Module 1 - Differential equations and advanced circuit design
  • Module 2- Introduction to robotics and control
  • Module 3 - Introduction to unsupervised machine learning and classification

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.