Going Down the EECS Stack

With so many EE and CS classes at Berkeley, it is important that students know which classes best match their personal and career interests. This DeCal is offered to provide students with a broad survey of topics within EECS and a general sense of the courses and subfields within the major. We aim to cover each topic in totality, so no EE or CS experience is required.

Enroll Now! Learn More

Key Learning Outcomes

This course will take students on a journey through YouTube starting from the browser request to the underlying circuitry and physics in computers. Each week will move lower on the software/hardware stack, with a deconstructive approach to software and a constructive approach towards hardware. After taking this course, students will have a fair understanding of every level of the EECS stack.

Methods of Instruction

Sessions will consist of 2 hours of instruction, including a mix of interactive labs/demonstrations and lecture. In addition, staff will plan trips to various research labs or host talks by current researchers in applicable fields to provide deeper insight into various areas of research. The syllabus itself covers 12 weeks of instruction, including guest lectures by either faculty or a current researcher, lab tours, and other activities!

Assignments and Grading

To pass the course a total of 17 points must be obtained by each student. Attendance and weekly submissions are worth 1 point each (there are 11 classes and 10 weekly assignments). There will also be a field trip and a final project, both of which are mandatory. For students who are unable to attend the field trip, there will be an alternative assignment.

How to Enroll

Fill out our short google form linked in the welcome. Please apply as soon as possible; applications will be processed on a first-come-first-serve basis. Please make sure to attend the first lecture, as we will be handling course codes based on attendance. If you cannot make the first class, send us an email.

pic of person

Introduction - Week 1

This week will provide a quick preliminary overview of what the course will be about, distribution of course materials, as well as an introduction to the course staff. If available, we will be inviting Professor Anant Sahai, our faculty sponsor, to come and speak to interested students about our class.
Human-Computer Interaction
pic of person

Human-Computer Interaction - Week 2

Human-computer interaction is the subfield of computer science that focuses on the interactions that users have with computers. This class will mainly be about the User Interfaces which is what the user will directly interact with. We will also introduce the iterative design cycle, which is one of the primary methods for the prototyping and development of user interfaces.
Video and Image Processing
pic of person

Video and Image Processing - Week 3

YouTube is one of the most iconic pieces of the modern internet. In this course, we will dissect the process of requesting a video, and playing it in the browser. This session will focus heavily on the mechanics of audio and graphics, as well as their representations. In addition, we will perform a simple overview of compression using various methods, such as Fourier transforms and wavelet compression.
Mechanics Behind YouTube ML
pic of person

Mechanics Behind YouTube ML - Week 4

Machine Learning is the science of making software “learn.” We will introduce the big ideas behind machine learning and discuss how YouTube uses them to figure out which videos its users are more likely to watch. Along the way, we’ll gain some hands-on experience at designing and running your own learning algorithms.
Security and Cryptography
pic of person

Security and Cryptography - Week 5

While developers would like to write code that just does what it’s supposed to, the reality is that attackers have incentives to exploit loopholes in applications. This week we examine defenses against these attacks, including code security, network security, and web security. We will also study the tool that enables many of these defenses: cryptography, the study of algorithms that achieve certain guarantees in the presence of adversaries.
Computer Theory and Research
pic of person

Computer Theory and Research - Week 6

Computer theory is the branch of computer science related to the mathematical study of computing. In this class we will cover three main areas of algorithms, complexity, and computability. We will cover several of the fundamental problems/ideas in computer theory such as the halting problem, P vs. NP, and the Church-Turing Thesis.
pic of person

Systems - Week 7

Applications run by writing code, but that code doesn’t automagically run on the physical computer. This session will cover Operating Systems, Compilers, and Binary -- the translation and execution of code from human-readable format to computer-readable format. This session will also cover hardware device interfaces, such as network sockets and drivers
How to Build a Computer
pic of person

How to Build a Computer - Week 8

Applications run on top of hardware, which is typically a set of wires and gates. In this session, we will examine digital logic, memory units, and the hardware-software interface. We will also examine digital circuit design, clocking, and hardware-peripheral interfaces.
Communications and Circuits
pic of person

Communications and Circuits - Week 9

We’ve taken this dive through how modern computing works, but there’s an essential missing component, measurement! The real world is not discrete or digital, but luckily analog circuits are here to save the day. We will learn how analog circuits turn signals into digital information for computers, build an inverter out of transistors, and explore digital logic through an analog view.
Power and Semiconductors
pic of person

Power and Semiconductors - Week 10

Transistors are the building blocks of computers, but what exactly are transistors? This session will describe the physics behind how transistors work, in a qualitative, simple way. We will build up from the ideas of bonding in silicon to different charge carriers in semiconductors and finally MOSFETs. We will also explore power systems and renewable energy.
Embedded Systems and Controls
pic of person

Embedded Systems and Controls - Week 11

So far, this course has focused primarily on the top-to-bottom stack of a typical computing device. This session will cover physical interaction with the external world, as well as feedback from the environment. We will examine the system used by the EE 16B robot, and also discuss other systems such as camera image stabilization.
pic of person

Conclusion/Ethics - Week 12

The final session will provide an overarching unification of the topics covered in the course, with a review of how an application travels from the user interface to the wires. We will also cover non-technical aspects of EECS, such as ethics, morality, and policy.


Meet the people who will be interacting with you throughout the semester!

Rohin Tangirala
2nd Year EECS
  • Interested in applied physics and integrated circuits
  • Plays piano, guitar, and (occasionally) clarinet
  • Trying to produce music
Alexander Kristoffersen
3rd Year EECS
  • Interested in computer vision, communication / signal processing, and robotics
  • Can flip 3 fried eggs at the same time with minimal losses
Augie Eriksson
2nd Year EECS
  • Interested in computer architecture
  • Likes linguistics but bad at learning languages including English
  • Plays piano sometimes
Bryan Ngo
2nd Year EECS
  • EECS 16A Lab ASE
  • Can solve a Rubik's cube in 17 seconds
Leyla Kabuli
4th Year EECS + Music
  • Interested in computational imaging, medical imaging, and computer vision
  • "Plays piano or something"
Brandon Schellhaass
2nd Year EECS
  • Interested in computational biology and controls
  • Reads a lot of fantasy and sci-fi novels
Simon Guo
2nd Year EECS
  • Interested in systems, computer architecture, and robotics
  • My favorite philosophers are Lucretius and Nietzsche
  • Am I a cyborg?
George Hutchinson
EECS '20
  • Alumnus who doesn't know how to let go
Some Advice

Professor Sahai notes in his unofficial advice page 1 , “Set yourself a goal of understanding some system from top to bottom before you graduate. For example, you might want to know how the entire process of downloading and listening to an MP3 or OGG file works. This can be a good tool for integrating knowledge across different courses.” Since taking every EECS course may be infeasible and inefficient under the current system, we would like to provide a cocktail-party level of understanding so students can make educated decisions about which classes to explore. Even if you never take an EECS class after this one, this DeCal will be worthwhile if you enjoy learning about a variety of topics.


Decal: decal[at]hkn.eecs.berkeley.edu

General: hkn[at]hkn.eecs.berkeley.edu

Our Offices

290 Cory Hall | (510) 642-7346

345 Soda Hall | (510) 642-9952