Berkeley Class Guide

This page is an academic guide for UC Berkeley undergrads (and grads now) from me. Comments towards certain class/instructor are PERSONAL. Do not take them as a bible or something set. College is all about exploring things, and thus if you are interested in certain class, always go for it! Never be scared to just walk in and audit a class. My personal advice is that: unless something really bad happened, never drop a class that you have found interesting but conceived as “too hard”.
I have received few requests from people that they would like to hear my experience on lower-div classes, e.g. CS 61A / Math 53. But these classes do vary a lot based on instructor and they are pre-requisites anyway. So I do not think my experience can help much and I have not even finished my upper-div experience yet… Hopefully one day I can update them; it would be a separate post though.

Math

All math upper div classes are very very “intro” level classes. Most lower level classes are too fundamental to be relevant. Class difficulty tends to vary based on instructor and the textbook he/she selected.

Math 104: Real Analysis

Instructor: Ved Datar
Textbook used: Principle of Mathematical Analysis by Rudin (aka baby Rudin) and Real Mathematical Analysis by Pugh
Difficulty: 9
Intelligence: 10
Worth: 10

This is by far my favorite math upper div class. If you want some easy piece of cake 104 just for graduating/GPA/looking fancy on your resume, take an instructor who uses Rose, but most likely you won’t learn anything as it’s just a meaningless repeat of your math 1A and 1B…
However, if an instructor uses Rudin or Pugh, the difficulty would be all of sudden raised to a high level. In this version of 104, this class can be viewed as a “fundamental” for many things that you don’t even expect, especially measure, which is extremely important in many situations. My own class is actually a little bit overwhelming with respect to content as it went through a little bit multivariable and lebesgue, which is supposedly 105/202A’s stuff. It would be hard for people with less upper-div math experience. However I have learned a lot.

Math 110: Linear Algebra

Instructor: Olga Holtz
Textbook used: Linear Algebra Done Right by Axler
Difficulty: 10
Intelligence: 9
Worth: 7

TBH, my 110 experience is abnormal as our instructor makes this class extremely abstract and hence difficult, and it’s my first upper div math class. You know the struggle when there is not a single matrix in a linear algebra class and all you hear is “space, space, space”… I personally think that LADR is more for math people instead of applied math people. It does, however, build your thinking ability on more abstract stuff (I benefit a lot on 113). But it is not very useful in a practical way. I believe the other widely used book, called “Linear Algebra”, is pretty practical as it includes more concrete examples.

Math 113: Abstract Algebra

Instructor: Dan Voiculescu
Textbook used: First Course in Abstract Algebra by Farleigh
Difficulty: 8
Intelligence: 10
Worth: 9

This class helps you understand the beauty of mathematics. However you might hate it because it is indeed “abstract” algebra. It can be annoying when 80% of your test are proofs, and 90% of the things you need to prove is something built purely on definition. But trust me, once you understand like 60% of 113, you will find many other classes (110, 104) conceptually make a lot more sense. Farleigh is a very good book. I really enjoying reading it even after the final lol.
A tip for mastering this course is to ‘build your own network’, i.e. understand how concepts connect to each other, as in 113 all concepts are pretty much ‘densely connected’. But I love it!

Math 128A: Numerical Analysis

Instructor: Ming Gu
Textbook used: Numerical Analysis 10th edition
Difficulty: 4
Intelligence: 3
Worth: 7

This class is the most practical from an engineering perspective. But it’s kind of dull as it’s “bag of tool” kind of class. Actually theories behind these numerical methods are extremely fascinating, but they are too hard for a class like 128A so they are not introduced.

Math 170: Mathematical Optimization

Instructor: L.C. Evans
Textbook used: Methods of Mathematical Economics: Linear and Nonlinear Programming, Fixed-Point Theorems by Franklin
Difficulty: 5.5
Intelligence: 7
Worth: 9.5
Professor Craig Evans is by far one of the best lecturers I’ve encountered in the mathematics department. He definitely has a passion for teaching. This class is focused on theoretical LP (i.e. Farkas’s, generalized alternative) and many of its extensions (multi-object LP, game theory). It excludes simplex/interior point these algorithms though. The class itself is not hard, simple linear algebra and analysis. The later part of the class is actually hard as he goes into optimal control (HJB equation, Suicidal pedestrian differential games) but he isn’t testing on it — it’s purely his hobby. Overall, it gives very solid understanding of linear programming and some basic optimization theory (KKT). I strongly recommend.

