CMU Course Reviews

jp jp #personal

A kind of walkthrough of my time at CMU

CMU Course Reviews

Background Information

This post is not a CTF writeup. I was inspired by some other course review websites, so I’d like to give some opinions on my experience (not that it really matters tbh). Also, enjoy my art of Gates-Hillman Center.

Fall 2025

15-112 Fundamentals of Programming

Since I was unable to take APCSA in high school, I had to take this class to fulfill introductory programming. Despite it’s introductory status, the class gets work-heavy at times and the tests can get kind of difficult.

The class is in python and it’s taught by Professor Kosbie, who I’d say is a pretty entertaining professor.

Overall it just covers programming fundamentals of variables, conditionals, loops, functions, lists, etc. and some more advanced topics like animations, backtracking, and recursion.

21-127 Concepts of Mathematics

This is a introductory proof-based course covering basic logic, sets, functions, induction, relations, posets, cardinality, number theory, and combinatorics.

As my first every proof-based class, I had an EXTREMELY hard time with the material. For some reason, I just found it difficult to understand the topics as well as come up with clever solutions during exams.

Thankfully after a lot of OH, and some help from friends, I was able to clutch up and pass this course.

76-101 First Year Writing

Fairly standard writing class. The class focuses on a topic, and you have to just write a couple of essays and a final research paper. This was pretty chill compared to the other courses.

18-100 Introduction to Electrical and Computer Engineering

A highlight of the semester. This class teaches a wide array of electrical and computer engineering topics from basic circuits, logic design, transistors, filters, op-amps, ADCs, data compression and transfer, cryptography, and machine learning.

The labs were truly fun and practical. My favorite lab was ADC (Analog to Digital Converter) lab! Highly recommend even if you are not engineering major. The professor teaching, Jimmy Zhu, is also fantastic.

Notes

  • I was kind of a bum this semester, so I did not really do much outside of class.
  • Not doing good at 21-127 was definitely a wake up call for me that things were not going to be easy.
  • I joined Plaid Parliament of Pwning, CMU’s Capture The Flag team. I played a couple CTFs and solved a couple of binary exploitation problems.

Spring 2026

15-122 Principles of Imperative Computation

One of the CMU courses of all time. Aside from being a data structures and algorithms course that also covers proving safety and correctness of code.

I also had a very very hard time in this class, mainly from the checkin format of the course. The way the course is graded is mainly a minimum between your homework and checkin (weekly quizzes).

I do very bad on the checkins and good on the homework, so I got fried due to min. Aside from that, I liked the programming assignments. But overall for me it was a pretty bleak and sad class.

18-220 Electronic Circuits and Analog Devices

One of my favorite courses. This delves much deeper into circuit analysis with more complex equations to describe electrical components such as MOSFETS, diodes, etc.

It also introduces AC analysis, deeper analysis on filters, small signal analysis, transformers, and oscillators.

The labs were really fun, from a crank flashlight, a TV remote, a switch mode power supply, heartrate monitor, bass audio filter, wireless music, and an RFID system (from scratch!). Definitely a highlight of the semester.

21-241 Matrices and Linear Transformations

A standard linear algebra course. I’ll just list off the topics here since honestly this course was kind of forgettable.

“Topics to be covered: complex numbers, real and complex vectors and matrices, rowspace and columnspace of a matrix, rank and nullity, solving linear systems by row reduction of a matrix, inverse matrices and determinants, change of basis, linear transformations, inner product of vectors, orthonormal bases and the Gram-Schmidt process, eigenvectors and eigenvalues, diagonalization of a matrix, symmetric and orthogonal matrices”.

I think maybe due to my apathy towards this course’s content I didn’t do too well (only got a B), so I kind of wish I did better and cared much more for this course.

21-259 Calculus in 3-Dimensions

A pretty standard calculus in 3D class, covering vectors, derivatives and integrals of multiple variables, and vector calculus. My professor was Tim Flaherty, who was decent, but I didn’t really show up to lectures much. Recitation honestly was pretty good for catching up and reviewing. Maybe due to this, I kind of screwed up the first midterm which kind of cost me an A in this course, especially since I got A’s in the other midterms. Kind of sad, but we move on.

Notes

  • Personally I think I got kind of depressed this semester. It was like every other day where I would just lay in bed in the morning with no motivation, find myself kind of just on autopilot, and overall just feel pretty bad. I think I would just attribute this to not really having positive mindset when it came to coursework, being inactive towards extracurricular activities like research, clubs, and whatnot.
  • This semester also was a pretty confusing time for me, as I was unsure whether I wanted to do security (my focus before coming to CMU), or to find something else to do.
  • Got rejected for 220 TA, which I kind of felt bad about for a bit since I really liked the class.

Summer 2026

18-213 Introduction to Computer Systems

Since I didn’t have an internship this summer, I decided to take this course since it fulfills a core in my degree, and was pretty interesting. This course mirrors CS’s 15213, but it kind of is a bit different. This course covers integer / float representation, ASM, basic memory safety, caches, virtual memory, signal handling, concurrency, and a little bit of networking.

The labs are pretty famous, and they are super fun! I really liked Attack Lab (CTF lab), but the most I guess challenging one for me was Malloc Lab. Malloc Lab was pretty difficult for me because if you are not careful with how you code, things can get pretty out of hand error wise. A lot of it was debugging in gdb and valgrind and having to test what worked and what didn’t. Learned a lot about how dynamic memory allocators worked though, so I guess it wasn’t a waste.

Notes

  • Aside from this course, I also worked a little bit on FPGAs and digital logic, just trying to get some basic stuff down. Nothing too serious, cause I could barely keep up a disciplined schedule when self-learning, but I hope it helped me gain a little bit of knowledge before the hardware classes + some fun projects to work on.
  • Kind of jumped aimlessly from project to project with an FPGA I bought, since I was scared of developing bad habits with writing SystemVerilog by myself, and making something kind of bad, but I think I know what I want to make now.
  • Got on a consistent exercise schedule, which I think helped me from feeling sad.

Fall 2026 (TBD)

Current Thoughts Before Fall Starts:

  • I currently don’t really have high expectations for the fall in terms of succeeding. I know that 18-240 is difficult, and given my track record in grades I might not do well in the class. I really want to get an A, and I will try to get one, but to be honest I’m not sure if I can achieve that. I really want to learn digital systems, so I hope my enthusiasm can push me towards fighting for a good grade.
  • Beginning the process to look for on-campus jobs and / or research. I think I have to find something to do or else I’m kind of just wasting my time here?
  • I hope I can land an internship for summer 2027, I felt horrible not having one in summer 2026, so I really wish I can have the determination to just apply, try to get an interview, and hopefully get an internship? Honestly, my biggest enemy is myself since I know that I probably will get lazy or not motivated to prep / network / apply.

18-240 Structure and Design of Digital Systems

18-290 Signals and Systems

18-021 Intro to PCB Fabrication

21-260 Differential Equations

27-406 Sustainable Materials

17-435 Microarchitectural Security