My Web Log
~ A collection of my thoughts ~
BACK TO HOME
BACK TO BLOG
A review of classes I have taken this past year
Date: July 17, 2025
In my freshman year at Cal, I have taken interesting classes. I've decided to write a bit on each class.
- EECS 16A: Foundations of Signals, Dynamical Systems, and Information Processing
Difficulty: 4/10
In 5 words: foundational, important, and interesting
I think that this class is really good. When I took it, it still covered linear algebra, but it also covered signals and systems. I think that the linear
algebra knowledge gained from this class is very good for an introductory class, and the techniques that they cover are very useful
everywhere. Homeworks were also very reasonable. From Spring 2025 onwards, the class will require Math 54, and so it will cover more
signals and systems. I thought that the class was very well managed and designed, despite it taking place in a transition year. It seemed as if nearly every topic was well-motivated, and that there was an inherent
flow to the class. The labs were also fun; my year, we made Shazam! My favorite part of the class was the part on Fourier transforms. Babak and JP are both
amazing teachers, and the course staff for this class is among the best of the lower division EECS courses.
- EECS 16B: Introduction to Circuits and Devices
Difficulty: 3.5/10
In 5 words: interesting, not as well managed
My experience in EECS 16B probably arises from the fact that the EE lower division classes were in a state of transition my year. Labs are pretty
long, but they are very good. Our labs were focused on building a guitar amplifier using analog filters. It was pretty insane to see them
actually work while strumming a guitar. I came into this class knowing most of it because of Physics 5B and 5BL, so I thought that the
class was pretty easy. Homeworks were more or less pretty simple, with some occasionally being pretty long. All in all, I think I enjoyed the class,
especially the labs, and I think that this course will get far better in the coming semesters.
- CS 61A: Structure and Interpretation of Computer Programs
Difficulty: 4.5/10
In 5 words: excellent starting class
I think that 61A is a really good class if someone is trying to learn how to think about programming. I would say that I came into this class
with not much knowledge about competitive programming and algorithms, and so I learned a lot from 61A. The class itself is low workload, and I felt
that the last 50% of the learning is done through going through past exams. As it is such a large class, it has an excellent course staff. The final project
is building a Scheme interpreter, which was pretty fun. I took the mega-section option when taking this class, and it worked out really well for me.
- CS 61B: Data Structures
Difficulty: 4/10
In 5 words: amazing class, BYOW is goated
I really really enjoyed this class. I would say that it is easier than 61A, but probably only because the jump from high school to 61A is larger than
the jump from 61A to 61B. The class is very well designed, and I think that Hug and Yokota make a dynamic duo. Projects are fun, but not
too timeconsuming. This class, in some ways, formalizes and builds upon a lot of the algorithms in 61A that we may have ended up learning.
My favorite part is BYOW, where you build a game in Java. I think that this class is a must-take for anyone interested in CS. It is often said that
61B is enough to get a job, and I think that this is true. From knowledge gained in 61B, you can actually build things from scratch.
- CS 61C: Great Ideas in Computer Architecture (Machine Structures)
Difficulty: 5.25/10
In 5 6 words: Maybe computer architecture isn't for me?
- CS 70: Discrete Mathematics and Probability Theory
Difficulty: 5.25/10
In 5 words: fast-paced, amazing, very important
CS 70 is a class that I think everybody in STEM should take. It is amazing. It is very fast-paced. I would reccomend taking the no-homework option,
as in the end, the curves are very similar, and you don't want the stress of completing the homework every week. The exams are tough, and
the midterm has probably the most insane time crunch I have seen at Berkeley. The course staff is also excellent for this class. I had Satish Rao as my
professor, and he is a pretty eccentric (and sometimes entertaining) lecturer. His lecture slides are very good, and so are the notes. I would
also say that the discussions are excellent. Sadly, I did not get an offer to be on course staff for this class for Summer 2025 :(
- Physics 5B: Honors Introductory Electromagnetism, Waves, and Optics
Difficulty : 2/10
In 5 words: Interesting, fun, easy
This class is amazing. Professor Orenstein is an amazing lecturer; he goes at a speed that feels slow, but is actually pretty fast!
As a disclaimer, I did enter this class with a very significant amount of knowledge about E&M. The 5-series at Berkeley is more focused
on theory, and as such, prepares one better for physics upperdivs. I felt that 5B is a must-take if you are a freshman who has taken Calculus III
and have some experience in E&M. I would also say this class is perfect for anyone who has aims to do anything EE-related. Homeworks were short,
roughly 4-5 problems from Purcell and Morin, but at the end of the class, when it gets more into optics, Prof. Orenstein gave his own problems.
I have very fond memories of this class; many times, I would come and just absorb the new physics (especially the optics part) that he was teaching.
I also learned the trick to solve many differential equations: just guess e^{i (k dot r - omega t)}.
- Physics 5BL: Honors Introduction to Experimental Physics I
Difficulty: 8/10
In 59 words: 1 year on, I still have nightmares about this
The hardest class I've taken so far. It maybe only 2 units, but this class took up most of my time. Grading is often unforgiving, and deadlines approach
very fast. The first 1.5 months the class moves at break-neck speed. We would do labs on Tuesday, and by Thursday, we'd have to submit
a lab report, written in LaTeX, that was often longer than 20 pages, along with hundreds of lines of code for data analysis. After the initial sprint,
the class slows down a bit, before becoming insane the last 3 weeks. During that time, we worked on our capstone project. As a word of advice,
do not pick a capstone project that does not have a clear aim or one that is very difficult. Our initial project was to build a radio transmitter
and reciever, but despite hours and hours in lab, we weren't able to get it to work. Last minute, we started working on analog filters,
but that too was not much easier. One of my partners had to spend 8 hours a day for a week and a half in the EECS16B labs trying to build
the high-order filters. Instead of studying for my final exams, I was working on the report, which, in the end, totaled over 50 pages. We wrote
something on the order of a thousand lines of code for data analysis. The saving grace about the capstone project is that you are in a group
of three, instead of two. I barely made out with an A in this class. I still think that this class is a must-take. It really "whips" you
into shape for Berkeley, and it taught me how to actually code in Python with NumPy, SciPy, Pandas, and other libraries. It might have
been a bad idea to take it so early, however, but I met some of my closest friends through this class. This class also gives you knowledge
that is very useful in EE classes, particularly EECS 16B. I think workload per unit wise, this might be the hardest lower division class at Berkeley. I
still wake up in the night from nightmares about this class.
- Physics 137A: Quantum Mechanics I
Difficulty: 4.5/10
In 5 6 words: Too early in the morning, good
My biggest complaint about this class was that it was too early in the morning (9 AM) in the worst building on campus (Evan's Hall). As a result,
I wasn't able to go to class as much as I liked, and as there were no recordings, I had to read the professor's notes, which thankfully,
were excellent. Homeworks weren't very intense; I spent most of my time doing homework writing them on LaTeX. This was kind of needed, as when
I took the class, homeworks made up around 40% of the grade. Homeworks were often proving theorems or results that were used in class. Exams weren't very easy, but weren't unreasonable. Most of the time, the class
average was around 50-60%, which meant that it would be curved. I think that this class is one of the
people in EE should take, as it provides the foundation for why transistors work. For the homeworks, I would reccomend using SciPy, which
allows you to write code to compute integrals and derivatives. I think that if this class was later in the day, I would have gotten even more
out of it.
- Math 104: Introduction to Analysis
Difficulty: 4.5/10
In 5 words: mathematical maturity, somewhat interesting
Math 104 didn't turn out to be so bad. I came into the class pretty scared, as Rudin is not easy. I guess that 104 did not kill my math dreams, maybe
185 will. I believe that I gained a significant amount of mathematical maturity. I feel that the applications of real analysis are quite
limited, as a lot of the math is established to formalize what one would already know, whereas something like complex analysis has many applications in physics, for example.
It is (completely) likely that I have not learned enough physics to appreciate analysis. Homeworks were sometimes bad; I think that this
was the worst class I've taken in terms of homeworks. Overall, it was a good class, and I would say that it isn't as bad as it is made out to be.
Copyright 2025 - s-n-sharma