And… I’m back with some more CMU school-related content. I just finished my spring semester about a month ago so these classes are still pretty fresh in my mind. I should say beforehand that the spring semester is where classes for freshmen start to diverge ever so slightly based on each person’s interests and intended major. As for me, I declared as a Computer Science major this spring opting to not do the Comp Bio or AI major so the classes I’m choosing to take start to diverge from what the other two majors require.
76-101 Interpretation and Argument
Interpretation and Argument, just called “interp”, is a required writing course for all first-year freshman at Carnegie Mellon. Every one of us is required to take it either our first semester or second semester of freshman year. Because I opted to not take it my first semester, I took it in the spring. I was lucky enough to have an early registration time so as to choose a topic that I liked: Virtue and Violence. Unfortunately, the class didn’t exactly meet my expectations because it focused a lot on basic writing mechanics rather than doing a deep topical dive into readings and writings about ethics and virtue. Speaking from my experience, I feel like choosing a section of interp for a particular topic area doesn’t really matter too much because it seems like it is not strongly emphasized in the class. If anything, the workload between sections depends much more on the Professor teaching than the topic itself. If you’re accustomed to writing 5 page papers, research papers, and doing paper presentations in high school then this class shouldn’t be too difficult.
73-102 Principles of Microeconomics
I took this microeconomics class just to fulfill one of my humanities requirements and because two of my other friends were also planning on taking the class. I don’t really have much more to say beyond that. It’s pretty comparable to any AP Microeconomics class you might have taken in high school. I thought, heading into my freshman year, that I would do a business minor for sure, but I’m still looking at some other minor options right now.
15-150 Principles of Functional Programming
What’s SML you ask? Well, 150 tells you all about that. It’s the first functional programming class that you encounter at CMU and will throw you… for a loop initially if you’ve never seen SML because… well you aren’t actually allowed to use for loops or any kind of loops for that matter. (Bad pun, I’m sorry 😓) My opinion of 150 might be more of an outlier compared to some of my other classmates because I personally didn’t enjoy the class as much as I hoped I would. We had an awesome professor the semester I took it, but I kind of wished I could have learned more from perhaps conceptual problems rather than predominately programming ones once every week. Otherwise, the pace of the class is quite manageable with the exception of one or two particularly challenging weeks of material. I’m sure my apprehension towards the class was also in-part my fault as I was a very big fan of 15-122 and frequently got frustrated knowing the imperative solution to a problem instantly but not quite seeing the functional solution as quickly. Overall, I still definitely think it is a great class with interesting ideas and material and I’m really glad that I took it. I encourage anyone taking it for the first time to still keep an open mind about the class and you might just discover that you actually love the functional way of programming. Also, I’m sure in your time at CMU you’ll find yourself in a conversation at some point with someone who will rave super highly about functional programming (p.s. but still, functions are pointers).
15-251 Great Ideas in Theoretical Computer Science
The delay in my writing of this blog posts was because of this class in particular, 251. I have so many different feelings and emotions about this single class that I’m still struggling to put into words a summary of my experience with this class, but here goes my best attempt.
This class was the bane of my existence for the entirety of my spring semester. If you’ve ever taken a SCS tour at CMU you’ve probably heard of this class because part of the tour guide script is to mention that 251 is a class offered at CMU that is so notoriously difficult that you are quite literally *required* to collaborate with other people in the class because the problems are so hard that it’s highly unlikely that you can solve them on your own. And of course, to top it off, it’s very commonly offered as a class for freshmen in their spring semester if they took 122 the previous semester. Many other computer science programs don’t touch topics covered in 251 until at least Sophomore or Junior year. So yeah, even calling this class hard feels like an understatement. I mentioned in my fall semester classes post that 151 tended to not be as challenging because of the overlap with a lot of commonly seen math competition problems, but chances are you’ve never encountered 90% of the topics in 15-251 which makes it all the more hard as a freshman class. This was certainly the case for me. Every week we would be given a ~7 question problem set and every Wednesday night, 3 of the 7 problems would be randomly chosen and we would have to write out the entire proof solution on the spot for those three problems in an 80 minute proctored test room setting. Needless to say, I was a bit of a stress case every Wednesday trying to figure out a few remaining problems last minute or trying to formalize proof outlines and commit them to memory. This class took such a toll on me that I think I’m still shaken up from the experienced and having passed the class that I’m still not entirely sure if it was the worst class I ever took or one of the best. I definitely really enjoyed the content and material of the class significantly more than 151 but I’m not yet sure if that means I should pursue more theoretical CS classes. I guess I’ll figure it out at some point or another. I think what little advice I can give for this class is to find a support system whether that’s your group, friends, TAs, professor, advisor, etc… or all of the above not just to try to get problem sets done, but to prevent yourself from going off into a mental panic every week.
15-591 Independent Study in Computer Science
This course name is another fancy way of saying that I did research for credit this semester. I had contacted the professor I had in 16-161 AI and Humanity over winter break because he also happened to be the director of the CREATE Lab. I emailed him expressing interest in possibly doing research in his lab. After a couple of emails and an initial meeting, I was offered the position to work on the MindfulNest project. You can read more about the project here if you’re interested. Overall I found it a very rewarding break from traditional school assignments to work on a bigger project and put some more practical coding skills to use and I’m really glad I did it.
Sooo that’s a wrap on my freshman spring classes. I personally found this semester significantly harder than my fall schedule despite really only taking 4 classes and arguably already having “adjusted” to college life. But even so, I think it was worth it just because of how much actual material I learned and how much I learned about myself in term of work ethic, mental stamina, and how to push through really hard weeks during the semester. It’ll be at least 6 months before I make another post about my semester classes but I’m definitely planning on doing that so stay tuned!