EECS16A, Designing Information Devices and Systems I

Spring 2024

Scheduling Updates

01/17/24: We are currently still updating the website for Spring 2024 and the information reflected may be out of date.

copied password to clipboard!
changed site font!


Lecture videos can be found in the bcourses media gallery

(Please scroll horizontally if you're viewing this on your phone.)



Homework party is held in the Wozniak Lounge and in-person office hours are held in Cory 144MA. The queue for office hours is at

Discussion Schedule

Some discussion sections are tailored to certain groups. Feel free to attend these even if you do not identify with the group!

  • Regular (light blue)
  • CS Scholars (green)


Ed (Ask Questions Here)

Technology Needs (STEP)

Student Technology Equity Program (STEP). STEP provides laptops and other technologies for free and is for undergraduate, graduate, and professional students. It requires just a simple online application form. For details, see here.

Recommended Texts

Setting up How-To's


Past Exams

Past exams vary in scope from semester to semester, and may include topics that are not in scope for the current semester or module. Unavailable exams are indicated by N/A. In-scope topics for the current semester will be posted on Ed about a week before the corresponding exam.

Semester Midterm 1 Midterm 2 Final
fa23 pdf, sol pdf, sol N/A
sp23 pdf, sol pdf, sol N/A
fa22 pdf, sol pdf, sol pdf, sol
sp22 pdf, sol pdf, sol pdf, sol
fa21 pdf, sol pdf, sol pdf, sol
sp21 pdf, sol pdf, sol pdf, sol
fa20 pdf, sol pdf, sol pdf, sol
su20 pdf, sol pdf, sol pdf, sol
sp20 pdf, sol pdf, sol pdf, sol
fa19 pdf, sol pdf, sol pdf, sol
sp19 pdf, sol pdf, sol pdf, sol
fa18 pdf, sol pdf, sol pdf, sol
sp18 pdf, sol pdf, sol pdf, sol
fa17 pdf, sol pdf, sol pdf, sol
su17 pdf, sol pdf, sol N/A
sp17 pdf, sol pdf, sol N/A
fa16 pdf, sol pdf, sol pdf, sol
sp16 pdf, sol pdf, sol pdf, sol
fa15 pdf, sol pdf, sol pdf, sol
sp15 pdf, sol pdf, sol pdf, sol

Practice Sets: Links to Notes and Solutions

It is very strongly recommend that you try the problems themselves here before looking at the solutions below. The links for solutions are not perfect, so you may need to scroll to the bottom of the linked page to find them. Give feedback here.

Course Staff

Please add to the end of all emails!

We also have 2 special emails for various purposes. Where applicable, please use these emails so that all relevant course staff can view the message. Note that we prefer for technical or content questions to go on Ed!

  • eecs16a.lab@: for any lab-related questions or concerns
  • eecs16a@: for anything else (including exam-related/administrative questions or concerns)


Babak Ayazifar

Course Staff

Hi, I’m Sabriya! I came to Berkeley from Purdue University, in my home state of Indiana (so you know I’m a fan of corny jokes!). I’m now a 3rd-year PhD student in Computer Science, and I work with Professor Niloufar Salehi, doing research at the intersection of Artificial Intelligence and Human-Computer Interaction. I’m passionate about improving AI systems to more effectively support underserved populations in socially impactful sectors like education and healthcare. I study how algorithmic systems impact these communities, and I work on building and testing AI tools to mitigate disparities. Outside of research, I love to read (usually with boba in hand), volunteer in the community, and hang out with my cat. This is my second time as a GSI, and I look forward to a great semester!

Sabriya Alam
Head TA
eecs16a@, sabriya.alam@

Hi, it’s Vivian! I’m a junior majoring in EECS and Business, originally from San Diego, CA. I'm currently exploring applications of AI/ML and tech in business. In my free time, I enjoy traveling, reading, eating (very) spicy food, and drinking matcha. Through linear algebra and circuit design, 16A showed me the power of mathematical tools and models in real world applications, and it's my mission to make 16A as rewarding and enriching for you as it was for me!

Vivian Wu
Head TA
eecs16a@, vivianwuc25@

Hi everyone! I’m an EECS major, and this will be my fourth semester on 16A course staff. I really enjoyed lab when I took this class, and I hope to provide a similar experience for you all. Outside of the classroom, I enjoy watching TV shows, drinking boba, and have recently been delving back into the fiber arts. I hope you’ll enjoy your time in this course, and feel free to reach out to me!

Carol Li
Head Lab

Hi! My name is Thomas and I am a senior studying Computer Science and Applied Math from Portland, Oregon. In my free time I enjoy board games, watching an absurd amount of Youtube, and reading books. I love listening to indie, alternative and folk music but I'm always willing to try out new music. Feel free to talk to me about anything!

Thomas Chen

Hi! I'm a junior majoring in EECS. In my free time, I like to speedcube and play tennis. I really enjoyed 16A and hope you will too. Excited for a great semester!

Sanjay Chintapally

Hello! I'm a 2nd year PhD student in Education. My research interests focus on how to ease the transition for first year students in EECS. I love to bake sourdough, run along the water, and going to Berkeley Bowl. Very excited to meet and learn with you all this semester!

Manooshree Patel

Hi! My name is Divya and I'm a 2nd year EECS major from San Diego. In my free time, I like to run, play field hockey, and watch bad horror movies with my friends. 16A was one of my favorite classes last year, and I hope you'll enjoy it as well. Please don't hesitate to reach out if you have any questions!

Divya Ramesh

Hi! I'm a junior majoring in EECS. I loved taking 16A as a student and I hope you will too! In my free time, you can find me hiking, trying out new coffee shops, or listening to music. Feel free to reach out to me about anything :)

Amy Song

Hi! I am Tvisha, a sophomore studying EECS. I am interested in machine learning and cloud computing for scaling applications. I love playing tennis, running, and going on hikes with my dog: ) I am very excited to help with EECS 16A this semester!

