EE 16A | Designing Information Devices and Systems I

Fall 2016


Wk Date Lecture Topic Section Lab Homework
0 8/25 Th Welcome and overview (Slides)(Video) Section 0B:
Inst Account and HW submission
Homework 0
1 08/30 Tu Intro to Imaging/Tomography (Video) Section 1A:
Lab Overview and Anaconda Installation
Anaconda Install PDF
Homework 1
09/01 Th Vectors and Systems of Equations (Video) (Note 1) (Note 2) (Note 3) Section 1B:
2 09/06 Tu Linear Dependence (Video) (Note 4) (Note 5) Section 2A:
N/A Labor Day
Imaging Lab 1: Building a Light Sensor

Homework 2
09/08 Th Rank, Span, Inverses (Video) (Note 6) Section 2B:
3 09/13 Tu Vector Spaces, Basis (Video) (Note 7) Section 3A:
Imaging Lab 2: Single Pixel Scanning


Homework 3
09/15 Th Nullspaces (Video) (Note 8) (Review Video) Section 3B:

Midterm on Monday 9/19 (8-10PM)
09/20 Tu Graphs, Circuits, and Kirchhoff's Law, Part 1 (Video) Section 4A:
Buffer Week Homework 4
09/22 Th Graphs, Circuits, and Kirchhoff's Law, Part 2 (Video) (Note 9) Section 4B:
5 09/27 Tu Design and Touchscreen (Video) Section 5A:
Imaging Lab 3: Multi-Pixel Scanning

Homework 5
09/29 Th Touchscreen, continued (Video) Section 5B:
6 10/04 Tu Equivalence, superposition, power, part 1 (Video) (Note 10) Section 6A:
Touchscreen 1: Hardware Fundamentals

Homework 6
10/06 Th Equivalence, superposition, power, part 2 (Video) Section 6B:
7 10/11 Tu Capacitors (Video) (Note 11) Section 7A:
Touchscreen 2: Resistive Touchscreen

Homework 7
10/13 Th Capacitors 2 (Video) (Note 12) Section 7B:
10/18 Tu Op-Amps (Video) (Note 13) Section 8A:
Touchscreen 3: Capacitive Touchpad

Homework 8
10/20 Th Op-Amps 2 (Video) Section 8B:
9 10/25 Tu Op-Amps 3 (Video) Section 9A:
Touchscreen 4: Buffer Amplifier

Homework 9
10/27 Th Circuit Design examples (Video) Section 9B:

Midterm on Thursday 11/3 (8-10PM)
11/01 Tu Inner Products and Orthogonality (Video) (Note 14) Section 10A:
Buffer week Homework 10
11/03 Th Correlations (Video) (Note 15) Section 10B:
11 11/08 Tu Trilateration (Video) Section 11A:
Locationing 1: Cross Correlation

Homework 11
11/10 Th Least Squares (Video) (Note 16) Section 11B:
12 11/15 Tu QR Factorization (Video) (Note 17) Section 12A:
Locationing 2: Computing Distances

Homework 12
11/17 Th QR Factorization 2 (Video) Section 12B:
13 11/22 Tu PageRank (Video) (Note 18) No dis No Lab Homework 13
04/26 Th Thanksgiving - No Class No dis
14 11/29 Tu PageRank (cont) (Video) Section 14A:
Locationing 3: Determining Location with Least Squares

Homework 14
12/01 Th Diagonalization (Video) (Note 19) (Review Video 1 [Last three minutes]) (Review Video 2) Section 14B:

Weekly Schedule

Course Staff


Babak Ayazifar


Harrison Rosenberg
Head TA
Alex Krentsel
Discussion TA
Amin Torabi
Discussion TA
Andrew Liu
Discussion TA
Andrew Blatner
Lab TA
Andy Wang
Lab TA
Andy Zhang
Discussion TA
Angela Ko
Lab TA
Arda Sahiner
Homework TA
Ashvin Nair
Discussion & Content TA
Aviral Pandey
Content TA
Beliz Gunel
Discussion TA
Brijen Thananjeyan
Discussion & Content TA
Bryan Wieger
Discussion TA
CJ Geering
Lab TA
Caleb Wyllie
Web TA
Clark Fan
Homework TA
Elena Herbold
Homework TA
Hongling Lu
Lab TA
Jacky Liang
Discussion TA
Jessie Yang
Admin TA
Joy Gu
Lab TA
Kyungna Kim
Homework TA
Lydia Lee
Lab TA
Mostafa Rohaninejad
Discussion TA
Nikhil Mishra
Lab TA
Olivia Hsu
Admin TA
Primus Lam
Web TA
Prithvi Akella
Discussion TA
Quincy Huynh
Lab TA

Please add to the end of all emails


Piazza (Ask Questions Here)

Recommended Text

Additional Reader Text

Setting up How-To's


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%
  • Midterms: 34%
  • Final: 33%
  • Effort, Participation, and Altruism: 3%

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.

Homework Grading

The primary way that the homework will be graded is by yourselves. Homework is always due Tuesdays at 1PM . 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.

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 Friday at 1PM after the homework deadline. 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 get a zero for that assignment.

We will drop two homeworks with lowest score from your final grade calculation.

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.

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 unless you have extenuating circumstances. If these circumstances do occur, show up to the lab section you would like to go to. It is at the discretion of the lab TA whether or not to let you into their section if you are not officially enrolled. 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 EPA 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. We will drop one lab with lowest score from final grade calculations.

For discussion sections, you may go to any discussion section as long as there is room. It is at the discretion of the discussion TA whether or not to let you into the class. We encourage you to go to the same discussion section every week so that the TAs can get to know you personally.

Students officially enrolled in a specific lab or discussion sections have priority over waitlisted students and students enrolled in a different section section.

Exam Policies

16A Fall 2016 semester will have a total of three exams, two midterms and one final. The midterm times will be September 19th, 2016 at 8-10pm and November 3rd, 2016 at 8-10pm. The final exam time for this class should follow the official university final exam schedule and should be indicated on CalCentral. 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.

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. Additionally, regrade requests on Gradescope are due within a week of exams being released on Gradescope.

Effort, Participation, and Altruism (EPA)

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

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 Fall 2016 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.