EECS16B | Designing Information Devices and Systems II

Spring 2020


This schedule is highly tentative and subject to change (esp. topic coverage and dates).
(Please scroll horizontally if you're viewing this on your phone.)
Week Date Lecture Topic Section Lab Homework
01/21 Tu Syllabus & 16A Review
Syllabus Week
01/23 Th TBD
01/28 Tu Computing: Transistors, Logic, and Differential Equations
Section 2A
Lab 1: Debugging
01/30 Th Computing: Delays and Inputs
Section 2B
02/04 Tu Filters: Multivariate Differential Equations
Section 3A
Lab 2: DAC / ADC
02/06 Th Filters: Coordinate Changes, Diagonalization, and the Eigenbasis
Section 3B
02/11 Tu Filters: Inductors and Complex Eigenvalues
Section 4A
Lab 3: Mic Board
02/13 Th Filters: Complex Exponential Inputs and Phasors
Section 4B
02/18 Tu Filters: Phasors and Transfer Functions
Section 5A
Lab 4: Color Organ I
02/20 Th Filters: Resonance
Section 5B
02/25 Tu Robotics: Control in discrete-time. Basic Concepts
Section 6A
Lab 5: Color Organ II
02/27 Th Robotics and Learning: System Identification
Section 6B
03/03 Tu Robotics and Learning: Outlier Rejection
Section 7A
Project Part 1: Circuits
03/05 Th TBD
Section 7B
03/10 Tu TBD
Section 8A
Project Part 2: System ID
03/12 Th Robotics: Finish outliers and orthonormalization, start stability
Section 8B
03/17 Tu Robotics: Stability
Section 9A
Project Part 3: Closed-Loop Control
03/19 Th Robotics: Stability and Feedback to Stabilize
Section 9B
03/24 Tu Robotics and Learning: Planning and minimum-energy paths
Section 10A
Project Part 4: SVD/PCA
03/26 Th Learning: The SVD
Section 10B
03/31 Tu Learning: PCA
Section 11A
Buffer Days and Veteran's Day
04/02 Th Learning: Classification
Section 11B
04/07 Tu Robotics: CCF for Stabilization
Section 12A
Buffer Days: SVD/PCA Continued
04/09 Th Robotics and Learning: Linearization for nonlinear problems
Section 12B
04/14 Tu Learning: Interpolation
Section 13A
Project Part 5: Advanced Controls
04/16 Th Learning: Interpolation
Section 13B
04/21 Tu Learning: Interpolation
Section 14A

04/23 Th TBD
Section 14B
04/28 Tu Wireless: basic modeling and OFDM
Section 15A
Project Part 6: Integration
04/30 Th Final Review
Section 15B
RRR Week
RRR Week: Finals Week
Final Examinations


Please note the colors for discussion sections:

There is pink for freshmen,
orange for Math 54,
brown for transfers,
and red for general sections.

Course Staff


Murat Arcak

Seth R. Sanders


Please note that the following course staff list has not yet been updated for the Spring 2020 semester.

Karina Chang
Admin Head

Ramsey Mardini
Admin Head

Kuan-Yun Lee
Content + Discussion

Nathan Lambert
Content + Discussion

Pavan Bhargava
Content + Discussion

Sidney Buchbinder
Content + Discussion

Hitesh Yalamanchili

Gaoyue Zhou

Nick Nolan

Simon Kuang

Maggie Payne
Lab Head

Zain Zaidi
Lab Head

Mia Mirkovic

Jove Yuan

Justin Lu

Mikaela Frichtel

Raymond Gu

Victor Lee

Meera Lester

Sumer Kohli

Neelesh Ramachandran

Steven Lu

Vin Ramamurti

Kaitlyn Chan

Arin Nair

Please add to the end of all emails


Please note that these policies are not yet fully up-to-date for the Spring 2020 semester.

Course Info

The EECS 16AB series (Designing Information Devices and Systems) is a pair of introductory-level courses introducing students to EECS. The courses have a particular emphasis on how to build and understand systems interacting with the world from an informational point of view. Mathematical modeling is an important theme throughout these courses, and students will learn many conceptual tools along the way. These concepts are rooted in specific application domains. Students should understand why they are learning something.

An important part of being a successful engineer is being able to identify the important and relevant structure in a complex problem while ignoring minor issues. EECS 16A focuses on modeling as abstraction: how can we see the relevant underlying structure in a problem? It introduces the basics of linear modeling, largely from a "static" and deterministic point of view.

EECS 16B deepens the understanding of linear modeling and introduces dynamics and control, along with additional applications. Finally, EECS 70, (which can be thought of as the third course in this sequence – except without any labs), introduces additional discrete structures for modeling problems, and brings in probability.

Grade Breakdown

Our objective is to help you become the best engineer you can be, and grades are not everything. The various components of the class: homework, labs and exams are designed explicitly with this in mind. Every challenge is a growth opportunity. You will have the opportunity to gain points in the course through completing your homework, attending labs as well as through the exams.

This course is not graded on a curve. We will set absolute thresholds for performance that will map to grade boundaries. We encourage you to discuss the course material with each other and teach each other new ideas and concepts that you learn. Teaching the material is one of the best ways to learn, so discussing course material with colleagues in the class is a win-win situation for everyone. Grades are not everything, far from it, but that said, here is the breakdown for grading for this class.

Homework 40 points
45 if no lab
Lab and Project (if you have lab) 45 points
Midterm 1 55 points
65 if no lab
Midterm 2 55 points
65 if no lab
Final 105 points
125 if no lab

Notice that you can get many points by being regular with your homework and the lab. In addition, there will be opportunities to get extra credit in the class. Our goal is to help you learn the material as best as possible!

Grading Scale

This course is not curved. We define the following grading scale (in percentages):

A+ [100+] A [93+) A- [90+)
B+ [84+) B [75+) B- [68+)
C+ [65+) C [62+) C- [58+)
D+ [57+) D [55+) D- [53+)
F [0-, 53-)

In the rare event that the instructors deem that a change needs to be made for a given exam, then you will be told where the grade boundaries are for that exam and how to adjust your score on the exam to get your points on the above scale. You will always know how you are doing in the course grade-wise.

Exam Clobbering

Will be updated at a later date (TODO).


Participation is worth a maximum of 25 points, and is measured by the quality of holistic engagement with the course: lecture, discussion, HW Party, Piazza, and any other activities that demonstrate positive engagement. More details will be given later in a Piazza post, but these are basically good engaged citizen points.

Homework Party

Homework parties are your chance to meet and interact with other students, while also having the chance to get help from GSIs and Faculty. This is your chance to have a social experience as part of the class. We expect students to treat each other with respect during homework parties as well as during all other parts of the class – including interactions on Piazza, discussion and office hours. Remember that each of you is coming into a class with different experiences and backgrounds – use this as an opportunity to learn from one another.

Homework Party will be held on Fridays from 2-5 PM at the Wozniak Lounge in Soda.

Students are expected to help each other out, and if desired, form ad-hoc "pickup" homework groups in the style of a pickup basketball game. We highly encourage students to attend homework party.

Homework Submission

Homeworks are due on Wednesday night at 11:59 PM. You need to turn in a .pdf file consisting of your written-up solutions that also includes an attached pdf "printout" of your .ipynb code on Gradescope. Any homework submissions that are turned in without the code “printout” (or screenshot) attached will receive a zero on the coded ipython notebook portions of the homework. Any problems without pages selected will receive zero credit. If you have any questions about the format of a homework submission, please go to office hours or homework party.

You will have the opportunity to resubmit your homework after homework solutions are released to get makeup credit. See below for details.

Homework Grading - Self-Grading

The point of homework in this class is for you to learn the material. To help you in doing this each student will grade their own homework. After the HW deadline, official solutions will be posted online. You will then be expected to read them and enter your own scores and comments for every part of every problem in the homework on a simple coarse scale:

Score Reason
0 Didn't attempt or very very wrong
2 Got started and made some progress, but went off in the wrong direction or with no clear direction
5 Right direction and got half-way there
8 Mostly right but a minor thing missing or wrong
10 100% correct

Note: You must justify self-grades of 2, 5, or 8 with a comment. Grades of 0 and 10 do not need to be justified. If you are really confused about how to grade a particular problem, you should post on Piazza. This is not supposed to be a stressful process.

Your self-grades will be due on the Wednesday following the homework deadline at 11:59 PM sharp. We will accept late self-grades up to a week after the original homework deadline for 65% credit on the associated homework assignment.  If you don't enter a proper grade by this deadline, you are giving yourself a zero on that assignment. Merely doing the homework is not enough, you must do the homework; turn it in on time; read the solutions; do the self-grade; and turn it in on time. Unless all of these steps are done, you will get a zero for that assignment.

We will automatically drop the lowest homework score from your final grade calculation. This drop is meant for emergencies. If you use this drop half-way into the semester, and request another, we cannot help you.

Just like we encourage you to use a study group for doing your homework, we strongly encourage you to have others help you in grading your assignments while you help grade theirs.

If you have any questions, please ask on Piazza.

Homework Resbmission

Again, the point of homework in this class is to help you learn. We understand that sometimes work from other classes, midterms or your personal life can come in the way of making a homework deadline. For this reason we will allow you to resubmit your homework for 70% credit.

Homework resubmissions must be HANDWRITTEN. Homework resubmissions will be due along with the self-grades, so they will be due by 11:59pm Wednesday night. If you choose to resubmit your homework, you must submit two sets of self-grades, one for the first submission and one for the second submission. For the second submission do self-grades as normal. We will apply the 70% correction.

You need to turn in a .pdf file consisting of your written-up solutions that also includes an attached pdf "printout" of your .ipynb code on Gradescope. Any homework submissions that are turned in without the code "printout" (or screenshot) attached will receive a zero on the coded ipython notebook portions of the homework. Any problems without pages selected will receive zero credit. If you have any questions about the format of a homework submission, please go to office hours or homework party.

What does 70% credit mean? Let us say you only were able to get half-way through a problem during the first submission. You submitted your homework on Monday, and while going through the solutions you understood how to do the whole problem. Your self-grade for your first submission would be a 5/10. However, you can resubmit the homework problem with a fully correct solution and receive 70% of the remaining points as extra points, i.e. (10-5) * 70/100 = 3.5 extra points, and so your score for the problem would go from 5 points to 8.5 points.

Homework Effort Policy

Because the point of homework in this class is to help you learn, not to punish you for making small mistakes, if your final score (after resubmission and any other corrections are applied) on any homework is above 8/10, your grade on that HW will automatically be bumped up to 100% (10/10).

Lab and Discussion Section Policies

The lab policies will be updated soon (TODO).

Exam Policies

There are two midterms and one final. The midterms will be (TODO) and (TODO). The final will be held on (TODO). Makeup exams will not be scheduled.

Please plan for exams at these times. In case of an emergency on exam day, please email the head TAs as soon as possible and provide details of the issue as well as a contact phone number. Emergency exam conflicts will be handled on a case-by-case basis. Exam conflicts originating from a lecture conflict will not be accommodated.

On exam day, you must bring your Cal student ID to your exam location. Locations and logistics will be posted on Piazza closer to the exam dates. If you do not take your exam in the correct location, a large penalty will be applied to your exam score. Additionally, regrade requests on Gradescope are typically due within a week of exams being released on Gradescope. Late regrade requests will not be considered. If a regrade request is submitted for a part of a question on the exam, the grader reserves the right to regrade the entire exam and could potentially take points off.


Any requests for exceptions should be emailed to the head TAs.

Email the exception request out as soon as possible. Exceptions will be handled on a case-by-case basis. Since there is one homework drop, missing homework is rarely excused. Examples of situations that merit an exception are medical emergencies and family emergencies. It will be easier for us to grant an exception if you have a doctor’s note or other documentation.

Course Communication

The instructors and TAs will post announcements, clarifications, hints, etc. on Piazza. Hence you must check the EECS16B Piazza page frequently throughout the term. (You should already have access to the EECS16B Fall 2019 forum. If you do not, please let us know.)

If you have a question, your best option is to post a message on Piazza. The staff (instructors and TAs) will check the forum regularly, and if you use the forum, other students will be able to help you too. When using the forum, please avoid off-topic discussions, and please do not post answers to homework questions before the homework is due. Also, always look for a convenient category to post the question to (for example, each homework will have its own category, so please post there). That will ensure you get the answer faster.

If your question is personal or not of interest to other students, you may mark your question as private on Piazza, so only the instructors will see it. If you wish to talk with one of us individually, you are welcome to come to our office hours. Please reserve email for the questions you can't get answered in office hours, in discussion sections, or through the forum.

For any exceptions that are of a personal nature, please contact the head TAs. Technical and homework questions are best resolved in homework and during office hours.


We encourage you to work on homework problems in study groups of two to four people; however, you must always write up the solutions on your own. Similarly, you may use books or online resources to help solve homework problems, but you must always credit all such sources in your write up, and you must never copy material verbatim. Using previous EECS16B homework, exam, and lab solutions is strictly prohibited, and will be considered academic dishonesty. This is not how you want to start your career as an engineer.

We expect that most students can distinguish between helping other students and cheating. Explaining the meaning of a question, discussing a way of approaching a solution, or collaboratively exploring how to solve a problem within your group is an interaction that we encourage strongly. But you should write your homework solution strictly by yourself so that your hands and eyes can help you internalize the subject matter. You should acknowledge everyone whom you have worked with, or who has given you any significant ideas about the homework. This is good scholarly conduct.

Don't Be Afraid to Ask For Help

Are you struggling? Please come talk with us! The earlier we learn about your struggles, the more likely it is that we can help you. Waiting until right before an exam or the last few weeks of the semester to let us know about your problems is not an effective strategy - the later it is, the less we will be able to help you.

Even if you are convinced that you are the only person in the class who is struggling, please overcome any feelings of embarrassment or guilt, and come ask for help as soon as you need it – we can almost guarantee you're not the only person who feels this way. Don't hesitate to ask us for help – we really do care that you thrive! You can email the head TAs, or email / talk to any TA at any time -- we’re happy to help.


The following tips are offered based on our experience.

Do the homeworks! The homeworks are explicitly designed to help you to learn the material as you go along. There is usually a strong correlation between homework scores and final grades in the class.

Keep up with lectures! Discussion sections, labs and homeworks all touch on portions of what we discuss in lecture. Students do much better if they stay on track with the course. That will also help you keep the pace with your homework and study group.

Take part in discussion sections! Discussion sections are not auxiliary lectures. They are an opportunity for interactive learning. The success of a discussion section depends largely on the willingness of students to participate actively in it. As with office hours, the better prepared you are for the discussion, the more you are likely to benefit from it.

Please come to office hours! We love to talk to you and do a deep dive to help you understand the material better.

Form study groups! As stated above, you are encouraged to form small groups (two to four people) to work together on homeworks and on understanding the class material on a regular basis. In addition to being fun, this can save you a lot of time by generating ideas quickly and preventing you from getting hung up on some point or other. Of course, it is your responsibility to ensure that you contribute actively to the group; passive listening will likely not help you much. And recall the caveat above that you must write up your solutions on your own.

We advise you strongly to spend some time on your own thinking about each problem before you meet with your study partners; this way, you will be in a position to compare ideas with your partners, and it will get you in practice for the exams. Make sure you work through all problems yourself, and that your final write-up is your own. Some groups try to split up the problems ("you do Problem 1, I'll do Problem 2, then we'll swap notes"); not only is this a punishable violation of our collaboration policies, it also ensures you will learn a lot less from this course.