aqua-ified thoughts

never developed nor fully solidified

MIT first month of classes review

Monday, October 5, 2020, 01:30 AM

This blog was originally named “first week of classes review,” but all of you can probably guess what happened. I was thinking of whether I should postpone this until the first semester ended but figured I have too many things I want to say right now, so welcome to a rant an MIT review! I’m covering everything starting ranging from orientation, classes, COVID-era plans, to my sleep log. Refer to the table of contents below for… contents.

Table of Contents


COVID-19 and Orientation

As you may know, COVID-19 is a thing. (Sad.) Instead of being on campus for my Freshman Fall, I’m at my home in scorching Lampang, Thailand, attending MIT completely virtually. This is quite a bummer, because it doesn’t feel like I’ve turned into a proper, independent college student but MIT has welcomed us incoming freshmen quite well.

The orientation schedule at MIT was similar to what it would normally have been: one week of pre-orientation for fun “discovery” programs and socializing and another week of main orientation for even more events.

While pre-orientation was supposed to be very energetic (because everyone would be in the honeymoon phase with MIT), this year’s was somewhat quiet. I didn’t sign up for any FPOPs (first-year pre-orientation programs), because they required several short essay responses and I didn’t want to relive the college apps season. Luckily, there were some open FPOPs, so I got to see some of the presentations (and quitted ten minutes in). I ultimately spent most of the pre-orientation week planning my classes and setting up Vim and LaTeX for “livetexing.” This turned out to be a worthy investment, not for that I could take notes every class (I stopped after the second week.) but for helping me with quickly writing up problem sets right before the deadline.

Feast your eyes upon my beautiful 6.036 lecture notes sponsored by Evan Chen’s gorgeous LaTeX template. (I’m literally just repeating the MITx notes, though. Oof.)

Orientation week was a lot more packed. I met my advisor and people in my advising seminar, registered for classes, attended more info sessions (Nah, I didn’t.), filled twenty or so interest forms for clubs I’m vaguely interested in, and joined daily orientation group meetings. I’m not a fan of Zoom calls, but considering how easy it is in this situation to stay in my bubble, I decided to just hop in and talk with people. (It was still kinda awkward, though.) Most of my socializing comes from Discord, though. Class of 2024 has a pretty wholesome and cursed community, and I enjoy chatting there a lot. (This happens to be quite an understatement.)


P/NR and THE Plan: “grad classes couldn’t be that bad, right?”

The best thing about MIT is that it really wants its students to challenge themselves regardless of what their backgrounds are. This means the requirements are extremely flexible, and there are plenty of opportunities to place out of easier classes if you think you are ready for more advanced ones. Furthermore, freshmen are on “P/NR” grading system in the first semester, meaning their grades only show up as a “Pass” on the transcript, and if they fail, nothing shows up at all. Second semester is ABC/NR: ABC shows up, while D and F are not recorded. All of this is meant to help students adjust to the rigor of MIT and is very appreciated.

In the next few paragraphs, I will prove beyond any shadow of doubt that I am, in fact, not an overachiever.

Prerequisite graph of classes that are either requirements or look interesting. (Not all of the classes listed here are classes I plan to take.)

Traditionally, students majoring in 6-3 (computer science and engineering) must take two algorithms classes: 6.006 Introduction to Algorithms and 6.046 Design and Analysis of Algorithms. Before taking 6.006, they must take 6.042 Mathematics for Computer Science. Because this is MIT, however, there are students with strong math and CS background who choose to skip 6.042 and/or 6.046. My original plan was also to skip both and do 6.046 first semester.

All was fine and good until I asked one of my friends what they are taking this semester:

And so I checked. 6.854 Advanced Algorithms is a graduate-level class in algorithms. I checked the syllabus and found the class to be very interesting as it continues directly from my current knowledge in algorithms (from competitive programming), while 6.046 seems to repeat a lot of what I already know. 6.854 also does not have high-stakes exams but rather big weekly problem sets. I decided against it.

And then two other people told me they were gonna take 6.854. I didn’t budge. Then…

I didn’t think I was ready for 6.854 because I didn’t have enough practice writing proofs. 6.046 also has a lot of things I can learn from too.

Peer pressure is a strange thing. -proceeds to register for 6.854-

Actually, I decided to also enroll in 6.046 as a “listener” (basically auditing) to gain access to the course materials. My plan was to take both 6.046 and 6.854 concurrently for the first two weeks, submitting the problem sets for both classes. Then, I would decide which one to drop when grades are out. Of course, this meant I had to do double the amount of work for the first two weeks, but it couldn’t be that bad, right? -sounds of utter pain and agony-

