Thoughts on CMU courses (and reflections on my college experience). Inspired by similar pages.

☆ are the courses I enjoyed and found fun/somewhat useful, ☆☆ are those I also benefited a lot from/thought were worth taking.

Degree: BS in Information Systems + additional major in Computer Science

Background: I entered CMU (Dietrich) with a decent background in humanities and social science, and wanted to study psychology or cognitive science at first. I didn’t have much, if any, STEM background other than several years of experience in Pascal and a little knowledge of Java (from APCS) and Python.

General thoughts

  • Always prioritize your mental health.

  • Grades may or may not matter, but under most circumstances it’s meaningless to stress over it too much, and don’t identify yourself with your grades.

  • I don’t think it’s beneficial to push yourself too hard in terms of course schedule unless you’re a workaholic, a genius, or both.

  • They say college is a good time to explore your real interest, but I do think one should think about career goals rather sooner than later. I regretted not doing it earlier.

  • Imposter syndrome is no joke, especially at a school like CMU. Just keep in mind that people always share their achievements more than their failures and struggles.


Fall 2021

Courses

  • ☆☆ 15-440 Distributed Systems
    • Go is a cool language and it’s been growing on me over time. The three major projects were also cool - P1 was the hardest, P2 was only slightly less annoying, but P3 was rather chill. P1 and P3 were group projects. Read more about the projects here.
    • Interesting course content and I liked it in general - I also had a good teammate which helped. Pretty stressful course schedule during the first half of the semester though, and I definitely spent more time than I heard people say it would take.
  • ☆ 15-459 Quantum Computation
    • Took this course because I’m interested in the topic and it’s purely about the CS and math aspects (no physics involved - yes I hate physics).
    • Turned out to be way harder than I expected - guess I’m just not a theory person. Still really rewarding though, and Ryan O’Donnell is very nice, so I’m glad I didn’t drop it (even though I ended up with a suboptimal grade).
  • 67-262 Database Design and Development
    • First half of the course (SQL basics) was entirely a review for me, pretty boring. The second half was about some conceptual stuff about relational databases and MongoDB, which was somewhat new, but still pretty boring.
    • Raja is a good professor though.
  • ☆ 76-270 Writing for the Professions
    • Very flexible topic choice for all the projects (except the first one, which is job application materials) and I enjoyed working on (and put a lot of effort in) all of them. Peter Mayshle is also very chill.
    • Would have benefited from the course even more had I taken it in my sophomore year.
  • (TA) 15-210 Parallel and Sequential Data Structures and Algorithms
    • I originally wanted to TA 15-213, but Charlie asked me if I was interested in TAing 210, so here I am.
    • I enjoyed teaching students algorithms and problem solving techniques, but not so much debugging their code (I guess it’s lucky that I didn’t end up TAing 213).
    • Received pretty good feedbacks and was also able to gain a much deeper understanding on the course content myself. Overall rewarding experience.

Major: Decided to get an additional major in CS.

Workload: heavy at some point but manageable in general

Reflections: I am still mad about the IS department not letting me take 67-272 and 67-373 together next semester, despite my strong academic standing and proposal to take another CS class before that, which is definitely harder than 272, hence enough preparation for 373. So I cannot graduate in three years because of this one course, which is pretty stupid. Ironically the IS department always says they pride themselves in the flexibility of their program, LOL.

Therefore I made up my mind to get an additional major in CS. But this also means I totally could have just taken more CS courses and tried to transfer into SCS in my sophomore year instead… (I still can, but at this point where I’m on track to finish both majors in four years anyways, it’s not worth doing so anymore.)


Summer 2021

Other Committments

  • Interned at Amplitude as a backend software engineer. Very rewarding, helped me learn a lot as an SWE and feel more prepared for the industry.


Spring 2021

