← blog

ranking and rating every class i took at uc berkeley

· 2 min read · uc berkeley, course reviews, academics

During my four years at UC Berkeley studying Computer Science & Data Science, I took over 20 rigorous technical courses spanning software systems, machine learning theory, data engineering pipelines, advanced probability, and physics.

Berkeley courses have a notorious reputation for intense problem sets, massive 40-hour projects, and brutal exams. Now that I've graduated (Class of 2026, 3.70 GPA), I wanted to look back and give an honest, unvarnished review and rating of every single class I completed—including difficulty, workload, key takeaways, and whether they were worth the grind.

Quick Summary Matrix

Here is the breakdown across all courses grouped and ordered as in my academics section:

Category Course Title Rating Difficulty Workload
Computer Science CS 61A Structure & Interpretation of Programs 9/10 7/10 8/10
CS 61B Data Structures 10/10 9/10 9/10
CS 61C Computer Architecture 8/10 7/10 8/10
CS 161 Computer Security 8/10 7/10 9/10
CS 162 Operating Systems & Systems Programming 9/10 9/10 8/10
CS 170 Algorithms & Intractable Problems 10/10 10/10 8/10
CS 186 Database Systems 9/10 8/10 7/10
CS 188 Artificial Intelligence 7/10 6/10 6/10
CS 189 Machine Learning 10/10 10/10 10/10
CS 198 Web Development DeCal 5/10 2/10 2/10
Data Science DATA 8 Foundations of Data Science 8/10 4/10 5/10
DATA 100 Principles of Data Science 10/10 6/10 7/10
DATA C101 Data Engineering 9/10 7/10 7/10
DATA C104 Human Contexts & Ethics of Data 4/10 5/10 8/10
DATA 140 Probability for Data Science 7/10 10/10 8/10
Engineering & Analytics EECS 127 Optimization Models in Engineering 7/10 10/10 8/10
INFO 159 Natural Language Processing 10/10 7/10 7/10
IEOR 162 Linear Programming & Network Flows 5/10 6/10 6/10
Physics PHYSICS 7A Mechanics & Waves 7/10 8/10 7/10
PHYSICS 7B Electricity, Magnetism & Thermodynamics 7/10 10/10 7/10
PHYSICS 7C Waves, Optics, Relativity & Quantum 10/10 8/10 7/10

Top 5 Recommendations for Cal CS/DS Students

  1. CS 170 (Algorithms): Do not graduate without taking this. Essential for developing structured problem-solving intuition and succeeding in technical interviews. Even if you can learn yourself, makes life easier by starting somewhere.
  2. CS 189 (Introduction to ML): Getting your foot through the door, learning the basics in today's age.
  3. DATA C101 (Data Engineering): Hands-on experience with modern big data pipelines (Spark, streaming, distributed architectures).
  4. DATA 140 (Probability): The best math/probability course offered at Berkeley (there are alternatives).
  5. DATA 100 (Data Science): The class I actually learned and enjoyed taking the most.

Overall, the Berkeley curriculum pushed me beyond what I thought I was capable of. The combination of deep theoretical rigor with large-scale systems implementation gave me the confidence to design, debug, and ship complex software in any domain. But learning in school is barely enough for real job applications and interviews. You have to network through clubs, hackathons, research, etc. But overall, Berkeley was an amazing experience that I would not trade for anything.