Tvisha Londhe

Hi! I’m Nikhil and I’m a third year EECS major. Coincidentally this is also my third semester on course staff! My technical interests are low-level programming, computer architecture, and HV PCB design. In my freetime I read books, play board/card/video games, look at airplanes, and bicycle. I’m so excited to delve back into circuits and meet everyone in lab! Feel free to reach out about the course, about lab, or about anything else!

Nikhil Ograin
Lab Staff

Hi! I'm Aditya, and I'm a third year EECS major. My technical interests include chip design, robotics, and signal processing. Outside of school, I enjoy hiking, going to the gym, cooking, and hanging out with friends. See you at lab!

Aditya Madaraju
Lab Staff

Hello! I'm a junior studying computer science and my interests are in embedded systems and virtualization. During my free time I enjoy swimming, playing underwater hockey, and going on trips. Hope you enjoy this class!

Justin Lee
Lab Staff

4th year EECS major here! Currently speedrunning through Berkeley 😭

Min Son
Lab Staff

Hey, everyone! I'm a third year studying Bioengineering and EECS with special interests in engineering phages, computational biology, and learning what the intersection of my majors can do. When I'm not explaining why the East Coast is superior, I enjoy reading memoirs, drinking non-coffee drinks at cafes, and crocheting.

Katie Sie
Lab Staff

Hi Everyone! I am Alex, a second year from Sunnyvale majoring in IEOR and EECS. This is my second semester on 16a course staff, and I am excited to be teaching again. My technical interests lie in machine learning, algorithms, and circuits. In my free time, I like to play the piano, video games (league, val, gacha games), swim, and watch romcoms. Looking forward to meeting everyone!

Alex Um
Lab Staff

Hi y'all! My name is Erik, and I'm a sophomore majoring in EECS. I'm passionate about building things with my hands, with my main technical interests being in robotics, automation, and embedded systems. I also like to play ultimate frisbee, binge watch TV shows/movies on 2x speed, and collect figurines. I love talking to people so if you ever see me around campus, feel free to say hi!

Erik Ma
Lab Staff

Hey everyone, I’m Ronit! I’m a second year EECS major from the Chicago suburbs, and this is my second year on course staff. My technical interests lie in computer architecture and chip design. I also love taekwondo and tennis. My favorite part of 16A are the hands-on applications you get to see in the labs!

Ronit Nagarapu
Lab Staff

I am a junior studying computer science and applied math. I like to watch youtube and play games!

Henric Zhang
Lab Staff

Hi there! I am a 3rd-year student majoring in Computer Science, minoring in Bioengineering, and doing brain research. When I'm not coding, you will find me playing FIFA, building cities, or feeding my cat.

Haojun Zhuang
Lab Staff

Hey everyone! I'm Andrew and I'm a 2nd year majoring in EECS & IEOR from Cupertino, CA. My technical interests include robotics, analytics, and a little bit of AI. I enjoy playing poker and watching football during my time away from academics. 16A labs were my favorite part of the course and I'm excited to contribute to your journey as well!

Andrew Song
Lab Staff

Hey everyone! I'm Eric, a 3rd year CS student born and raised in San Diego. I like to play video games, but especially fighting games and Tetris. If you like either of those things, I'd love to talk with you about it! This is my first semester as a TA, and I hope I can show you all why lab is the absolute best part of 16A :)

Eric Garcia
Lab Staff

Hello! My name is Jack, and I'm a rising junior majoring in CS. I'm passionate about building things, with my current technical interests being in signals, communication systems, embedded systems, and applications in art and music. I see computers as being the 'glue' that holds together the components of a technological solution to an interesting problem, which is why I chose to study them. I also like to play guitar, make things, and explore the outdoors in my free time. I often tell my students not to 'suffer in silence'; please don't hesitate to reach out to me in and outside of lab!

Jack Kang
Lab Staff

Hello! I'm Oscar, I am a third year physics and computer science student, originally from Mexico, but lived in the US for a very big chunk of my life. I like semiconductors, and other cool physics stuff like quantum computers. Outside of school, I like playing video games, hanging out with friends, and watching and playing sports mostly soccer and football. Looking forward to having a good time in lab!

Oscar Gallegos
Lab Staff


For a full list of course policies and the syllabus, see here.



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, this should help you have an easier time in CS 70.

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.


If you have suggestions for this website or see problems, feel free to let the software TAs know here.