Math 185: Complex Analysis

Instructor: Andrey Smirnov
Textbook used: Complex Analysis by Gamelin
Difficulty: 5
Intelligence: 6
Worth: 5
It’s a computational intensive class. We are pretty much doing residue integrals (on key-hole contours). After all, the only theoretical parts I guess are the flowers and umbrellas Professor draws on the board.

Math 221: Numerical Linear Algebra

Instructor: Per-Olof Persson
Textbook used: Numerical Linear Algebra by Trefethen and Bao
Difficulty: 7
Intelligence: 8
Worth: 9
To be filled…

Math 228A: Numerical Differential Equations

Instructor: Lin Lin
Difficulty: 7
Intelligence: 7
Worth: 7
To be filled…

 

Stats

I have modified the course title to reflect what they are actually teaching. Also data 8 and stat 21 are interesting class. If you feel like you don’t know much about probability and statistics, take those instead of 134 and 135 during your first semester. Classes tend to be less challenging material wise, but bad instructors can make them challenging in some weird way (i.e. ask you to “recite algorithm 2 of chapter 7” on a quiz) as unfortunately Berkeley stat professors do not have to teach and hence unfortunately there are some lecturers who would seriously hurt the reputation of this department… Hank Ibser is a good one though.

Stat 133: Introduction to R

Instructor: Adam Lucas
Difficulty: 1
Intelligence: 1
Worth: 1

Very easy class. It might be useful for people who do not know programming at all. But if you screw up a little bit you are pretty much saying goodbye to an A, which can be very very annoying. Bad-organizing instructor by the way, if you want to learn anything avoid at all cost. I have received many negative feedbacks about his teaching in 135.

Stat 134: Introduction to Probability Theory

Instructor: Ani Adhikari
Textbook: Probability by Jim Pitman
Difficulty: 7
Intelligence: 7
Worth: 8

The class is pretty useful, it introduces you to some most basic concepts of probability. Ani is a great instructor, though I bet she still has this “mixed feeling” towards my grade. Conceptually it’s not that hard but there are a lot of tricks when dealing with actual problems, so doing problems is a better way to prepare for exams in this class!
Tips for this class is as Ani said, don’t copy the solution manual. Or if you are copying it, at least understand it… Also do not expect your knowledge from Math 55 / CS 70 would get you through the first half of this course. I received an A+ in 55 and almost failed my 134 midterm…

Stat 150: Introduction to Stochastic Processes

Instructor: Michael Klass
Textbook: Introduction to Stochastic Processes by Hoel, Port, Stone.
Difficulty: 8
Intelligence: 8
Worth: 9

I received my lowest grade on record from this class unfortunately, but I still think it’s a useful class if you pay attention. The textbook is dense in a weird way, it goes through some very hard proofs which might be beyond the scope of most undergrads. Anyway, stochastic processes is very crucial if you are heading in areas such as finance and I know everybody loves money.

Stat 154: Machine Learning Algorithms That Half of Them Nobody Really Cares Nowadays

Instructor: Rabbee Nusrat
Textbook: ISL
Difficulty: 6
Intelligence: 4
Worth: 5

This, supposedly, should receive a 8/8/10 in many perspectives, but the painful truth is that… yes it does not worth it to take it, at least with a lecturer like Rabbee. I heard Noureddine’s version is a lot better though. Rabbee just reads through her slides all the time, and asks us to memorize a lot of things instead of understanding it. And the math is a joke in this class… Like there was one eigenvalue problem on the midterm which I found mathematically challenging and people told me the complete derivation was in her slides and I’m like wtf… I do not blame her for testing the exact thing from her slides but at least add some mathematically hard problems this is a statistical learning class. She fails to cover some very important topics, i.e. gradients, optimization, which makes this class completely useless.
Wait for a professor to teach it or take CS189, that’s the only tip I could give about this class.

Stat 205A/205B: Measure-Theoretical Probability

Instructor: Jim Pitman
Textbook: Probability by Durrett
Difficulty: 10
Intelligence: 10
Worth: 5

To be filled…

Stat 210A: Theoretical Statistics

Instructor: Will Fithian
Textbook: Theoretical Statistics by Keener
Difficulty: 9
Intelligence: 8
Worth: 10

