EE 16A | Designing Information Devices and Systems I

Spring 2017


Wk Date Lecture Topic Section Lab Homework
0 1/17 Tu Welcome and overview (Slides) (Video) Section 0A:
Lab Overview and Anaconda Installation
Anaconda Install PDF
Homework 0
1/19 Th Gaussian Elimination and Vectors (Video) (Note 1) (Note 2) Section 0B:
1 01/24 Tu Matrices and Dynamic Systems (Video) (Note 3) Section 1A:
Python Bootcamp

Solutions (Released 1/31)

Homework 1
01/26 Th Linear Transformations (Video) (Note 4) (Note 5) Section 1B:
2 01/31 Tu Matrix Inverses (Video) (Note 6) (Note 7) Section 2A:
Imaging Lab 1: Building a Light Sensor

Homework 2
02/02 Th Vector Spaces and Inner Product (Video) (Note 8) Section 2B:
3 02/07 Tu Inner Products and Estimation (Video) (Note 9) Section 3A:
Imaging Lab 2: Single Pixel Scanning

Homework 3
02/09 Th Four Fundamental Matrix Subspaces (Video) Section 3B:
4 02/14 Tu LU Decomposition and Determinants (Video) Section 4A:
Imaging Lab 3: Multi-Pixel Scanning

Homework 4
02/16 Th Determinants and Eigenvalues/Eigenvectors (Video) (Note 10) Section 4B:
Midterm 1 on Fri 2/24 (8pm - 10pm)
02/21 Tu Diagonalization and Network flows (Video) Section 5A:
No discussion
Buffer Week Homework 5
02/23 Th CIrcuits Intro - KVL / KCL and Touch-Screen (Video) (Note 11) Section 5B:
6 02/28 Tu Series and Parallel Equivalence (Video) (Note 12) Section 6A:
Touchscreen Lab 1: Soldering and LED Fader

Homework 6
03/02 Th Thevenin and Norton Equivalences (Video) Section 6B:
7 03/07 Tu Superposition and Circuit Examples (Video) Section 7A:
Touchscreen Lab 2: Resistive Touchscreen

Homework 7
03/09 Th Capacitors (Video) (Note 13) Section 7B:
8 03/14 Tu Capacitive Touchscreen Design and Charge-Sharing (Video) (Note 14) Section 8A:
Buffer Week Homework 8
03/16 Th Operational Amplifiers and DACs (Video) (Note 15) Section 8B:
No worksheet
9 Midterm on Mon 3/20 (8pm - 10pm) 03/21 Tu Golden Rules of Op-Amps and Negative Feedback (Video) Section 9A:
Touchscreen Lab 3: Capacitive Touchpad

Homework 9
03/23 Th Op-Amp Circuit Design Examples (Video) Section 9B:
03/27 - 03/31 Spring Break No Dis No lab No Homework
10 04/04 Tu Op-amp design examples (VCCS) and Timer Design (Video) Section 10A:
Touchscreen Lab 4: Operational Amplifiers

Homework 10
04/06 Th Timer Design Cont and Charge-sharing with op-amps (Video) Section 10B:
11 04/11 Tu Positioning Intro - Correlation and Trilateration (Video) (Note 16) Section 11A:
APS Lab 1: Cross-Correlation

Homework 11
04/13 Th Trilateration example (Video) Section 11B:
12 04/18 Tu Least Squares (Video) (Note 17) Section 12A:
APS Lab 2: Computing Distances

Homework 12
04/20 Th Least Squares Cont. (Video) Section 12B:
13 04/25 Tu Gram Schmidt (Video) Section 13A:
APS Lab 3: Least Squares

Homework 13
04/27 Th QR, Change of Basis, Wrap Up (Video) Section 13B:
No Discussion

Weekly Schedule


Piazza (Ask Questions Here)

Recommended Text

Additional Reader Text


Extra Resources

Setting up How-To's

Course Staff


Babak Ayazifar


Harrison Rosenberg
Head TA
Olivia Hsu
Head TA
Alex Krentsel
Discussion TA
Amin Torabi
Discussion TA
Andy Wang
Lab TA
Angela Ko
Lab TA
Arda Sahiner
Disc/Homework TA
Ashley Hui
Discussion TA
Ashvin Nair
Discussion/Content TA
Aviral Pandey
Content/Discussion TA
Carson Lian
Content TA
CJ Geering
Lab TA
Caleb Wyllie
Web TA
Hannah Li
Discussion TA
Harrison Zheng
Lab TA
Janny Zhang
Discussion TA
Jaymo Kang
Lab TA
Joy Gu
Lab TA
Kyungna Kim
Homework TA
Lydia Lee
Lab TA
Mudit Gupta
Homework TA
Nikhil Mishra
Discussion TA
Phillip Sandborn
Lab/Content TA
Primus Lam
Web/Discussion TA
Prithvi Akella
Discussion TA
Rachel Zoll
Discussion TA
Seiya Ono
Lab TA
Simin Liu
Discussion TA
Yasser Khan
Lab/Content TA

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, with a particular emphasis on how we deal with systems interacting with the world from an information point of view. Mathematical modeling is an important theme throughout these courses, and students will learn many conceptual tools along the way. Throughout this series, generally applicable concepts and techniques are motivated by, and rooted in, specific exemplary application domains. Students should understand why they are learning something.

