Classes @ CMU
Updated May, 2023
Degree: BS in Electrical and Computer Engineering
Classes in magenta are the ones I really enjoyed!
Click on the white arrows to learn more about my experience with each class.
Spring 2023
15-210: Parallel & Sequential Data Structures and Algorithms
- One of my favorite classes at CMU. I love data structures and algorithms
and this class had exactly what I was looking for. It builds on the data
structures from 122 but also has significantly more emphasis on algorithm design.
I just found the theory and proofs remarkable; enough said!
-
This class uses SML (functional programming language) from 150, so make sure
to brush up on that.
-
Warning: this class has notoriously difficult homework and exams; for many of the
programming assignments, you will need to use OH extensively, so don't be afraid to go.
Also, if you do poorly on an exam, don't be hard on yourself: almost everyone else is in
the same boat. The best way to prepare for the exams is to go back to problems and algorithms
you have seen in the lectures/notes/homework and think about how to slightly modify them to
solve a different problem.
15-251: Great Ideas In Theoretical CS
-
One of the best classes at CMU. The lectures covered mind-blowing topics in theoretical CS;
I don't think there was one day this semester where I wasn't in awe at how amazing CS is.
The way the course was structured as well as the fantastic teaching was also a huge plus.
Overall, a must take class!
-
Warning: this class has a very heavy course load and difficulty. Even if you are capable of handling
a lot, it is worth dedicating a lot of time to this class; it will only help you appreciate the material even more!
36-226: Statistical Inference
-
I felt like this was one of the more important and underrated classes at CMU. This class builds upon an intro to
probability class and covers methods of estimation and inference. I would strongly recommend taking this class if
you want to pursue anything in data science/ML. Reading ML papers and research became so much easier after taking this class.
18-220: Electronic Devices and Analog Circuits
-
I'm not much of a hardware guy, but learning about basic circuit elements is important for all things ECE; it was pretty
interesting learning about various circuit elements and how they work.
Supplemental Instructor: 15-122
-
I taught weekly reviews sessions and exam prep for this class.
-
I am really interested in DSA, so I enjoyed teaching this to other students.
-
It's very rewarding because I get to deepen my understanding from when I took this class in the fall.
Notes
-
This was definitely one of the harder semesters I have had so far at CMU. Generally, I wouldn't recommend taking 210 and 251
together because they are both so heavy. But, I really wanted to finish the CS cores sooner so I could take higher level classes sooner.
Fall 2022
15-122: Principles of Imperative Computation
-
This class is split into three main parts: deliberate programming, data structures and C programming
-
It can be pretty weird at first since you have to formally prove the correctness and safety of your code; however,
this makes you much better at writing code correctly the first time and you make less errors in general.
-
My favorite part of this class was learning about various data structures and how they are implemented.
15-150: Principles of Functional Programming
-
My first impression of this class was “Why do I need to know any of this?”. But, I realized that writing code in a
functional way is much cleaner and more efficient, especially if you are interested in parallel programming.
-
It really changed the way I thought about programming, and I use many of the ideas in this class in non school-related programming.
-
Plus, the homework assignments were really fun puzzle-like problems, which I really enjoyed.
18-290: Signals and Systems
-
This class really made me love being an ECE major. Signal processing is a fascinating field (backed by some really cool math) and has so
many applications in machine learning, finance, medicine and much more.
-
I would recommend taking this class even if you aren't an ECE major because most technical disciplines deal with signals in some shape or form.
Supplemental Instructor: 21-241
-
Linear algebra is one of my favorite math topics, so I thought it
would be fun to teach this for a semester.
Notes
-
Many people (including advisors) will tell you not to take 122 and 150 together because both classes are very programming intensive.
In my opinion, I found it very insightful taking them together because they show you how to approach similar problems in two very
different ways. For example, both classes cover BSTs, but the approach to BST implementation and algorithms were so different in the two classes.
Spring 2022
36-219: Probability Theory and Random Processes
-
This class introduces probability concepts that are crucial in both ECE and CS.
-
The homeworks and exams are very challenging, but I highly recommend taking this class early as concepts like probability distributions
and expected value come up a lot in later classes (15-251, 15-210, 18-290…)
33-142: Physics II For Engineers
-
I loved this class! It introduced electricity and magnetism which are fascinating fields of Physics backed by beautiful mathematical equations.
Notes
-
This semester was pretty light as I didn't make it off the waitlist for many of the classes I wanted to get into.
-
I took three other classes which were just to fulfill miscellaneous requirements.
Fall 2021
18-100: Introduction to ECE
-
This class was a fast paced introduction to ECE. I found it difficult in the beginning because I had no exposure to circuits,
but the TAs and Profs understand this and are really helpful.
21-127: Concepts of Mathematics
-
This is the first class in discrete math you will take as an ECE/CS major. If you have no exposure to proof writing
and abstract math topics (like me), it can be pretty challenging initially.
-
What really helped me was redoing proofs from class and understanding their structure and the techniques used rather than memorizing them.
21-241: Matrices and Linear Transformations
-
I really enjoyed this class because I find linear algebra fascinating and could really appreciate the proofs since I was taking Concepts at the same time.
-
Warning: some teachers will focus a lot more on proofs/theory than others, so I would recommend taking Concepts before this class.
21-254: Linear Algebra and Vector Calculus for Engineers
-
This class was pretty interesting since it rapidly covers both linear algebra and 3D Calculus.
-
In hindsight, I would have probably taken 21-259 (Calculus 3) instead since I already took 21-241; also, 259 covers calculus 3 topics in more detail.
Notes
-
I know, taking 4 technical classes in the first semester seems insane, but it wasn't as bad as it sounds (I also love math, so take it with a grain of salt).
-
I would recommend taking 127 (or equivalent) first semester because it opens up a lot of great classes that you take after.
Pre-CMU
- AP Calculus BC
- AP Physics C Mechanics
- AP Computer Science A
- AP Chemistry
- AP Biology
- AP Psychology