+
In keeping with my fellow CMU alumni, I feel obligated to write down a
+record and review of each semester of courses that I took while I was
+an undergraduate, because I have frighteningly little personality
+outside of my education.
+
Here, I am using colors to signify classes that I thought were particularly
+noteworthy. Colored in green will be classes that I thought were
+particularly thought-provoking or well-taught. Colored in magenta will be classes that I thought were life-changing.
+
(Freshman) Fall 2018
+
+- 15-122: Principles of Imperative Computation
+- 21-127: Concepts of Mathematics
+- 21-241: Matrices and Linear Transformations
+- 66-106: Quantitative Social Science Scholars Freshman Seminar
+- 79-104: Global Histories
+- 85-150: Cognitive Science at CMU and Beyond
+- 98-194: (StuCo) Puzzle Hunts
+
+
Extracurriculars: A cappella
+
This semester was a whirlwind of adjusting to college life, having things to do
+outside of video games in my free time, and learning how to learn. In
+retrospect, the workload was far less than what I would become used to later,
+but my ability to take on more increased exponentially over the course of this
+first year.
+
I had never done proof-based mathematics before, so Concepts gets the credit here
+for introducing me to aspects of math that I didn't know existed. While everything
+I was learning was hard, I was also loving the fact that I was learning things that
+I thought were cool and interesting, which I never really got in high school.
+
I definitely also learned a lot from 122, but most of it was just getting
+practice with programming, and practice with actually thinking while
+programming. As an introductory course, it was pretty good, but I don't think it
+was noteworthy enough for a special mention.
+
Generally, the other classes were chores that I tried to get done quickly so I could
+focus on other things. I appreciated Ricky Law's enthusiasm for 79-104 a lot, though.
+
(Freshman) Spring 2019
+
+- 15-150: Principles of Functional Programming
+- 15-381: Artificial Intelligence Representation and Problem-Solving
+- 76-106: Writing about Literature and Art
+- 76-108: Writing about Public Problems
+- 80-251: Kant
+- 85-412: Cognitive Modeling
+
+
Extracurriculars: A cappella
+
I found this semester a lot less cohesive than the last, because it
+seemed like my attention was fragmented between many unrelated things,
+whereas the previous semester just felt like a fundamental core, plus
+a few extra things. In terms of my internal storyboard, this matters.
+
I have some scattered thoughts:
+
+- 150 gets the position as one of the few CS courses I took where I did not fall
+asleep most lectures. I found it very interesting to be learning something which
+was a brand new paradigm that I had never seen before, and it tickled a part of
+my brain which was looking for elegance and beauty, that I began to nurture over
+the course of the next few years.
+- Writing about Public Problems was an unexpectedly good course, where I felt like
+I could write about something which actually mattered. Unfortunately, it was
+only a half-semester course, and by "unexpectedly good", I just mean that I
+spent only a moderate amount of time completing things haphazardly, rather than
+most of the time.
+- I took 381 expecting AI to be something that I would be good at, or enjoy, due
+to being a cognitive science major interested in computer science. I found that
+neither of those things were true, unfortunately.
+- Cognitive Modeling was interesting, but it's where I first began to experience
+dissonance with cognitive science, because it felt to me like there should be
+something more principled than just fine tuning parameters to get models to
+produce marginally human behavior. I began to get quite weary of experimental
+results and approximations -- I wanted something more fundamental.
+
+
(Freshman) Summer 2019
+
This summer, I worked in the HoltLab and Lab in Multisensory Neuroscience, under
+Dr. Neeraj Sharma (under Profs. Barbara Shinn-Cunningham and Lori Holt).
+
This summer, I was working using machine learning to classify EEG data, and
+I worked on an autoencoder to try and capture the essential features for that
+classification task. I learned a lot about practically using machine learning
+libraries in Python, signal processing, and principal components analysis.
+
(Sophomore) Fall 2019
+
+- 15-213: Introduction to Computer Systems
+- 15-251: Great Theoretical Ideas in Computer Science
+- 85-213: Human Information Processing and Artificial Intelligence
+- 85-219: Biological Foundations of Behavior
+
+
Extracurriculars: Alpha Epsilon Pi, TA for 15-150, a cappella
+
I think every waking moment I spent this semester was running to and from 213
+labs, 251 problem sets, and 150 commitments. I spent many evenings in 251 office
+hours. I would not recommend taking both of these courses together.
+
Despite the fact that I had almost no free time, I thought that both classes
+were extremely interesting, and only cemented my interest in computer science
+further. I think this is the semester where I began to realize that I could
+really pursue computer science, that it was something that was within my
+ability.
+
In addition, this was the first semester where I started TAing! 150 was a great
+time, and it was when I started to meet people outside of my friends from
+freshman year and Discord. Overall, I experienced a great tonal shift this
+semester, in terms of my own self-image.
+
(Sophomore) Spring 2020
+
+- 15-210: Parallel and Sequential Data Structures and Algorithms
+- 15-259: Probability and Computing
+- 15-455: Undergraduate Complexity Theory
+- 33-104: Experimental Physics
+- 98-242: (StuCo) Esoteric Programming Languages
+- 98-317: (StuCo) Hype for Types
+- 98-360: (StuCo) GEB
+
+
Extracurriculars: Alpha Epsilon Pi, TA for 15-150, a cappella
+
This semester was the first semester of COVID, so there was an abrupt shift in
+this semester, and towards the latter half I definitely stopped caring as much
+about school.
+
+- Students tend to fall into a bucket of enjoying 213 or 210, and to my surprise,
+given that 210 was in SML, I was in the 213 bucket. It was a fine class, but I
+had better things to do, and I'm not very good at coming up with algorithms, it
+turns out.
+- I was very excited about complexity theory, but I thought we spent too long on
+some topics, and while some other students could appreciate Klaus' detours into
+CDM-level math, I was not one such student, so I learned that the latter half of
+every lecture, I could pretty much not understand.
+- Experimental physics also was unbearable for me, I hate experiments
+(Anderson was great though).
+- Mor Harchol-Balter is great, and so is PNC. I don't enjoy probability (or math
+involving numbers) very much, but she has a way of engaging the audience that I
+found very compelling. I didn't get any chocolate, but I have lots of fond memories
+of the course.
+
+
This was the semester where I completed my transfer into computer science. It was
+a great weight off my shoulders to realize that I was finally free to study
+the things that I wanted to study.
+
(Sophomore) Summer 2020
+
This was the first summer of COVID, so while I had an internship at IBM, I ended up
+doing it remotely back home for the whole summer. This, put simply, kind of sucked.
+I also got a project which was not particularly interesting to me, since it was a
+rehash of a 213 assignment (ProxyLab) in C, and I at no point wrote code which anyone
+actually tested, I'm pretty sure.
+
In addition, I TA'd for 150 and 213 this summer. Originally, the plan was that since
+150 was a half-summer course, I would TA 150 for one half and 213 for the other.
+Unfortunately, nobody actually stopped me from TAing for both, so I ended up
+juggling my internship, TAing for 150, and TAing for 213. This meant some days
+I was in office hours for four hours straight. I would not recommend this.
+
This was also the summer I wrote SML Help (most of it).
+
(Junior) Fall 2020
+
+- 15-312: Foundations of Programming Languages
+- 15-317: Constructive Logic
+- 15-459: Quantum Computation
+- 21-373: Algebraic Structures
+- 80-413: Category Theory
+
+
Extracurriculars: Head TA for 15-150
+
There is precisely one class on this entire list that I felt was deserving of life-changing,
+and that is 15-312. I thought about whether 15-150 should be one, but I only really began
+to appreciate and understand 150 after I took it, while I was TAing, so I wouldn't have
+said it changed my life as I was taking it.
+
15-312 changed my life as I was taking it. Bob Harper's teaching style was so amazingly
+infectious and exciting that, after semesters of being at CMU, I felt like I was finally
+understood. This class showed me exactly the fundamentals I was looking for, with all
+the elegance and beauty that I wanted. I could not think about programming languages
+the same way, after this course. I can recommend no other course more highly.
+
This was probably my favorite semester, academically speaking, at CMU. After a few
+semesters of TAing 150, I had begun to learn snippets and whispers of the programming
+language theory that it hinted at, and this semester I decided to go all in. Bob Harper
+has an idea of "computational trinitarianism", comprised of logic, computer science, and
+math. This was my computational trinitarinism semester. Every class, I felt like I learned
+something which only peeled the curtain of reality back further, and everything was
+wonderfully interconnected.
+
+- Clogic was a pretty interesting class, but it annoyed me that there were so
+many people taking the course purely for the requirement, whereas I was there
+because of my interest. I felt like the course could have been more in-depth
+if not for that.
+- Algebraic structures was terrible, and I could have learned an equivalent amount
+purely out of reading Dummit & Foote.
+- Category theory was very interesting, albeit a little too abstract for me. I
+think I would have gotten more appreciation had it been taught with more of the
+computer science perspective in mind, as I did not have enough background math
+knowledge to really appreciate it.
+- Quantum computation was unrelated to all the PL stuff, but it was actually a
+great course too -- Ryan O'Donnell is a terrific professor. While I am certain I
+will use none of the information I learned in this course again in my life, it
+was a lot of fun.
+
+
(Junior) Spring 2021
+
+- 15-451: Algorithm Design and Analysis
+- 15-539: CS Pedagogy
+- 15-745: Optimizing Compilers for Modern Architectures
+- 15-819: Computational Type Theory
+- 33-114: Physics of Musical Sound
+- 80-514: Categorical Logic
+
+
Extracurriculars: Head TA for 15-150
+
This is the beginning of the end, for my CS education, because this is the last semester
+where I took a significant load. At this point, courses were still remote, for the most
+part, and after the excitement of the previous semester, this selection of courses just
+couldn't measure up. I spent most of this semester procrastinating and burning out of
+my ability to do coursework.
+
+- Bob's grad class was great, but unfortunately due to my lack of motivation, I didn't
+do most of the homeworks. This had the unfortunate effect of ensuring that I learned very
+little from the class, which was not Bob's fault.
+- I also found categorical logic rather
+uninteresting, because I wanted something that was more based in the computer science
+aspects of category theory.
+- Optimizing Compilers would have been a better course, were I not to be so burned out.
+Unfortunately, the prospect of working on C++ fatigued me quite a bit, and I felt like
+the class was more of an algorithms class than the compilers part.
+- 451 was fun at times, but only because there were leaderboards for the fastest submission
+to solve a certain problem, and I took it as a personal challenge to try to beat as many
+people as possible with SML. I think I got top 10 at one point. Otherwise, it was a little
+too theoretical for me at times.
+- CS Pedagogy was something I was interested in, but unfortunately I found it to not
+quite match up to what I was looking for. The course was mainly focused on content
+creation for CS Academy, and while we had a few fun seminars where we discussed
+pedagogical topics, those were rare occasions. I was moreso looking for something
+where we could discuss/learn more science-based techniques to pedagogy.
+
+
(Junior) Summer 2021
+
This summer, I was an intern at Facebook (then called Facebook), working on the Pyre
+team, which is a Python type-checker written in OCaml. I'm pretty sure for the team
+selection form I made it very clear I wanted to work on something functional, and I am
+very glad that it ended up happening.
+
I thought this was a great summer. For one thing, although it was still remote, I was
+able to get corporate housing, which meant I didn't need to be at home. The housing
+was in Emeryville, and no one lives in Emeryville, to be fair, but it was nice to be
+in California nonetheless.
+
I learned a lot about software engineering this summer, and I think this was the most
+essential thing for my career after college, that I had already had experience with PRs
+and Git and writing production OCaml. My project had to do with implementing shape types
+for tensors, so that shape mismatches could statically be caught by Pyre, which I thought
+was super cool. At one point, I got to present my work to Guido van Rossum himself!
+
(Senior) Fall 2021
+
+- 15-300: Research and Innovation in Computer Science
+- 15-411: Compiler Design
+- 15-591: Independent Study in Computer Science
+
+
Extracurriculars: TA for 15-312, Vice President for AEPi, StuCo instructor (x2)
+
This semester, I became Vice President for AEPi, and started doing that as basically a
+full-time job. Compilers was definitely an interesting course, albeit one whose 8am
+lectures I could not possibly wake up in time for, and I enjoyed doing the homeworks
+(and working in OCaml) quite a bit.
+
I started doing a senior thesis this semester, but I ultimately ended up dropping it
+by the spring. I'd spent quite a bit of time debating about whether or not I should go
+to the industry, or pursue academia, and I came to realize that research is just not
+something that I enjoy doing.
+
(Senior) Spring 2022
+
+- 17-355: Program Analysis
+- 79-320: Women, Politics, and Protest
+- 98-008: (StuCo) Shilling the Rust Programming Language
+
+
Extracurriculars: TA for 15-150, Vice President for AEPi, Greek Sing, StuCo instructor (x2)
+
I pretty much took a single class this semester, and focused on Greek Sing for
+the rest of it. Sorry to say that I don't really have much to say, here. I found program
+analysis really quite dry, and spending four weeks on dataflow analysis was a surefire way
+to get me to mentally check out of the class completely.
+
+