Sophomore Fall Semester Classes at Carnegie Mellon

Hellloo and happy holidays! I’m finally back and on winter break and doing better than ever! Academically, this semester has been my best semester so far so I’ll give you a run down of the classes I took and my thoughts on each of them. Just a quick reminder if you’re new here, I’m a sophomore at Carnegie Mellon majoring in Computer Science with a declared minor in Psychology (but more on that later… 😉)

15-213 Introduction to Computer Systems

Last spring, I had a dilemma deciding whether or not to take 15-210 or 15-213, two of the core classes required for my CS degree. I ultimately ended up choosing to take 15-213 first primarily because the class is entirely based in C and I felt that it would complement well with my job TAing 15-122 Principle of Imperative Computation, which is also a class partly taught in C and a pre-requisite for 15-213 Intro to Computer Systems. Looking back, I think I made the right call choosing to take 213 over 210 first. In my quest to find out which realm of CS I enjoy the most, I do think I am slightly more inclined towards computer systems as opposed to theoretical computer science and this class, for the most part, confirmed that for me. The course structure for 213 is built around seven major programming labs that consist of learning to manipulate bits and bytes, reasoning about assembly code, constructing buffer overflow code injection attacks, building a cache simulator, memory allocator, shell, and server proxy. Through the process of doing these labs, which were by far the main source of my stress this semester, I do feel like I learned a ton about how computers actually work and finally moved past the elementary topics of stacks and queues to begin dabbling in the much more advanced world of computer systems. I would say my enjoyment of this class primarily arises from the satisfaction of learning and feeling as though I accomplished a lot in just 16 weeks. Before this class, the idea of “building” something like a cache felt intimidating and scary, but now I feel more confident in my ability. I also already have plans to take 15-440 Distributed Systems as a follow up to this intro systems class and I’m definitely looking forward to it.

36-218 Probability Theory for Computer Scientists

Carnegie Mellon, being a top CS, Math and Engineering school, offers a lot of options for probability classes that students can take to fulfill their probability requirement. Unfortunately for me, I didn’t have any of these options. Because CMU decided to not recognize my multivariable calc class in high school, and all the probability classes but one required multivariate calc, 36-218 Probability Theory for Computer Scientists was the only probability class available to me if I didn’t want to spend an extra semester retaking multivariate calc (… and I didn’t). So that’s how I ended up taking this course this past fall. Despite being named a class “for Computer Scientists” I don’t think the course does a great job of linking how probability is important or relevant to Computer Science, causing the material taught to feel rather dry. I’m hoping my machine learning class next semester will do a better job revealing why this class is supposed to be relevant to my set of skills as a CS major but I still think that 218 is the best option for anyone who doesn’t want to have to retake multivariable calculus and overall I had a quite positive experience interacting with the TA staff who were always very helpful and patient.

85-241 Social Psychology

If you’re going to take any GenEd humanities requirement at CMU, I highly highly recommend Social Psychology with Kody Manke. This class was hands down my favorite class this semester and I would genuinely look forward to every single class lecture. The professor I had for the class was incredibly engaging and dynamic in his lecture. We covered a very broad range of social psychology topic areas ranging from pro-social behavior to attitudes and social cognition. My friends can confirm that I’ve been actively trying to convince them to take this class at some point just because I had such an amazingly positive experience. You may also recall that in some previous blog posts that I mentioned I was interested in doing some sort of humanities minor or philosophy minor. I much more confidently discovered this semester that my true interests seem to lie within the realm of psychology. The topic areas that I had thought I liked in philosophy were primarily relative to the people related aspects within philosophy and why people act and behave the way they do rather than other topic areas such as logic or free will and determinism. As such, I decided this semester that psychology, or social psychology to be specific, was a closer match to my interest area outside of CS. Thanks to 85-241 I officially declared my minor in Psychology midway through the semester and I’ve already largely planned out the sequence of psychology classes I’ll be taking in the coming semesters. My potential in doing an additional major in Psychology is also possible, but for now, I just plan to focus on finishing the minor first and I couldn’t be more excited about it!

33-104 Experimental Physics

This entire class felt like a flashback to high school science… except I didn’t exactly go to a traditional high school so maybe this isn’t a valid description… Uhhh either way, this class is super popular among CS majors looking to easily fulfill their laboratory science graduation requirement. Despite it being a physics class, the majority of the students in my section of experimental physics were CS majors. Generally, if you don’t have an early registration time, it’s quite hard to get into the class in your first few semesters at CMU. The class is structured such that there is a short lecture segment by the professor who covers the physics and lab experiment instructions before dismissing the entire class into the physics laboratory space to perform experiments and record data. Overall, I thought the class was more than fine for its purposes of satisfying my graduation requirements and its lack of midterms and final exams. My biggest takeaway is probably that I can finally say I did an actual lab science class and had fun with liquid nitrogen which I never did at my online high school… for rather obvious reasons!

80-100 Introduction to Philosophy

I came into this class being quite apprehensive, not anticipating that I would really learn anything new in an intro-level philosophy class that I realistically only signed up for to fill a GE requirement. Still, intro to philosophy was probably the most unexpected class I took this semester. Primarily because the new professor we had teaching had a particularly distinctive course structuring where you could opt to either write two big essays or do a weekly argument mapping homework. Knowing the wordy writer that I am, I naturally chose the first option. Despite my extensive experience with three years of high school philosophy, I had a pretty bad first impression of CMU’s philosophy department from previous semesters. This class and this semester was comparatively a more positive experience. I still didn’t think this class ranked highly compared to my high school philosophy classes. However, overall our professor forced us to take a somewhat fresh approach to understanding philosophy by pushing us to focus on understanding the nuances of articulating an argument and constructing an argument and I did feel like I left the class learning how to write more clearly, but I wouldn’t say this class provided any genuine “aha” moments for me or exposure to any new novel ideas within philosophy given its broad stroke takes on big philosophical topic areas.