Cover image
Brian T. Liao
Nov 5, 2018 • 5 min read

Some Theory Crafting Optimization for the CS Major 2

Please save me Sahai.

A continuation on my previous ideas CS Theory Crafting ideas. Part 1.

2. Taking “Easy” EECS Classes

This is some theory-crafting and I don’t know if anybody would do this. Some EECS classes are easier than others. For some people, they’ll enjoy life if they take the lighter classes. Not everybody wants to do machine learning. Professor Efros said it doesn’t matter which EECS class you take, they are all good, you will learn and get a good education.

So why not take the easiest ones?

CS majors must take two CS upper divs, two CS or EE upper divs, one design class, and two upper div technical electives.

For the two CS upper divs:

CS 188: Artificial Intelligence is pretty easy, just fill in the code and understand the conceptual math. I also really like this class.

CS 168: Networking and Internet I’ve heard is pretty easy, but it’s hard to get into.

CS C100/Data C100: Data Science is another option but it’s a bit tricky with the Data Science department and Data 8 requirement.

CS 161: Computer Security and CS 186: Databases are the next tier, medium workload.

CS 160: User Interfaces and CS 169: Software Engineering I’ve heard mixed reviews. They are design classes and can be easy/good with a good team.

Special Topics classes might be lighter workloads as well.

For two CS or EE upper divs, you can choose from those listed above and I’ll talk about easy EE upper divs I’ve heard.

EE 120: Signals and Systems, a good EE extension to EE 16A and B, and I’ve heard is fairly reasonable.

EE 117: Electromagnetic Waves and EE 145: Medical Imaging, I’ve also hear have pretty reasonable workloads.

EE C128: Control Theory is a design class, that I also hear is reasonable in hw and labs.

I have used reasonable three times when I shouldn’t but it’s cause I don’t know that much about them but can describe from what I’ve heard.

For Design classes, choose from the design classes above.

Upper div technical electives:

My first advice would to declare Cog Sci and get breadth and these out of the way. If not or you need other breadth requirements, ECON 100A: Microeconomics or ECON 100B: Macroeconomics are ok in workload and give social breadth. I’ve heard STAT 133: Computing with Data which teaches R isn’t bad either. Most other technical electives should be fine, they are just hard to get into. You can also take two more EECS classes as well 🤷‍.

So if you want be the EECS LYFE but also a real social life, one example would be EE C128, EE 117, EE 120, CS 188, CS C100, COGSCI C101, COGSCI C126.

With focus on CS: CS 160, CS 168, CS 161, CS 188, CS C100, ECON 100A, STAT 133.

Note: The technical electives I choose here are arbitrary, mine were because of my situation where I did get out of some requirements from UW.

3. CS — Standard

Edit Distance - Dynamic Programming

So previous was theory-crafting. If I were to do college over again, maybe I would try it?

What I actually did was try to get a breadth knowledge. People say CS/Software Engineers should take CS 170: Algorithms and CS 162: Operating Systems. I haven’t taken CS 162 but I hear it’s a pain and CS 170, I have taken it, and it is a pain. They certainly are useful and you will become a better software engineer.

Other good classes: CS 161, CS 188, CS 186, CS C100, CS 160, and CS 169. These are the ones I recommended before as they are on average mid tier workloads.

The hard systems/software classes if you really want to: CS 152: Computer Architecture, CS 164: Compilers, and CS 184: Computer Graphics. Warning! These are long hard project classes!

There are hardware/computer engineering classes too, but I don’t know enough so I won’t discuss them.


A big majority of Berkeley CS majors want to study Machine Learning. I wanted to and realized it was hard. I instead just watched all the lectures on the bus.

Anant Sahai (notorious for his difficulty and rigour) recommends: EE 126: Probability and Random Processes, EE 127: Optimization, and CS 189: Machine Learning. These are good recommendations. You will be better and more mature at machine learning than a majority of people, which is Sahai’s goal.

Warning! These are long hard mathematically conceptual and problem-set classes! You will be stuck for hours and need teams and office hours! Many drop.

If this is your dream, go for it! But when people say it’s hard, that’s cause it’s hard.


With great suffering comes great memes.

EE 16A Meme from Piazza.

Adversarial Grades, Piazza.

More Sahai fun.

Part 3 of CS classes theory crafting.

Post by: Brian T. Liao