EECS 16A focuses on modeling as abstraction -- a way to see the important underlying structure in a problem -- and 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, 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. We will emphasize modeling and using linear structures to solve problems---not on how to do computations per se. 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

  • Homework: 15%
  • Labs: 15%
  • Midterm 1: 17%
  • Midterm 2: 17%
  • Final: 33%
  • APE Points: 3%

Grading Scale

This course is not curved. We define the following grading scale (in percentages):
A+ [97,100+] A [90, 97) A- [85, 90)
B+ [80, 85) B [75, 80) B- [70, 75)
C+ [65, 70) C [60, 65) C- [50, 60)
F: [0-,50)
We reserve the right to adjust our grading scale. The grades of D+, D, and D- are almost never assigned.

Homework Party

Every week there will be a "homework party." This is completely optional. GSIs will be present in shifts as will some readers. 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 Grading

The primary way that the homework will be graded is by yourselves. Homework is always due Mondays at 23:59:00. You need to turn in both your code in the form of an ipynb file and a .pdf file consisting of your written-up solutions that also includes a "printout" of your code. Any homework submissions that are turned in without both .ipynb file and .pdf of the code “printout” (or screenshot) attached will receive a zero on the coded ipython notebook parts of the homework. Submissions after 23:59:00 will not be accepted.

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 partial credit with a comment. If you are really confused about how to grade a particular problem, you may use a limited number of "I don't know" skips on every assignment. We always give you at least two such skips, and more if the HW has the number of parts to warrant it. This is not supposed to be a stressful process. The skips are there to let you not obsess about how to grade any one part.

Your self-grades will be due on Thursday at 23:59:00 after the homework deadline. Late submissions will not be accepted. If you don't enter a proper grade by the self-grading 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 two lowest homework scores from your final grade calculation. These drops are meant for emergencies. If you use all your drops 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. This will also help you avoid self-favoritism.

The 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. 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. If you have any questions, please ask on Piazza.

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 APE credit.

You should aim to get checked-off by the end of the lab. If you don’t make it, you have until the next lab to get checked-off. If you still need to do some work on your lab, you can come to another lab section and check with the lab TA to see if there is space for you to complete the work. 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 full lab credit. If you, without excuse, fail to complete two labs, you will receive 60% lab credit. If you, without excuse, fail to complete three or more labs, you will fail the course.

Some lab weeks are “buffer weeks”. “Buffer weeks”, are 3 to 5 day periods in which no new labs begin. During buffer week, you may get checked off for only one lab that occurred between the previous buffer week (or start of school) and the current buffer week. No other labs may be checked off.

Seating priority for any discussion section goes to those officially enrolled. All other students are allowed to remain in the section at the discretion of the TA in charge of that section. We encourage you to go to the same discussion section every week so that the TAs can get to know you personally.

Lab TAs and lab assistants reserve the right to not help students if the wires on their breadboard are non-planar. Lab staff will ask the students to redo their circuits before debugging. The definition of planar wires on a breadboard will be explained in lab section.

Exam Policies

16A Spring 2017 semester will have two midterms and one final. The exam times will be February 24th, 2017 from 20:00 to 22:00; March 20th, 2017 from 20:00 to 22:00; and May 10, 2017 from 11:30 to 14:30. Makeup exams will not be scheduled. Please plan for exams at these times and let the Head TA know about any exam conflicts during the first two weeks of the semester per university policy. If an emergency arises that conflicts with the exam times, email the Head TA 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 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.

As of now there is no exam clobber policy.


Any excuse should be emailed to the Head TA. Email the excuse request out as soon as possible. Excuses will be handled on a case by case basis. Since there are two homework drops, missing homework is rarely excused. Lab and exam excuses are given more consideration. Examples of situations that merit an exam or lab excuse are medical emergencies and family emergencies.

Altruism, Effort, and Participation (APE)

This part of the class credit covers the altruism, effort, and participation as outlined below. Altruism includes helping others in homework parties and guerilla sessions, debugging in labs, and answering other students’ questions on Piazza. Participation includes an engaged and active attitude in discussion sessions and labs, and asking substantive, insightful questions on Piazza. The effort includes attending faculty and TA office hours, homework parties, and guerilla sessions.

Course Communication

The instructors and TAs will post announcements, clarifications, hints, etc. on Piazza. Hence you must check the EE16A Piazza page frequently throughout the term. (You should already have access to the EE16A Spring 2017 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.

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, please feel free to use an anonymous remailer like this one to avoid revealing your identity.


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 must never copy material verbatim.

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 likelier it is that we can help you. Waiting until the last few weeks of the semester to let us know about your problems is not an effective strategy, as the later we are in the semester, the more limited the options are that we can offer you.

Even if you are convinced that you are the only person in the class who doesn't understand the material, and that it is entirely your fault for having fallen behind, please overcome any feelings of guilt, and come forth to 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. We have noticed that students do much better in the course if they stay on track with lectures. 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.

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.