To be filled…

Stat 210B: High Dimensional Statistics

Instructor: Michael Jordan
Textbook: High Dimensional Statistics — A non-asymptotic view by Wainright
Difficulty: 10
Intelligence: 10
Worth: 10

To be filled…But the score pretty much tells it all.

Stat 215B: Applied Statistical Methods: Old and New

Instructor: Haiyan Huang
Textbook: ESL
Difficulty: 7
Intelligence: 8
Worth: 10

This class is a lot better than 154, probably because of my mathematical bias. Professor actually does very hard derivation on the board instead of reading through the slides. And it’s a fascinating thing to watch how difficult problems can be modeled by these tools and how ugly math equations end up into an elegant conclusion… I enjoy this class though the workload can be quite crazy. There are four labs and four assignments. Assignments are not that bad, usually take 2-4 hours. But the labs… If you really want to learn something, it might take 20 – 30 hours each, which can be very heavily loaded. And there is one final project which takes as much as labs do.

 

IEOR

Don’t be fooled by the fancy course names from the department, a lot of classes are just bu****it. I strongly recommend taking Stat 134/135 instead of IEOR 172/165. There are some good classes too. Classes tend to be less challenging in general since instructors tend to be very good and material wise it’s not that bad.

IEOR 160: Nonlinear and Discrete Optimization

Instructor: Dorit Hochbaum
Textbook: idk
Difficulty: 4
Intelligence: 7
Worth: 7

The material wise is actually challenging but Dorit tends to make the homework and test easy. If you have done the homework, the test would be a piece of cake.

IEOR 162: Linear Programming and Network Flow

Instructor: Dorit Hochbaum
Textbook: idk
Difficulty: 4
Intelligence: 7
Worth: 7

The material wise is actually challenging but Dorit tends to make the homework and test easy. If you have done the homework, the test would be a piece of cake. (yes I copy paste from 160, by the way, Quico Spaen, my GSI from this class, is da real bomb)

IEOR 171: Technology Firm Leadership

Instructor: Stephen something
Textbook: idk
Difficulty: 0
Intelligence: 0
Worth: 0

The class that I regretted the most taking throughout time in Berkeley. Class is in a stupid MBA style, you read some books and take notes, and books are titled as “how to win friend and influence”, “test new ideas in just five days”. And everybody knows MBA classes are there for your degree so ya… It’s PROB because I’m a more quant-leaning kind of guy so I hate this kind of thing but sitting in the class is even more… hard to say. You can see how people raise very technically infeasible ideas and instructor was like “that’s interesting idea”. It somehow demonstrates that most people in class know nothing about the feasibility of technology at all. Well that’s predictable as one time the instructor asks who have worked in Google and few people raise their hands and they are in the.. marketing team and sales team ?? and I’m like alright… I guess this is where the annoying PM’s come from lol. AVOID AT ALL COST.

IEOR 173: Introduction to Stochastic Processes

Instructor: Mariana Olvera
Textbook: Essentials of Stochastic Processes by Durrett
Difficulty: 5
Intelligence: 7
Worth: 7

Professor is very nice. She is actually good at teaching but unfortunately during my iteration of taking this class the schedule crashes with Martin Wainright’s lecture on EE227C so ya… Anyway, the assignments can be a little bit challenging and the exams are alright, open book open everything. Professor herself is actually very knowledgable on this domain but her structure is a little bit questionable. After entering continuous, she goes directly to queue/Jackson network that kind of thing instead of Brownian motion and SDE, which I think are more important in general.

IEOR 262B: Advanced Nonlinear and Discrete Optimization

Instructor: Shmuel Oren
Textbook: Linear and Non-Linear Programming by Luenberger
Difficulty: 7
Intelligence: 8
Worth: 8
It comes no doubt that Professor Oren is a pro on this topic. He is like the very traditional optimization guy, goes through every slightest details of proofs of certain algorithm. He likes to go ‘deep’ instead of ‘broad’ like EE227C. Unfortunately he always has the ‘writo’, hence you probably still need to read the books as sometimes his writos can be fatal… The test is not bad, kind of basic, besides sometimes weird and tricky questions pump up.

IEOR 290: Large-scale Optimization and Statistical Applications

