The semester is over and I didn’t go home for winter break because I have so much to do. In the last few months, my writing career got pushed to the back burner so I could survive my classes (four technicals, all on grades…the most I’ve ever taken), so I opted to stay on campus instead to meet my deadlines and work on projects I’ve been dreaming about. Right now, I’m sitting in Hayden Library, watching the sun sink over the Charles River, and even after so many years here, the beauty of Cambridge in winter still astonishes me. Okay, the air is spicy and the sky darkens much too early, but I love the aesthetics: children in knit caps, sunshine on frost, rough-hewn tree branches. It’s New England romanticized, I know, and aesthetics are not so interesting. But maybe I’m in a sentimental mood.
I wanted to give some thoughts on the classes I took this semester. Please note that these are only my opinions and I have my own context and career goals, so they might not accurately reflect others’ experiences.
6.390 Introduction to Machine Learning
I generally liked this class, but I didn’t like how “black box” some of it was. Maybe this is how I feel about computer science classes in general; as a math major, I feel like a lot of concepts or techniques don’t get adequately proven, and there’s some level of “just trust that this works.” But I like how this class had a flipped-classroom model, where we were expected to do readings outside of class and then spent recitations and labs applying the knowledge, and I liked learning about different machine learning topics. This class offered a broad survey into a variety of techniques within ML, which I found interesting. If I have any regrets about this class, I wish I had put more time into truly studying the subject, since I found it was easy to “get by” by just doing the problem sets without actually understanding the material on a deep level.
6.4100 Introduction to Artificial Intelligence
Oof, I took this class because I needed another computer science credit, and I figured since I was taking Machine Learning already, this class would be pretty chill. But I really found this class to be all over the place. Problem sets and quizzes were often poorly written, a lot of the quiz questions felt pointless because they asked us to implement algorithms by hand (but wouldn’t we code them in real life?). I didn’t end up investing a lot of time in this class. If I could choose my courses again for this semester, I think I would’ve just taken something else instead.
6.1120 Dynamic Computer Language Engineering
This class was so cool but so hard. When my friends heard I was taking this class, they were like, “Dude, don’t do it, that class is so hard.” I also came into this course with a lot less coding experience than my peers; at the time, I hadn’t even passed 6.101 (Fundamentals of Programming), for reasons I’ll go into more later. This class was difficult. It was a crash course in C++, a bootcamp in writing vast amounts of code, and a low-level look into dynamic computer languages. But I really like performance optimization and that’s what I want to eventually focus on, so this class was absolutely worth it. I ended up devoting a lot of time in this class, and many days, I would be the only one in office hours. But I ended up learning so much! Bless my teammates Richard L. ’23 and Amy L. ’23 for being so incredible and really carrying the group project. If I have any regrets about this class, I would start earlier and also read the assignments more carefully.
18.404 Theory of Computation
I love this course and the lecturer, Michael Sipser, is amazing. (My friend, Robert C. ’23, once interviewed him and found out that Professor Sipser spends up to 15 hours preparing a lecture.) The only thing I didn’t really love was that I felt like it lacked some of the rigor that I would expect from a math course, but I understood that the audience was full of non-math majors so it made sense that it wasn’t as proof-y as some of my other math classes. I don’t think I’ll end up doing too much theoretical computer science, since my main interest is in systems and optimization, but this was a great class full of really fun problems. If I have any regrets about this class, I wish I put more time in and studied harder for the final, which was a really brutal three hours exacerbated by the all-nighter I pulled.
6.101 Fundamentals of Programming
So I took this class last fall, but due to health issues, I ended up OX-ing it, meaning I didn’t finish the classwork required to pass. So I had to do two of the problem sets this semester. Honestly, doing this class again after all the experience I’ve gained within the last year really demonstrated how much I’ve learned from my internship and coursework, as it felt so much easier this time around. It felt so rewarding, because it meant I had grown as a software engineer. I’m relieved I’ve finally been able to complete this class.
6.8370 Computational Photography
I only stayed in this class for about a month, but I’m including it since I did do like three of the problem sets. Honestly, I just felt like this class wasn’t teaching me anything I really wanted to learn, since I’m not that interested in algorithms for imaging, so I dropped it. However, it is a chill class since it is all problem-set based, and the immediate feedback loop of seeing your code’s visual output is dopamine-inducing, so I would recommend this class for people interested in this area!