Inspired by these similar pages.

Degree: BS in Computer Science, concentration TBD

Background: I entered CMU with a bit of programming experience (poorly taught APCSA, self-taught Python), and some competition math experience (AMC and related things). I did IB/AP in high school.

☆: Courses which I especially enjoyed and/or thought were worth taking.

!: Courses which were particularly time consuming for me.

Spring 2022 (Preliminary)

  • TA: 15-210 Parallel & Sequential Data Structures and Algorithms
  • 15-251 Great Theoretical Ideas in Computer Science
  • 15-462 Computer Graphics
  • 15-458 Discrete Differential Geometry
  • 85-241 Social Psychology

Other: TBD

Workload: TBD

Fall 2021

  • ! TA: 15-112 Fundamentals of Programming & CS
    • ☆ It was really fun to teach in person, and I made many good friends with other TAs. I had mixed feelings about TAing again at the beginning of the semester, but I’m glad I stuck through with it.
    • It’s easy to overwork yourself without realizing / out of caring too much when TAing for this course in particular– I don’t think this is true for all CS courses, after talking with other TAs.
  • ! 15-213 Introduction to Computer Systems
    • ☆ I thought the concepts were cool/useful, and labs were difficult but rewarding to finish.
    • I found this class to be poorly organized though– lectures can be hard to follow if you have zero systems background, and support for labs is terrible.
  • ☆ ! 15-210 Parallel and Sequential Data Structures and Algorithms
    • I really enjoyed this class, despite not having great intuition for its content (not great at theory, no competitive programming background). The different algorithms, data structures, and algorithm design techniques were all really cool.
    • I found exams and labs to be really hard.
  • 36-218 Probability Theory for Computer Scientists
    • Not a good class if you’re looking for a strong grounding in probability. The content is poorly motivated and tedious (mostly rote calculations).
    • I would have liked more theory, but I didn’t have enough time/mental capacity to handle 21-325 on top of 213, 210, and TAing. I also wasn’t able to get permission to register for 15-259 for S22 without having taken 15-251 (although people have gotten approved for it before).
  • ☆ 60-220 IDeATe: Technical Character Animation
    • Pretty cool (and time consuming) class– you learn about classic animation exercises and build up your own character animation reel over the course of the semester using Maya.
    • I think people typically take this class after having taken 60-125 (which I had not), and so I struggled with random Maya/animation things throughout the semester, though everything turned out okay.
  • (Dropped) 21-325 Probability
  • (Dropped) 21-360 Differential Geometry of Curves and Surfaces
    • Seems interesting, but my schedule was already too heavy, and I felt poorly prepared to take it without any real analysis background.

Other: Penrose team meetings (dropped), internship applications

Workload: heavy, sometimes death


  • Having felt fine about 122 and 150 content, 213 + 210 together was still really hard for me (remote to in person transitions, 20 hrs/week of TAing, getting sick didn’t help). I was pretty much always stressed and working on either one during the semester, with little to no free time. It’s doable with good time management (starting early on both, staggering the labs on different weeks, not staying stuck for too long and going to OH), although that doesn’t mean it’s a good idea.
  • I would have tried to take 60-125 rather than 60-220, if it didn’t conflict with 213. Scheduling animation/ideate classes is hard…
  • Thought about looking into graphics, systems, or algorithms concentrations after this semester.

Spring 2021

  • ☆ ! TA: 15-112 Fundamentals of Programming & CS
    • Took a lot of prep time, at least for my first time TA-ing. TP mentoring was by far the hardest part. Teaching recitation, helping students during OH, grading sessions, planning puzzle hunt, and leading a 3D graphics mini lecture was all fun (and stressful). Non-TP weeks were around 13-15 hrs/week, TP season was ~18 hrs/week.
  • ☆ 15-122 Principles of Imperative Computation
    • Programming assignments were fun, though exams and the constant stream of work were sometimes stressful.
  • ☆ 15-150 Principles of Functional Programming
    • Functional programming is very clean and useful in actual codebases. There is a bit of introduction to programming language theory as well.
    • The TAs for this class are really nice. Functions are values!
  • ☆ ! 21-268 Multidimensional Calculus
    • Pretty challenging, as it was my first time taking a multivariable calc course. Some proofs with matrices and a little bit of real analysis (although I heard the rigor of this course depends heavily on the professor).
  • 73-102 Principles of Microeconomics
    • Weekly psets, open-note exams (at least during covid). Not too bad for a cat 2 humanities elective.
  • 02-261 Quantitative Cell and Molecular Biology Laboratory
    • Pretty chill, had some short programming assignments in Python. A decent option for the SCS lab requirement.
  • 05-120 Introduction to Human-Computer Interaction
    • Survey course of different research areas and techniques within HCI, with a lot of group discussion and design-oriented projects.

Other: GCS project (dropped), some personal/family issues

Workload: moderate - heavy


  • I overdid it for myself this semester with 5.5 classes and TAing, although I don’t regret getting a humanities and lab requirement out of the way.
  • I do wish I had taken 60-125 over 05-120, as I didn’t end up liking HCI as much as I thought I would initially (although the workload of 122/150/268/TAing on top of a project class would probably have been too much for me).
  • I decided to take 21-268 over 21-259 after Mackey mentioned that some theoretical understanding of multivariable calc would be useful for some computer graphics content (which I found to be true). I think it’s probably worth taking for some theoretical understanding of certain AI/ML topics as well (although people are fine w/o it)..
  • I wish I had talked more with and befriended other TAs, especially for my first semester TAing as a freshman.

Fall 2020

  • ☆ 15-112 Fundamentals of Programming & CS
    • ! Making a term project was mostly fun. Incorporating some 21-241 lecture material (change of basis, perspective rendering) was cool (and janky as hell).
    • Great course for getting comfortable with coding and for building a strong foundation for 15-122, 15-150. Weekly FCE goes down significantly (~10-12) if you have prior coding experience, expect during term project season.
  • ☆ ! 15-151 Mathematical Foundations of Computer Science
    • Introductory proof writing + discrete math, and also my hardest class freshman fall.
    • A background in competition math definitely helped– I wasn’t that good at it, but having done AMC/AoPS style problems before, I did better than I expected.
  • ☆ 21-241 Matrices & Linear Transformations
    • My first linear algebra class– I thought it was well taught, with basic proofs and many interesting applications (SVD, Markov matrices, perspective rendering, hamming code, spectral clustering, pageRank, etc.).
    • I struggled to wrap my head around concepts until the very end of the semester.
  • 76-107/8 Writing about Data/Public Problems
    • Light and chill first year writing options, standard reading/discussion/essay assignments.
  • 07-128 SCS Freshman Immigration Course
    • Introductions to different majors/concentrations and departments within SCS.
    • Probably would have been more fun to talk with other SCS freshmen and faculty in person :(
  • 07-131 Great Practical Ideas in Computer Science
    • Useful for learning terminal/git basics, which I didn’t really know before. TAs were all nice SCS upperclassmen with cool presentations and advice.
  • 98-127 StuCo: Game Creation for People Who Want to Make Games

Other: worked on LIMINAL with Game Creation Society, internship/research applications

Workload: mostly moderate


  • I found the perspective rendering content of 241 and the 3D graphics-ish programming I did for 112 interesting, and decided to look more into graphics research/classes at CMU.
  • I wish I talked and worked with more people in my classes, particularly 112 and 151.