I eventually committed to 6.854, though, and I think I made the right decision. Thanks to people who were encouraging me to milk the hell out of P/NR!


Classes Review and Critiques

6.036 Introduction to Machine Learning

6.036 was my first lecture of this strange semester, and it started at 8:30pm1 my time. Tamara Broderick, the lecturer, was superb, so kudos for giving a good first impression to the course! I chose this class because I wanted to gain some experience in the more “practical” fields than competitive programming, and 6.036 didn’t disappoint in terms of content. In the first month we dived right into the fundamentals of machine learning: linear classifier, feature selection, logistic regression, and gradient descents. After this, we’ll get into the more complex topics such as neural networks, reinforcement learning, state machines, and recommender systems. Although the content is quite theoretical, I think it provides a good foundation for understanding some of the more buzzword-y things people like to talk about and build their projects with.

The way this course is organized is that each week we have a lecture on Tuesday, a lab session on Thursday (or Friday) which is largely conceptual, an exercise (pre-class reading) due before the lecture, a 30-minute “nanoquiz” due before the lab, and a big coding homework due before next week’s lab. Obviously, there are many components to keep track of but I think all of them complement each other well in delivering the content to the students. I’ve had a pretty good experience in my lab sessions. My LA (lab assistant/section leader) is very enthusiastic, does a great job teaching us, and is just overall friendly. I’m somewhat frustrated by the coding homework, though, as they sometimes feel like “code and run this algorithm manually ten times and wait for three minutes each and tell us what values you get.” (More info in the footnotes.2)

Regardless of that, I definitely would recommend this course to anyone looking for an introduction to machine learning concepts. Advanced students in CS looking for a more efficient and demanding course might, however, benefit more from self-teaching and working on real ML projects to prepare for grad-level 6.867.

This class me takes about 4-5 hours per week on average (closer to the lower end). I spend about an hour on reading the content, skimming the lectures3 and doing the quizzes, another hour attending lab sessions, and 2-3 hours doing the homework. The homework time might increase this month as we dive into more difficult topics.

6.854 Advanced Algorithms

“Who would’ve thought that without keeping extra information you could still achieve good performance without even balancing your tree? This is what separates the truly great: a few of these lightning strikes of insight during your life are enough to get you into the textbooks.”

David R. Karger

Here it comes. Welcome to 6.854, a graduate-level class taught by none other than David R. Karger himself. Many curious competitive programmers or computer scientists may recognize him from “Karger’s algorithm” for finding a min cut or as the person who introduced the term “consistent hashing.” Here, the content waits for no one as it jumps right into Fibonacci heap in the first lecture, followed by the brilliant analyses of splay trees and a multitude of flow algorithms. We will also check out linear programming, approximation algorithms, and computational geometry later in the semester too.

This is definitely a class I would recommend if you think 6.046 isn’t enough to satisfy your curiosity. I’ve known some of these from my competitive programming career but Karger’s emphasis on the timeline of algorithms research really makes me appreciate the field even more. Karger also hinted a bit at how various personalities advance the field in different ways4. The ideas presented are sometimes just… genius. If he teaches you how to find an MST in linear time to put you in awe and doesn’t tell you who came up with it, look it up on Wikipedia. (Spoiler: It was Karger.)

The structure is rather straightforward: 1.5-hour lectures on Mondays, Wednesdays, and Fridays with huge problem sets released and due every Wednesday. Sounds simple enough. Ends up taking me more time per week than all my other classes combined because Karger definitely didn’t teach us FKS scheme and say, “It only took a few years to figure out how to support insertion. I’ll probably put it on your pset next week.” Problems are pretty fun, though! Some of them are mainly proof-based, but a lot also feel like competitive programming. In total, I put in about 20 hours per week. Thanks to the friends taking this course with me for helping me survive!

This lecture was actually from 2013. I just wanted to insert a picture of him but all his classes this year are just a camera pointing at a whiteboard.

3.091 Introduction to Solid-State Chemistry

My original plan was to take 7.012 Introductory Biology this semester (Biology is part of the requirement.) but I decided on a whim to take 3.091 instead because 1) people said it would be fun and cover more interesting topics than in high school and 2) it wouldn’t have required weekly homework so it would take me less effort than if I were to study and test out of it next semester. Sadly, 3.091 has been rather disappointing.