Courses

  • ☆☆ 15-213 Introduction to Computer Systems
    • Pleasantly surprised by how much I enjoyed the course content, even though it was rather challenging and I didn’t quite remember how to program in C at the start of the course. It also made me interested in computer systems.
    • Working through the labs improved my programming skill by a lot - I liked every one starting from Attack lab. It became more time consuming starting from Malloc lab but was definitely worth it.
  • ☆☆ 15-388 Practical Data Science
    • Another very useful course for people interested in data science, requires rather solid Python skills and focuses heavily on application (as the name suggested). Decent workload. Zico Kolter was very flexible about project topics which was great.
    • Covers all the major aspects of data science (collection, modeling, etc). The statistical and machine learning modeling part has some overlap with 36-290.
  • 67-250 The Information Systems Milieux
    • First half of the course focuses on the business aspect of IS, with a lot of case studies and theoretical/methodological stuff. I hated it, and the Tesla case study project took me way too long to finish.
    • Second half of the course is an introduction to HTML/CSS, JS and SQL. A good overview and fairly easy. The final web dev project did make me realize how much I hated front end stuff though.
  • ☆ 36-315 Statistical Graphics and Visualization
    • Teaches you how to make decent statistical graphs in R and think critically about them. Also covers the basics of data analysis. Some overlap with 388, very chill workload.
    • Zach Branson is a very nice professor who is willing to make quick changes according to students’ feedback.
  • 65-203 Applied Quantitative Social Science II
    • Second year seminar for students in the QSSS program, featuring a lot of guest lectures. A good chance to learn about all the cool social science research going on in Dietrich and connect with peers.
    • I was slightly upset about not being able to attend the seminar synchronously because of time difference.
  • (SI Leader) 21-241 Matrices and Linear Transformations
    • Co-leading the SI session with someone else somehow made it less fun for me. Also had less attendance comparing to last semester.

Major: Transferred into information systems.

Workload: moderate

Reflections: I should have transferred into SCS instead of IS. I still feel fine about my decision, but given a second chance I would definitely choose differently.


Fall 2020

Courses

  • ☆☆ 15-210 Parallel and Sequential Data Structures and Algorithms
    • After 15-150, I thought I would hate this class, but learning algorithms and solving problems functionally turned out to be fun. SML also became more tolerable when you’re not only learning about the language itself.
    • I’m not really a theory person, and my brain still doesn’t quite work functionally, so I had to put in quite some effort, but it was really rewarding.
  • ☆☆ 36-290 Introduction to Statistical Research Methodology
    • A research training course for sophomore statistics students. Highly recommended if you’re interested in doing statistics or data science stuff - extremely useful.
    • Heavy focus on application of statistical learning methods (supervised and unsupervised), with a lot of programming in R.
  • ☆ 36-350 Statistical Computing
    • A good course to practice R fundamentals and common libraries for data analysis, and learn some slightly more involved topics (simulation, optimization, etc). It helps one become decent at programming in R with a very reasonable amount of effort. Some overlap with 290.
    • Last few weeks were about SQL basics which is also useful.
  • 36-401 Modern Regression
    • This course seriously made me question my major choice and pushed me toward transferring out of statistics, although it’s obviously not the most important reason.
    • Don’t think I remember a single thing about the course content other than it being boring and feeling meaningless to me.
  • 79-104 Global Histories
    • The topic was genocide and weapons of mass destruction. Fairly interesting.
    • I enjoyed all three required books: Ordinary Men (Holocaust), Machete Season (Rwanda genocide), and Thirteen Days (the Cuban Missile Crisis).
  • (SI Leader) 21-241 Matrices and Linear Transformations
    • I applied to be an SI leader after my first semester because I wanted to lead 21-127, but I ended up being assigned to 241.
    • Put a lot of effort into it and got pretty good student feedback.

Other Committments

Major: Still stats ML, but applied to transfer to information systems.

Workload: a bit heavy at the beginning due to projects

Reflections: I finally thought about my career path seriously, and leaned toward software development rather than data science as I used to, despite having zero development experience. Hence, I started working on various web projects and applying to SWE internships. Also, I really wished I had reconsidered transferring to SCS - it would have made my life easier.


Summer 2020

Courses

  • (Summer 1) 15-150 Principles of Functional Programming
    • Didn’t particularly enjoy learning SML - it (plus various other reasons) kind of discouraged me from transferring to SCS.
    • Way too fast-paced since it was only six weeks - the idea of functional programming was somewhat cool, but it was too novel a perspective for me to be sufficiently comprehended in that short of a time. I think they changed it to be 12 weeks in summer 2021.
  • (Summer 1) 36-225 Introduction to Probability Theory
    • Fairly easy and fun, quite some useful knowledge and practice for probability fundamentals.
  • (Summer 2) 36-226 Introduction to Statistical Inference
    • Relatively easy with some annoying math, but I didn’t quite like the content.
  • ☆ (Summer 2) 33-124 Introduction to Astronomy
    • Perfect course for people who are interested in astronomy but don’t want to deal with the math or physics aspect of it too much. As someone who hates most natural sciences, I liked it a lot.

