EE16A | Designing Information Devices and Systems I

Fall 2018


The schedule is tentative and still subject to change.
(Please scroll horizontally if you're viewing this on your phone.)
Week Date Lecture Topic Section Lab Homework

No Lab
Homework 0
Due 08/27 Mo
(PDF) (Sols)
(Self Grade)
08/23 Th Welcome and Overview
(Slides) (Video) (Note 0) (Note 1)
08/28 Tu Gaussian Elimination and Vectors
(Video) (Lec. notes) (Resources) (Note 2)
Section 1A
(Dis) (iPython) (Ans)
Installation + Bootcamp
Homework 1
Due 08/31 Fr
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
08/30 Th Systems of Equations
(Video) (Lec. notes) (Note 3) (Note 4)
Section 1B
(Dis) (Ans)
09/04 Tu Linear Transformations
(Video) (Lec. notes) (Note 5)
Imaging 1
Homework 2
Due 09/07 Fr
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
09/06 Th Inverses
(Video) (Lec. notes) (Note 6)
Section 2B
(Dis) (iPython) (Ans)
09/11 Tu Fundamental Matrix Subspaces I
(Video) (Lec. Notes) (Note 7)
Section 3A
(Dis) (Ans)
Imaging 2
Homework 3
Due 09/14 Fr
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
09/13 Th Fundamental Matrix Subspaces II
(Video) (Lec. notes) (Note 8)
Section 3B
(Dis) (iPython) (Ans)
09/18 Tu PageRank 1
(Video) (Lec. notes) (Note 9)
Section 4A
(Dis) (Ans)
No Lab
Homework 4
Due 09/21 Fr
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
09/20 Th PageRank 2
(Video) (Lec. notes) (Note 10)
Section 4B
(Dis) (Ans)
09/25 Tu Diagonalization
(Video) (Lec. notes)
Section 5A
(Dis) (Ans)
Imaging 3
Homework 5
Due 09/28 Fr
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
09/27 Th Intro to Circuit Analysis
(Video) (Lec. notes) (Note 11)
Section 5B
(Dis) (Ans)
Midterm 10/1
10/02 Tu Introduction to Modeling with Circuit Elements
(Video) (Lec. notes) (Note 12)
Section 6A
(Dis) (Ans)
Imaging Buffer Labs
Homework 6
Due 10/05 Fr
(MT1) (Sols)
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
10/04 Th Power and Voltage/Current Measurement
(Video) (Lec. notes) (Note 13)
Section 6B
(Dis) (Ans)
10/09 Tu 2D Touchscreen
(Video) (Lec. notes) (Note 14)
Section 7A
(Dis) (Ans)
Touch 1
Homework 7
Due 10/12 Fr
(PDF) (Sols)
(Self Grade)
10/11 Th Superposition and Equivalence
(Video) (Lec. notes) (Note 15)
Section 7B
(Dis) (Ans)
10/16 Tu Introduction to Capacitive Touchscreen
(Video) (Lec. notes) (Note 16)
Section 8A
(Dis) (Ans)
Touch 2
Homework 8
Due 10/19 Fr
(PDF) (Sols)
(Self Grade)
10/18 Th Capacitance modeling and measurement
(Video) (Lec. notes) (Note 17)
Section 8B
(Dis) (Ans)
10/23 Tu Op-amps and Negative Feedback
(Video) (Lec. notes) (Note 18)
Section 9A
(Dis) (Ans)
Touch 3A
Homework 9
Due 10/26 Fr
(PDF) (Sols)
(Self Grade)
10/25 Th Op-amp Circuit Analysis
(Video) (Lec. notes) (Note 19)
Section 9B
(Dis) (Ans)
Midterm 11/2
10/30 Tu Design Procedure and Design Examples
(Video) (Lec. notes) (Note 20)
Section 10A
(Dis) (Ans)
Buffer Week
Homework 10 Optional
(PDF) (Sols)
11/01 Th Design Examples
(Video) (Lec. notes)
Section 10B
(Dis) (Ans)
11/06 Tu Locationing
(Video) (Lec. notes) (Note 21)
Section 11A
(Dis) (Ans)
Touch 3B
Homework 11
Due 11/09 Fr
(MT2) (Sols)
(PDF) (Sols)
(Self Grade)
11/08 Th Trilateration
(Video) (Lec. notes) (Note 22)
Section 11B
(Dis) (Ans)
11/13 Tu Least Squares
(Video) (Lec. notes) (Note 23)
Homework 12
Due 11/19 Mo
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
11/15 Th Least Squares Cont.
(Video) (Lec. notes)
Section 12B
(Dis) (iPython) (Ans)
11/20 Tu OMP
(Note 24)
No Lab
Homework 13
Due 11/30 Fr
(PDF) (iPy)
(Sols) (iPy Sols)
(Self Grade)
11/22 Th Thanksgiving
11/27 Tu OMP
(Video) (Slides)
Section 13A
(Dis) (Ans)
11/29 Th OMP Continued
(Video) (Slides) (OMP Demo)
Section 14A
(Dis) (Ans)
12/04 Tu Final Review
Section 14B
(Dis) (Ans)
Buffer Week
12/06 Th Final Review
Final Exam
12/11 Tu Final Exam 3–6pm


Discussion Layout

Color Recommended Students
White open to anyone
Orange freshmen
Green transfer students
Blue took Math 54 / background in linear algebra

Students are welcome to go to any discussion section they choose. However, certain sections will be designated for certain groups of students. Material in those sections will be taught with the specific audience of students in mind.

Freshmen are encouraged to go to the sections colored in Orange, transfer students are encouraged to go to the sections colored Green, and students who have a background in linear algebra/have taken Math 54 are encouraged to go to the Blue sections. The white sections are open to anyone, and once again, all students are welcome in any of the sections – choose the section that suits you the best.


Piazza (Ask Questions Here)

Homework Practice Problems

Recommended Texts

Circuit Cookbooks

Extra Resources

Setting up How-To's

Course Staff


Gireeja Ranade


Rohan Lageweg
Head TA

Grace Zhang
Head TA, Lab

Seiya Ono
Head Lab, Lab

Sam Weismann
HW Management, Dis

Edward Doyle
(it's a lollipop)
Software, Dis

Elena Herbold
Piazza, Dis

Aviral Pandey
Content, Dis

Grace Kuo

Laura Brink
Content, Dis

Lydia Lee
Content, Dis

Michael Kellman
Content, Dis

Urmita Sikder
Content, Dis

Vijay Govindarajan
Content, Dis

Yafei Li

Alice Ye

Chris Mitchell

Dana Lansigan

Hitesh Yalamanchili

Rishi Veerapaneni

Sarika Madhvapathy

Terry Chern

Varsha Ramakrishnan

Nick Werblun
Dis, Lab

Alan Zhang

Andy Michaels

Fei Ding

Jack Zhang

Jodi Loo

Leyla Kabuli

Linda Du

Ryan Tsang

Please add to the end of all emails


Course Info

The EECS 16 series (Designing Information Devices and Systems) is a pair of freshman-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.

In EECS 16A in particular, we will use the application domains of imaging and tomography, smartphones and touchscreens, and GPS and localization to motivate and inspire. Along the way, we will learn the basics of linear algebra and, more importantly, the linear-algebraic way of looking at the world. The emphasis will be on modeling and using linear structures to solve problems; the class is not just focused on how to do computations. We will learn about linear circuits, not merely as a powerful and creative way to help connect the physical world to what we can process computationally, but also as an exemplar of linearity and as a vehicle for learning how to do design. Circuits also provide a concrete setting in which to learn the key concept of "equivalence" – an important aspect of abstraction. Our hope is that the concepts you learn in EECS 16A will help you as you tackle more advanced courses and will help form a solid conceptual framework that will help you learn throughout your career.

Grade Breakdown

Our objective is to help you become the best engineer you can be. 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 32 points
Labs 32 points
Midterm 1 34 points
Midterm 2 34 points
Final 68 points

Notice that you can get many points by being regular with your homework and the labs. In addition there will be opportunities to get extra credit in the class – through creating content as well as by being a good citizen. Our goal is to help you learn the material as best as possible!

Good citizen credit

We would like to encourage students in the class to interact with each other – and really want to emphasize that there is a great value in teaching course concepts to your peers. With this in mind, we will let you award each other virtual “tokens” for being helpful. Every student in the class will get two tokens per week that they can award to another student for being a “good citizen”. The definition of being a good citizen is entirely up to you – this could be providing an explanation of a concept, it could be help with a homework problem, it could be a tip in lab, it could be a useful post on Piazza. These tokens will be awarded using a webform; details will be posted on Piazza.

A student can award a token to the same person at most twice during the semester, but in any given week the two points must go to two different people. There is no limit on the number of points that any student can receive from their peers, so someone who is very helpful in lab or in homework party might receive tokens from 2 or 5 or 10 or any number of people.

These tokens will count as extra credit. Each token (up to 15 tokens) is worth 1/3 of a point. All students who receive 15 tokens throughout the semester will receive 5 points. Anyone who receives more than 45 tokens throughout the semester can receive 6 points. The objective of this is to reward people who go over and above in helping their colleagues. Please be generous and sincere in handing out tokens. The deadline to award tokens for each week is the homework deadline, Friday midnight.

Content-creation extra credit

We will also award extra-credit points for students who create content and learning tools that benefit the entire class (e.g. a video demo of your lab, an illustrative pictorial explanation of a concept, a nice iPython demo, other creative content that engages with the course content). These can be posted to Piazza under the “student_content” folder and will be awarded extra credit at the discretion of a TA. The TA must endorse the content as high quality. If you have an idea of something you want to do and are wondering if it will count as extra credit please contact

Sustained Effort and Exam Clobber Policy

This course spans a fairly broad set of ideas and concepts within a short period of time, and hence sustained and consistent effort and investment are critical to your success in this class. Similarly, by far the most common operating mode we have observed in previous students who struggled and/or failed this class was attempting to do the bare minimum in general and then catch up/cram right before the exams.

In order to formally encourage all of you to maintain the sustained effort that we have observed to be critical to success, we will be adopting a new policy regarding exam clobbering, participation, and effort. Specifically, for students who (1) attend at least 75% of the discussions (not including discussions in the first week of class) and (2) perform better on the corresponding part of the final (linear algebra or circuits) than your lowest midterm, we will provide the opportunity to clobber a midterm.

If you qualify for the clobber (i.e. (1) and (2)) you may replace your lowest midterm score with the corresponding part of the final as a weighted average of your score on that midterm and the corresponding part of the final. Please note that even though lecture attendance is not included (for logistical reasons) in the two criteria for clobbering eligibility, we do strongly encourage you to attend lecture in person.

Homework Party

Homework parties are your chance to meet and interact with other students, while also having the chance to get help from GSIs, Tutors and Faculty. This is your chance to have a social experience as part of the class. You can also discuss your favorite parts of the class or other classes or theorems. One of Prof. Ranade’s favorite theorem’s is Ceva’s theorem. 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.

Wednesdays 9-11AM and Thursdays 2-4PM, HW Party will be held in the Wozniak Lounge in Soda. Attending homework party highly encouraged.

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 typically due on Friday night at 11:59 PM. You need to turn in both your code and written solutions in the form of a .ipynb file and a .pdf file consisting of your written-up solutions that also includes an attached pdf "printout" of your code. Any homework submissions that are turned in without both .ipynb file and .pdf of the solutions along with the code “printout” (or screenshot) attached will receive a zero on the coded ipython notebook portions of the homework. 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 in addition to being graded by 16A readers. 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:

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 every self-grade score with a comment. 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 Tuesday following the homework deadline at 11:59 PM sharp. We will accept late self-grades up to a week after the original self-grade deadline for half 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 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.

Course readers are going to be grading and sending you occasional comments. Because we have reader grades, we will catch any attempts at trying to inflate your own scores. This will be considered cheating and is definitely not worth the risk. Your own scores will be used in computing your final grade for the course, adjusted by taking into account reader scores so that everyone is fairly graded effectively on the same scale. For example, if we notice that you tend to give yourself 5s on questions where readers looking at your homeworks tend to give you 8s, we will apply an upward correction to adjust.

Reader grades will be released on Gradescope about one week after the homework deadline. Readers grade questions either on a “coarse” or “fine” scale for each homework part. Coarsely graded question parts are worth a single point and are based on effort. Finely graded question parts are worth a total of 10 points and are graded using the same self-grading rubric above. Homework regrade requests are typically due on Gradescope within 72 hours of reader grades being released. If a regrade request is submitted for a part of a question on the homework, the grader reserves the right to regrade the entire homework and could potentially take points off.

Your final homework score will be kept internal to the staff.

If you have any questions, please ask on Piazza.

Homework Resubmission

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 60% of the missing credit.

Homework resubmissions will be due along with the self-grades, so they will be due by 11:59pm Tuesday 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 60% correction.

What does 60% of the missing 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 Friday, and while going through the solutions you figured out how to do the whole problem. Your self-grade for your first submission would be a 5/10. However, you can re submit the homework problem with a fully correct solution and receive 60% of the remaining points as extra points, i.e. (10-5) * 60/100 = 3 extra points, and so your score for the problem would go from 5 points to 8 points. You would submit the second self-grade as normal, giving yourself 10/10 for correctly working through the problem.

Lab and Discussion Section Policies

Labs for this class are not open section, you must go to your assigned lab section. If you finish the lab early, we encourage you to help other groups debug their lab. This will help you learn the material better and contribute towards a better learning experience for everyone.

You should aim to get checked-off by the end of the lab. If you don’t, you have until the end of next lab. While labs are not meant to be burdensome, they are an essential part of the course. We have the following strict grading policy for labs: If you complete all the labs, you will receive full lab credit. If you fail to complete one lab, you will receive 30/32 lab credit. If you miss two or three labs without prior excuse, you will receive half credit. If you miss four or more labs without prior excuse, you will get an F in the class.

Number of Missed Labs What Happens?
0 You get full lab credit - 32/32
1 You get almost full lab credit - 30/32
2 or 3 You get half lab credit - 16/32
4 or more You Fail the class - final letter grade: F

Some lab sections are “buffer labs.” “Buffer labs” are a several day period in which no new labs begin. During buffer lab sections, you may get checked off for only one lab that occurred during that module. No other labs may be checked off. You may attend any buffer lab held during that period. More details on buffer weeks will be announced on Piazza for every module.

Wires on lab breadboards must be planar. Lab staff will ask students to redo their circuits before debugging them if the wires are non-planar. The definition of planar wires on a breadboard is shown below:

Planar Non-planar

Notice the planar breadboard also has lots of yellow wires. Yellow also happens to be Prof. Ranade’s favorite color.

You may go to any discussion section. Certain sections will prioritize certain groups of students (e.g. freshmen, junior transfers). All other students are allowed to remain in the section at the discretion of the discussion TA in charge of that section. We encourage you to go to the same discussion sections every week so that the TAs can get to know you personally.

Exam Policies

The 16A Fall 2018 semester will have two midterms and one final. The midterm times will be October 1st, 2018 from 8pm to 10pm and November 2nd, 2018 from 8pm to 10pm. The final will be held during the designated final exam slot released by campus. Makeup exams will not be scheduled.

Please plan for exams at these times and email the Head GSI at during the first two weeks of the semester per university policy if you know about any exam conflicts. If an emergency arises that conflicts with the exam times, email the Head GSI as soon as possible. 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 GSI. 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. Lab and exam exceptions will be given more consideration. Examples of situations that merit an exam or lab exception are medical emergencies and family emergencies. It will be easier for us to grant an exception if you have a doctor’s note, flight tickets or other documentation.

Course Communication

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

If you have a question, your best option is to post a message there. The staff will check the forum regularly, and 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 also 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.

It can be challenging for the instructors to gauge how smoothly the class is going. We always welcome any feedback on what we could be doing better. If you would like to send anonymous comments or criticisms, feel free to use this anonymous form.


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 writeup, and you may never copy material verbatim. Using previous EE16A 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!


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.

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. Also recall the caveat above, that you must write up your solutions on your own. We strongly advise you 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.