3.091’s grading is based entirely on weekly quizzes (20%) and monthly exams (4 times, 20% each). Other components—three recorded lectures a week, two synchronous recitations5, and practice homework—are completely optional but are supposedly crucial to our learning. Prof. Sadoway seems like a genuinely caring person and he does a somewhat decent job at lecturing. However, the bulk of important knowledge is actually in the online textbook which happens to be painful to read and contains a lot of serious maths typographical errors. The lectures and the readings aren’t coordinated well, so the lectures can get very confusing. The homework, which is supposed to prepare us for the quizzes, asks us to solve problems that aren’t adequately explained before, and the quizzes turn into an incentive to just read and memorize how to do the homework every Friday. I’ve heard that some people have good recitations but mine’s quality is rather underwhelming: It’s a 45-minute session of “please help fill this powerpoint for me and you can leave” and telling us the problem solutions without explaining anything beyond what’s written. I heard a lot of good things about 3.091 before, so I think this year’s problem might be attributed to changing of the professor and transitioning to online format.

I’ve been able to survive until now only because I have some background from high school and I can bandage the gaps in my knowledge through outside resources. Average time spent per week is 4.5 hours. After the first midterm this week, 3.091 will dive into some of the less familiar solid-state chemistry which will hopefully help me stay engaged. If not, then god bless P/NR.

21M.011 Introduction to Western Music

As the name suggests, 21M.011 explores a wide range of western music starting from the medieval period to the modern era. We get to hear a lot of interesting music, develop listening skills, and learn the terminologies to communicate the features of the music. Although I’m not the kind of person to like “art history” classes, I find 21M.011 very enjoyable because I like music overall and being exposed to a lot of styles of music just feels somewhat fulfilling. 21M.011 conveniently satisfies the communication requirement and might even come in handy if I happen to want to do a music minor in the future6.

Each week we have an hour-long recorded lecture on Wednesday and two one-hour recitations on Tuesday and Thursday (or Monday and Friday). Emily Pollock is a fabulous lecturer who gives us a very well-organized perspective of how western music is being developed. She is very enthusiastic, and she puts in a lot of effort to foster a sense of community despite the class being held online. It’s very clear from her lectures and other communications that she cares about her students and is willing to support in any way she can. If there’s anything, she does speak very, very fast, though. My recitation, led by a very kind professor, Teresa Neff, is also fantastic!

This class is designated “communication-intensive,” so this means I have to write essays for the class. (We have two 1000-word essays, one 2000-word essay with revision process, and three 300-500 personal reports.) However, other than the weeks with essays due, this class has been pretty light. We also have biweekly quizzes which ask us to guess the composers for three mysterious pieces and detail our reasoning process. Those are thrilling but doable with a bit of preparation. I spend about 3.5 hours per week on average (not counting the essays).

Honorable mentions

I actually signed up for a lot of other classes at first but I eventually dropped them because I got accepted into some other classes with lottery or simply lost interest. Also, freshmen are allowed to take up to only 48 units (~4 classes) plus 9 discovery units (~3 classes) anyway. Nevertheless, here are some classes worth mentioning, in no particular order:

  • 24.900 Introduction to Linguistics: I had to attend because I was in the waitlist for this class and 21M.011, and oh boy, Adam Albright was simply amazing. The first greeting we got was him speaking entirely in Ubbi Dubbi and sending us off to figure out how the language worked. The way he presented things just made linguistics seem very fun. Who would’ve expected that “massafuckingchusetts vs. massachufuckingsetts” would become the main topic of the lecture? Though, I got accepted to 21M.011 first and some of the class works seem better suited for on-campus learning, so I’ll probably take this class some time later.

Choose one.

  • 21M.080 Introduction to Music Technology: Same as 24.900, I attended because I was waiting for my waitlist responses. The first lecture didn’t feature much but Ian Hattwick was an enthusiastic lecturer and I think I would really enjoy the course’s content. Might take this class later too.
  • 14.009 Economics & Society’s Toughest Problems: This was a 3-unit discovery class I chose because the topics seemed very interesting. I thought it would be a good idea to be exposed to economics even though I may be a computer science major. Each week we had an hour-long lecture by guest experts on some problems in economics, ranging from corruption to tech industry monopolies. The workload was minimal: attend synchronous lectures, do the readings, write responses occasionally. Though, I dropped the class three weeks in because I had to clear out Tuesday for working on 6.854 homework.

This slide in 14.009 does two things: 1) conveys some facts regarding international trade, and 2) makes people in cursed Discord go crazy.

  • 15.000 Explorations in Management: Also a 3-unit discovery class with minimal requirement. The first lecture was on the United States’s crazy expensive healthcare and it was fantastic. Unfortunately, the lectures were two hours long and I couldn’t afford to stay up until 9 AM for the class so I dropped out.
  • 24.A02 Science & Meaning of Life: This was a 3-unit seminar tied to my advisor. Each week, we would read Alan Lightman’s book The Accidental Universe: The World You Thought You Knew and discuss some philosophical stuff for an hour. While I found the book to be interesting, I didn’t enjoy the discussions as much as I did at Cranbrook, so I decided to drop. Timezone was also a big issue.
  • 6.046 Design and Analysis of Algorithms: I did the first problem sets for this because I wasn’t confident I would survive in 6.854, so I thought I would document my pain here. The problem sets took me just about as much time as 6.854. (The later psets after I left were a lot easier, though.)