Major: Still stats ML, planning to get a CS minor.

Workload: summer 1 was pretty heavy, summer 2 was chill

Reflections: Worst semester in terms of mental status, resulting in many decisions that I later regretted. I was on track to graduate in 2.5 years, but that also pressured me to immediately think about my career goal, which was stressful.


Spring 2020

Courses

  • 15-122 Principles of Imperative Computation
    • C (well, C0) is hard. And annoying.
    • Lectures were a bit boring, although I did learn a lot, especially when it comes to data structures. Writing contracts and invariants and proving correctness was also somewhat interesting.
  • 21-241 Matrices and Linear Transformations
    • Took it with my 21-127 professor Irina. I like her lecturing style, and the content was easier comparing to 127 - although also slightly less interesting.
  • 76-101 Interpretation and Argument
    • Took it with my 76-100 professor Keely Austin. The topic was virtues, which was also slightly less appealing to me.
    • Heavier focus on analysis and writing techniques comparing to 76-100.
  • 73-102 Principles of Microeconomics
    • I thought I was interested in economics until I took this course - it’s not the course’s problem though. It’s fairly easy, also James Best is humorous and teaches well. Quite some overlap with AP Microeconomics.
  • 99-251 Seminar for Supplemental Instruction
    • Back then, to become a Supplemental Instruction/Excel leader, one needs to take this training course. Not sure if it’s still the case after the academic development department was restructured.
    • Practices some basics of teaching for collaborative learning, supporting academic development and stuff. A good break from schoolwork.
  • ☆ 98-182 (Student Taught Courses) Billiard Games: From Noob to Pro
    • Very fun and I enjoyed a lot. Pretty unfortunate that in-person practice was disrupted because of the pandemic.

Other Committments

  • CMU Overwatch team

Major: Declared statistics and machine learning.

Workload: light

Reflections: Anxiety hit me hard since the start of the pandemic in China, since my parents were there. Later in the semester I stopped playing for the Overwatch team because I couldn’t handle anything remotely intense or competitive.


Fall 2019

Courses

  • 21-127 Concepts of Mathematics
    • I’m not really a math person, but I found the content decently interesting and useful in many future courses.
    • First 1/3rd of the course gave me a rough time because I wasn’t very good at writing rigorous proofs. It got much easier for me after the first midterm.
  • 36-202 Methods for Statistics and Data Science
    • I wasn’t yet a statistics person at that time, but also found the content engaging (definitely more than AP statistics). A very easy course that covers quite some important fundamentals of statistics and provides a little R exposure.
    • Gordon Weinberg is a good instructor and a nice person.
  • 76-100 Reading and Writing in an Academic Context
    • The topic of my section was linguistic identity. As a bilingual I was pretty interested in it and found many readings relevant and relatable.
    • I did hear that we had more low-stake assignments comparing to other professors’ sections though…
  • 66-106 Quantitative Social Science Scholars First Year Seminar
    • Covers the basics of social science research with quite some R exposure - some overlap with 202.
    • Mark Patterson is so nice. The seminar was also a good chance to know other peers in the QSSS program - most of us actually lived in the same dorm.
  • 15-112 Fundamentals of Programming (Dropped)
    • I didn’t need to take it, but I was worried that my programming fundamentals was not solid - I barely remembered anything from APCS.
    • Dropped it five weeks into the semester because I was struggling in 127 and wanted more time, also the course annoyed me more than it benefited.

Other Committments

  • CMU Overwatch team

Major: DC undeclared, leaning towards statistics by the end of the semester. Due to various reasons, was also considering transferring to SCS.

Workload: light once 127 clicked

Reflections: In hindsight, I should have just taken 15-122 this semester. But the transition from high school to college in another country turned out to be harder than I expected, so I don’t completely regret not pushing myself harder.