Instructor: Paul Grigas
Textbook: No Textbook
Difficulty: 7
Intelligence: 7
Worth: 9
To be filled…

 

EE

Second most challenging department in our school. I have not taken that many courses in this department so I cannot conclude about instructors in general. But it seems that they do offer great professors to teach.

EE 127 / 227A: Optimization Models

Instructor: Laurent El Ghaoui
Textbook: Optimization Models by Calafiore and El Ghaoui
Difficulty: 6
Intelligence: 8
Worth: 9

The difficulty is greatly downgraded as I have the best GSI I’ve ever met since I come to Berkeley — Joshua Archiam. He is super knowledgable and super passionate and super good at teaching. Like ya, I pretty much watch Zelda in El Ghaoui’s lecture and make up everything from going to Josh’s review session and office hours (don’t be like me lol)
Laurent himself is a bit unorganized. He is pretty knowledgable in this domain so he probably finds introducing the basics too trivial… Instead he gives a lot of motivating examples, which is good. It’s important to do a lot of problems as optimization needs practice. It’s not a math class it’s useless even if you understand all the concepts.

EE 221: Linear System Theory

Instructor: Claire Tomlin
Textbook: Linear System Theory by Callier and Desoer
Difficulty: 7
Intelligence: 8
Worth: 9

The class is split into two parts: math (linear algebra / ODE) and control systems. The math part serves solely for the later contents as some of the contents I’ve never seen in neither a linear algebra class nor a class related to linear algebra, i.e. matrix exponential, polynomial interpolation for an analytic function of a matrix. The later part goes OK at first, but becomes a little bit overwhelming at the end (I’ve never took an control class before this one) as I’m not familiar with observer/controller design thingy.
Professor herself is one of the best professors (at teaching) I’ve ever had at Berkeley. Extremely well organized. Lecture always goes at the right pace and she is super clear about materials. Homework is acceptable. Some of them are basic and some of them are actually kind of clever. Tests are always “outside the box” so don’t even try to predict what Claire will test on, just study everything and try your best.

EE 227B: Optimization Models

Instructor: Laurent El Ghaoui and Somayeh Sojoudi
Textbook: Robust Optimization by El Ghaoui
Difficulty: 7
Intelligence: 9
Worth: 7.5

To be filled…

EE 227C: Non-linear Optimization Methods and Analysis

Instructor: Martin Wainwright
Textbook: Numerical Optimizations by Nocedal and Wright
Difficulty: 7
Intelligence: 9
Worth: 9

Martin Wainwright is like the instructor version of Josh Archiam on teaching — super knowledgable and super passionate and super good at teaching. He makes some writos during proofs like Oren too, but is always quickly corrected. The class itself is not very hard even I can do the homework… But ya, it’s Martin as he makes everything super clear and he gives out ‘hint’ of homework in lectures which make you want to do the homework even more. I heard Ben’s version of 227C is a lot weirder though.

EE 229A: Information Theory

Instructor: Thomas Courtade
Textbook: Elements of information theory by Thomas and Cover
Difficulty: 6
Intelligence: 7
Worth: 7

To be filled…

EE 290T: Hybrid System

Instructor: Claire Tomlin
Textbook: Hybrid System: Foundations, advanced topics and applications by Lygeros, Sastry and Tomlin
Difficulty: 6
Intelligence: 8
Worth: 8.5

To be filled…

 

CS

I have not encountered a “piece of cake” CS class yet. They are either hard or requiring a lot of work. Instructors are good in the sense of knowing the materials, but some are not really in the sense of teaching them. GSI’s tend to be not very reliable as most of them are “U”GSI actually according to many of my friends. But I think I’m somehow lucky and always able to find okay GSI’s in CS classes.

CS 170: Algorithms

Instructor: Christos Papad and Luka Trevisian
Textbook: Algorithm by Papad
Difficulty: 7
Intelligence: 9
Worth: 8

I’m pretty much there to play around so I only went to lectures and did not really spend time recapping it later. The homework is quite good though it is hard and time-consuming. It’s also quite annoying that everybody goes to OH and people are getting answers from GSI and then exchanging answers between their small groups and instructor team does not really know how to deal with it though. But this does not really hurt my experience as I’m just there for Papad’s super interesting lecture.

CS 294 Series

To be filled..

Instructor: Various
Textbook: Various
Difficulty: –
Intelligence: –
Worth: –