Top 6 CS & EE Classes At Stanford
School ·After 7 years, my time as a student at Stanford is coming to a close, and it seemed like a prime occasion to reflect on all the new stuff I’ve learned over the years. I have taken over 30 classes in the CS & EE departments, most of them related to my concentration in Signal Processing, Control, and Optimization. (Read: I liked all the math-y bits and was terrible at all the circuit design bits). There are still so many classes I wish I had had the opportunity to take, but here’s my review of the best classes I took specifically toward my degree programs. I tried to pick just 5, but I couldn’t, so top 6 it is! In rough order of difficulty/necessary prerequisites…
The Top Picks
EE 103 Introduction to Matrix Methods - Stephen Boyd
This class was my gateway drug to linear algebra. I took this the first year it was offered and Prof. Boyd is an icon and legend in this field, so it was so cool to have him create and teach a new undergraduate-level class as an introduction to all the powerful things linear algebra can do. If you learned any linear algebra in high school or lower div math classes and hated it because you were just bashing linear equations together and doing weird formulaic tricks, this class will change everything.
CS 161 Design & Analysis of Algorithms - Karey Shi
Honestly, I don’t think you can go that wrong with any 100-level CS class because the whole department is just really well run and the classes are well-structured, paced, and taught. It’s just such a pleasant user experience as a student. Slides are colorful and fun, the teaching staff holds tons of office hours, and assignments and exams feel just challenging enough. Ok now that I’ve got my little love letter to the CS department out of the way (no regrets about doing 2 degrees in EE though!), this class seriously was so much fun. If you like solving puzzles, taking them apart, and putting them back together again, this is for you. I honestly went in thinking it would be just ok, but there are some truly beautiful things I learned in this class - the elegance of a well-designed algorithm, the simplicity of decomposing problem layers, and how even basic things like multiplication are still active areas of research!
CS 255 Introduction to Cryptography - Dan Boneh
These next two go hand in hand, and I would highly recommend taking them either together or one after the other (I’d recommend EE267 first because it’s a bit more theory that then gets applied in cryptography). I loved the structure and content of this course - a great mix of theory and application. The short projects are super fun and practical (like implementing the encrypted messaging scheme used by Signal), and it demystifies basic principles of what makes something secure, how security can be broken, and how all of that is grounded in mathematical principles that stem from information theory.
EE 276 Information Theory - Tsachy Weissman
Speaking of which…I LOVED this class. It is so different and refreshing from most other adjacent EE classes in signal processing and communications. Information theory feels like the cutting edge of the EE field and uses a whole different set of tools. If you took a probability class like EE 178 and felt like “Why does any of this stuff matter and how would I use it?”, this will answer all those questions and do it in a way that makes you surprisingly excited about probability. Yeah, I said it. I think I like probability theory now.
EE 261 Fourier Transforms and its Applications - Brad Osgood
If you’ve heard anything about this class, you’ll probably hear stuff about how you have to take it because Brad Osgood is amazing. And that is exactly what I’m going to tell you too. But you read a course title like this and if you’re like me, you’re thinking “Ok, but how good does Brad Osgood have to be to make me want to take a whole course on just Fourier transforms - the one topic I have learned for the first time, four different times and still don’t really get??” One of the great things about this course is that it is specific and narrow in focus so you go deep and truly become one with the Fourier. The course title is, shall we say, accurate, but doesn’t do this course justice. It should be something more like “The Art of Fourier Transforms (and How to Use It)”. You’re probably starting to draw some throughlines about the types of classes that I liked the most - ones that exposed a new sense of mathematical beauty to me - and this one is at the top of my list because I didn’t think I would ever come to like, let alone admire, Fourier transforms. But that’s Brad Osgood for you.
EE 364A Convex Optimization I - Sanjay Lall (& recordings from Stephen Boyd)
I’m not going to lie, this class is intimidating and hard. They may have changed the grading a bit now, but at the time I took it, it was something like 15% of your grade from homework and 85% of your grade from the final exam. That was one of the hallmarks of this class. Homeworks? Do it for fun. Midterm? Who needs ‘em? It’s all about the final exam. But this makes my list because 1) the content, while definitely on the mathematically mature side, is incredibly fascinating and again one of those fields that is at the cutting-edge of EE, CS, ML, etc and 2) I think this is the only class in which I, a notoriously terrible test taker, still remember the incredible feeling of satisfaction and awe from solving one of the coolest final exam problems ever. That’s how powerful this class is. And if Prof. Boyd is teaching it? Double win.
Honorable Mentions
EE 263 Linear Dynamical Systems - Reza Mahalati
I would say Convex I was genuinely Type I fun, but this was Type II fun. There was a 24-hour exam that I stayed up all night in the basement of Huang scribbling across 3 whiteboards like a mad scientist and I’m pretty sure I freaked out the janitorial staff that came to collect the trash bin at 3 am.
EE 252 Antennas - Ada Poon
A super unique class that will wreck your brain as you try to figure out Maxwell’s equations for the hundredth time, but super fun project component and was one of the few engineering classes I had taught by female faculty. Antennas are literal black magic and you can join the elite ranks of this rare breed of magicians.
EE 179 Analog & Digital Communications Systems - John Pauly
Play with radios, eavesdrop (legally, mostly) on public radio channels, and learn how to send and receive radio signals that on paper look like just random squiggles - another one of those black magic things. This was a great class that made me appreciate all the weird stuff from EE102A that I didn’t get and Prof. Pauly is world-class when it comes to radios.
Classes That Permanently Scarred Me But I Would Still Take Again Because I’m a Masochist (or it was required)
EE 118 Mechatronics
I cannot go into the lab where this took place anymore without getting chills down my spine. I was so sleep-deprived doing this project I legitimately thought I might die. I probably slept 3 hours a day for 2 weeks straight. Find yourself some teammates that don’t think building custom PCBs is a good idea. They’re not. It’s a miracle all 4 of us are still friends. Or maybe this class is why we’re still friends. Our final report lives on in infamy here.
EE 108 Digital System Design
I am indefinitely haunted by the Pink Panther theme song playing obnoxiously off-tune at 4 am inside a musty old lab. I enjoyed the course content, but man, the projects and lab infrastructure were brutal. On the bright side, if you end up carrying your team, your labmates will forever be indebted to you and you can make sure they will never forget it.
Looking back on all of these, the feelings I had and held on to when I learned to see something in a new way, found something beautiful and artistic, or just learned something straight up super hard and cool, were what made classes stand out to me. I think that’s what a great class and a great education is meant to do. You do the PSETs, the exams, the readings, and the projects. You listen to lectures and go to section and office hours and commiserate with classmates for hours. But at the end of the day, if you come out the other side with a new way of thinking about a problem or a new way of seeing something in the world, that’s all I can really ask for from a class, and makes me feel like, “you know, maybe - just maybe - we did meet those learning objectives.”