rating every class i've taken
Jun 1, 2026 • 797 words • 2 min read
I’ve taken a lot of classes at ucsd. Some were incredible, some… not so much! I decided to plot them all out on a few different dimensions to visualize them.
Below is a
- table
- chronological heat matrix
- an interactive radar visualizer
- cse vs math dept comparison
- quarter averages for the five metrics
- weighted sum for each metric.
of all classes I’ve taken.
I should explain the criteria.
- Usefulness: How useful the class was to me in terms of skills, career (software focused), and general knowledge. 5 = useful, 1 = not useful at all.
- Enjoyment: How much I enjoyed the class. 5 = I loved it, 1 = I hated it.
- Workload: How much work the class was. A 5 means the class was very time consuming and a 1 means it was very light.
- Difficulty: How difficult the class was for me. It’s important to note that this is distinct form workload because some classes are difficult but don’t require a lot of work (like MATH 154), and some classes are easy but require a lot of work (MATH 20D). A 5 means the class was very difficult for me and a 1 means it was very easy.
- Skipability: How much I would recommend skipping the class if you had the option. Obviously, this is also very subjective and somewhat professor dependent. A 5 means you should skip the class. A 1 means you should attend all lectures.
I don’t think I need to say this, but these ratings are all very subjective and based on my own experience. Some of these are very professor dependent YMMV!
Since it’s unfair to judge a class I took early on the same scale as a class I took later, I rated classes based on the quarter I took them. So for example, my rating of MATH 18 is based on my experience taking it in FA22, despite it being significantly easier and more useful than MATH 140A which I took in WI25.
Course Ratings Overview
| Course | Title | Enjoy | Useful | Work | Diff | Skip |
|---|---|---|---|---|---|---|
| CHEM 6A | General Chemistry I | 8 | 1 | 2 | 2 | 10 |
| CSE 11 | Accel. Intro to Programming | 5 | 4 | 4 | 2 | 2 |
| CSE 12 | Basic Data Struct & OO Design | 5 | 6 | 5 | 3 | 2 |
| CSE 15L | Software Tools&Techniques Lab | 9 | 5 | 2 | 1 | 3 |
| CSE 30 | Computer Organiz&Systms Progrm | 5 | 5 | 4 | 4 | 3 |
| CSE 91 | Perspectives in CSE | 10 | 3 | 1 | 1 | 1 |
| CSE 95 | Tutor Apprentice | 2 | 1 | 1 | 1 | 9 |
| CSE 100R | Advanced Data Structures | 7 | 8 | 4 | 3 | 2 |
| CSE 101 | Design & Analysis of Algorithm | 3 | 4 | 7 | 8 | 1 |
| CSE 105 | Theory of Computation | 9 | 3 | 3 | 4 | 8 |
| CSE 110 | Software Engineering | 8 | 8 | 3 | 3 | 9 |
| CSE 120 | Princ/Computer Operating Systm | 5 | 10 | 8 | 9 | 1 |
| CSE 122 | Wireless Networks | 3 | 4 | 4 | 6 | 8 |
| CSE 127 | Intro to Computer Security | 8 | 5 | 4 | 4 | 8 |
| CSE 145 | Embedded Systems Design Proj | 7 | 3 | 6 | 5 | 9 |
| CSE 150B | AI: Search and Reasoning | 10 | 6 | 5 | 5 | 2 |
| CSE 151A | ML: Learning Algorithms | 2 | 2 | 2 | 3 | 10 |
| CSE 152A | Intro to Comp Vision I | 8 | 4 | 7 | 5 | 6 |
| CSE 160 | Intro to Parallel Computing | 8 | 9 | 6 | 4 | 9 |
| CSE 190 | Data Center Systems | 6 | 10 | 4 | 4 | 3 |
| CSE 190 | Intro to Quantum Computing | 6 | 3 | 3 | 5 | 8 |
| CSE 190 | Programmers are People Too | 2 | 7 | 2 | 2 | 7 |
| CSE 197 | Field Study/Computer Sci&Engin | 3 | 8 | 1 | 1 | 1 |
| CSE 202 | Algorithm Design and Analysis | 8 | 6 | 7 | 5 | 10 |
| CSE 224 | Graduate Networked Systems | 7 | 10 | 9 | 9 | 6 |
| CSE 230 | Principles/Program Languages | 8 | 3 | 2 | 4 | 9 |
| CSE 239B | Top/Sem/Programming Languages | 5 | 5 | 1 | 1 | 2 |
| CSE 291P | Language-Based Security | 7 | 6 | 4 | 8 | 3 |
| CSE 291Y | Building Secure Sys with Rust | 9 | 10 | 7 | 7 | 2 |
| ECON 109 | Game Theory | 4 | 4 | 2 | 3 | 9 |
| ENG 5 | Orientation to Engr Profession | 2 | 1 | 1 | 1 | 10 |
| ENG 15 | Engineer Your Success | 2 | 2 | 1 | 1 | 10 |
| MATH 18 | Linear Algebra | 9 | 10 | 5 | 6 | 7 |
| MATH 20B | Calculus II | 1 | 4 | 7 | 7 | 10 |
| MATH 20C | Calculus III | 3 | 3 | 4 | 3 | 10 |
| MATH 20D | Intro/Differential Equations | 1 | 6 | 8 | 3 | 10 |
| MATH 20E | Vector Calculus | 2 | 5 | 8 | 2 | 10 |
| MATH 100A | Abstract Algebra I | 10 | 7 | 6 | 7 | 4 |
| MATH 100B | Abstract Algebra II | 7 | 7 | 7 | 8 | 4 |
| MATH 109 | Mathematical Reasoning | 5 | 10 | 8 | 10 | 2 |
| MATH 114 | Intro/Computatnl Stochastics | 6 | 4 | 2 | 3 | 9 |
| MATH 140A | Foundations of Real Analysis I | 10 | 7 | 10 | 10 | 7 |
| MATH 140B | Foundations/Real Analysis II | 7 | 6 | 10 | 10 | 6 |
| MATH 154 | Discrete Math & Graph Theory | 9 | 9 | 5 | 6 | 4 |
| MATH 160A | Elementary Math Logic I | 1 | 5 | 6 | 9 | 2 |
| MATH 170A | Intro Numerical Analys/Linear | 2 | 5 | 2 | 2 | 8 |
| MATH 180A | Introduction to Probability | 5 | 10 | 5 | 6 | 3 |
| MATH 181A | Intro/Math Statistics I | 9 | 3 | 8 | 4 | 1 |
| MATH 184 | Enumerative Combinatorics | 10 | 9 | 8 | 10 | 4 |
| MATH 187A | Introduction to Cryptography | 6 | 4 | 2 | 3 | 10 |
| MATH 196 | Student Colloquium | 2 | 1 | 1 | 1 | 2 |
| MUS 15 | Popular Music | 8 | 1 | 2 | 1 | 7 |
| MUS 19R | Blacktronika: Afrofuturism | 4 | 1 | 2 | 1 | 7 |
| SYN 1 | Perspectives/Changing Planet | 5 | 1 | 2 | 1 | 5 |
| SYN 2 | Inquiring/Changing Planet | 3 | 1 | 2 | 1 | 7 |
| SYN 100 | Engaging/Changing Planet | 7 | 2 | 3 | 2 | 2 |
| CSE 231 | Compiler Construction | 5 | 8 | 5 | 4 | 8 |
| CSE 223B | Distributed Systems | 6 | 10 | 10 | 9 | 8 |
| CSE 291G | Physical Simulations | 8 | 4 | 4 | 9 | 9 |
Course Ratings Matrix
Rendered natively with D3.js. Grouped chronologically.
Course Ratings (Select a Class)
Department Comparison: CSE vs MATH
Average ratings across all computer science and mathematics courses.
Quarter Averages
Average ratings across all classes taken during each term.
Quarterly Category Sums
The absolute sum of points for every class taken in a quarter, weighted by the number of units the class is worth.
specific reviews
CSE 95
This is actually the CSE PACE class. Not really a class, but more of a program to help first years adjust to college. I met a lot of friends and would recommend every first year to take it!
CSE 110
This is a very hated class. I personally think the class is good if you’ve never done group projects before (in that case, what are you doing??). For most people it’s the first time where you have to work in a group where there are consequences for not doing work.
Some of the content is useful, like dependency injection or the builder pattern.
One piece of data I can provide is that CSE 197 students who took CSE 110 mentioned it was one of the most useful classes they took at UCSD, and that it prepared them for working in industry.
I also think the class is very enjoyable if you have a good group. I had a great group and we had a lot of fun working on the project together. It’s very team dependent (just like the real world!).
CSE 197
This is just the internship class. See here.
CSE 230
I took this when it was taught in Lean4. Any students taking this class should do some research on what the material is because Lean4 is not a widely used language and the material is very different from other programming classes.
At the time, this was my research focus, so it made sense.
MATH 109
This is the intro to proofs class. It it extremely professor dependent; they’ll spend some time on a topic that somewhat adjacent to their research and then give you a problem set on it. You really want to aim for a professor who has good pedagogical skills.
MATH 180A
Useful class in understanding modeling statistics. Unfortunately, the textbook we used was very poor. However, the 180B textbook is phenomenal.
There was a large difficulty spike in the last three weeks. I don’t think I’ve hard a harder difficulty impulse in any other class.
MATH 140AB
Hardest classes I’ve taken at UCSD. Highly recommend for discplined students who are
- want to do math research
- considering a PhD in math
- want a challenge
- meet other hard working and talented students!
You can take a preview of the material here!
Thank you to those who helped make this possible.