Reflections and Looking Forward: “please go to sleep”

All this talk about attending Zoom University doesn’t mean anything until we talk about timezones!

For context, I almost always get full 8-9 hours of sleep every day outside the semesters. The times are, however, not very consistent. I start my breaks with 2-10 am sleep schedule and try my best not to let it shift. Inevitably, I end up sleeping at 3 am, and 4, and 5, and it keeps going. My break’s usually over by that point so I don’t spiral any further.

This year’s different because there’s no in-person college forcing me to sleep like a normal person. I thought my messed up schedule might work in my favor because I could just follow MIT time (11 hours apart), so I did what any sane person would do: sleep at 10 am and wake up at 6 pm. This would be equivalent of sleeping at 11 pm and waking up at 7 am Eastern time.

And so I did. And I failed.

My sleep time starting in September. The top plot marks when I slept. The bottom plot marks the total duration of sleep on that day. For sessions spanning two days, I put all the duration into the second day’s bar. (Credits to @arunwpm for providing me the visualization!)

It turned out to be very hard to sleep when there’s sunlight. Plus, since my time matched other people’s, it was easy for me to just stay up late and chat with people, making my schedule even worse. By the fourth week, I didn’t even bother to sleep properly because the concept of time didn’t make sense anymore and I was just scrambling to finish my psets.

Starting this week, I’m committing to a 2-10am schedule, a.k.a. the schedule that I should’ve followed in the first place. I don’t know why it just only makes sense to me now but this schedule actually works much better than, say, biphasic schedule I might’ve come up with. Here are some pros of 2-10am schedule:

  • I get to sleep at nighttime, which I can confirm does feel a lot more restorative than daytime.
  • I still get to talk to people at 10am-2pm my time or 11pm-3am MIT time, which is somewhat late but still very possible because MIT students stay up late anyway.
  • Works well with my classes which are within the range of 8:30pm til 2:00am. (This is only possible because I dropped all three discovery classes.)
  • If there’s some important meeting, I can easily stay up later than 2am. As long as I still wake up at the same time or do not allow myself to go to sleep later than 2am the next day I should be fine.

I guess that’s it! I’ve totally circled back to where I started at the beginning of September, albeit with more clarity than ever. I know how to deal with timezones. I have a record of how much time I might need to spend on each class. And perhaps, most importantly, I’ve come to accept what my schedule for working on 6.854 psets would be like. Hopefully, these knowledge will help me manage time better and allow me to relax/do other things outside of MIT classes.

It’s still been one month. I can’t wait to see what surprise7 this semester has in store for the next three months.

“This ride only stops in an emergency. Crying is not an emergency.”

  1. Actually 8:35pm because “MIT time” dictates that any respectable classes and events should start 5 minutes late and end 5 minutes early. 

  2. The homework problems are broken into many small, more straightforward and digestible parts, so it does a pretty good job at holding the students’ hands. However, the questions can be downright annoying. For example, we had to compute by hand the result of some algorithms way too many times. Some of the “coding” problems asked us to wrap our head around their badly documented helper functions and run them repeatedly on a large data set just to illustrate that some parameters are better than the others. The homework is too mechanical as we can see many students asking the same questions for which the homework claims to have already helped build their intuition. I personally would love to see this class’s homework elaborate more upon the concepts we’ve learned in class by actually having the students code the algorithms and apply them to real projects, challenging their intuition and warning them of the very real mistakes they can make. Some of the existing homework problems (e.g. digit classification) already have this potential. They just have to stop asking to implement a function that takes in a Numpy array and spits out a column vector representing the sum of each row only to feed it into some mysterious helper function. 

  3. I stopped attending lectures after the first one because it’s faster just to read the slides. Oops. 

  4. Karger definitely didn’t roast his colleagues for using numerical methods for flow algorithms. 

  5. Recitations are like review sessions with the course’s upperclassmen TAs. 

  6. A minor at MIT is surprisingly easy to get. For music minor, you need to take two introductory classes, one history, one theory, one performance, and one more advanced history/theory/performance. Since I am already planning to satisfy the mandatory HASS8 concentration requirement with three classes in music, that means I only have to take three more classes to get a full minor. It’s not very rare to see someone graduate with double majors and triple minors. (Don’t worry. I’m not doing that.) 

  7. Probably some unpleasant ones but I’m optimistic. 

  8. Humanities, Arts, and Social Science