What happened

July 31, 2020

I woke up the other day and noticed that I was missing about 7 months of memories. At this point I’m pretty convinced that memory, sense of passage of time, and novelty are closely intertwined and I’m sure there’s research out there to back it up (completely unverified claim). Anyway, what happened? I don’t think my year was particularly eventful relative to its backdrop, but I think it’ll be nice to look back on and might give some nice insight into how not-particularly-interesting people (me) experienced it.


You probably already know the gist of the situation, especially if you’re in the states where due to poor, if not outright malicious decisions made by the current administration exasperated the situation to the point where we’re still in pseudo-quarantine despite other countries having already reopened months prior. This website tells me that today there were 50,000 new cases and 980 new deaths since yesterday. The total number of reported deaths is a bit over 150,000.

To be honest, I vastly underestimated the situation at first as well. In February I assumed that the cases would be relatively contained to China, where claims were made that it was already on the decline. At the beginning of March, one of my professors sent a mass email that seemed to gain notoriety outside the class and even the campus. I think the level of notoriety was a mix people who thought it was over-reaction and those who thought it was a model for how all schools should be reacting. It actually aged quite well. Leave it the Intro to ML prof to make good predictions.

By that time I was pretty convinced that the school would have to close for the remainder of the semester due to the PR risks of any student getting infected, especially those in the dorms. At Cal the housing situation has reached the point where dorm housing is guaranteed only for freshman, and most (if not all) rooms once used for doubles have been converted into triples, perfect kindling for an epidemic. By mid-March the university was closed and all classes were transitioned to online. I only know of one case being reported for a student on campus before everyone moved back, though I would be surprised if that was truly the sole case. In mid-July it was announced that Fall semester would also be completely online.


In Spring I took 5 classes:

  • EECS16B (Designing Information Devices and Systems II)
  • CS100 (Principles and Techniques of Data Science)
  • CS182 (Designing, Visualizing and Understanding Deep Neural Networks)
  • CS189 (Introduction to Machine Learning)
  • CS375 (Teaching Techniques for Computer Science)

Thanks to COVID-19 I ended up taking all of these classes on a pass/fail basis, which was nice since a pass in the class this semester would still count towards the degree where normally a letter grade would be required. For many of these classes this was a huge stress relief since for all of them I was already nearly at the threshold to pass the class by the start of April, and so could focus on my own housing and work situations without having to worry about throwing off my degree schedule. I will say, the administration took much longer than it needed to in order to make this decision which I think caused quite a bit of undue stress.

With respect to variety, yeah, I took all CS courses this semester (the past three semesters, in fact). At this point I’ve completed almost all of my non-CS requirements and if I had taken a single philosophy course with nothing else I could’ve graduated this semester. But, I’m under the impression that university is the last major chance I’ll get to pick up all of these things so I figured I might as well keep churning through what the department has to offer. In hindsight I sort of regret taking ML track courses (CS100, CS182, and CS189) since the main thing they taught was that I like systems stuff way more, but I think I would’ve ended up taking them eventually anyway for Data Science requirements.


I didn’t even remember I took this class when I made the list above and only recalled it because I knew I had taken 5 classes and one was missing. I think this is largely due to having taken EECS127 before this class, which is the reverse of the recommended order. Most of the linear algebra in the class was a strict subset of what 127 covered in far greater depth, and the circuit stuff was tricky (I self studied what was supposed to be learned from EE16A) but not impossible. The class has a reputation for its difficulty but I think even if I bombed the circuit topics completely I still could have made it out with a pass just from my linear algebra and calculus background from other classes.

I do think this class is rather poorly designed for freshman (which is supposedly its target audience) given that the lectures seem to be a rushed survey of topics that rarely covered any single with long enough for the average student to get to know the material unless they already had a strong intuition for it beforehand. This seems to be a major symptom of the intro courses (CS61A and CS70 hit the same notes) and at this point I question if the courses are like this intentionally to weed students out, which I really hope isn’t the case.

In terms of handling the transition to online, I believe this was the only course I managed to take a midterm in person for, spaced out and mask clad in a lecture hall. Afterwards the remaining midterm and the final were administered remotely via bcourses, and both times faced major technical difficulties as apparently the infrastructure wasn’t prepped for the load, which was beyond the staffs control. Most of the exams were given a pretty significant curve as well, although I’m not sure if this was general policy or specific to that semester.


CS100, also known as Data 100, is the main data science upper division course which preps students for the rest of their coursework. From my perspective it was a subset of CS189, CS70, and a dash of EECS127 and CS186, all of which I was pretty familiar with by the time their respective counterparts in the curriculum was reached. I admittedly haven’t seen a single lecture for this course bar a guest lecture on data visualization, but I did really enjoy the course’s textbook which I referenced often to see how much depth of knowledge was needed for certain topics.

My somewhat pessimistic interpretation of the class is that if you’ve already gotten familiar with the classes its intended to preface its mostly just an exercise in learning how to import pandas as pd and do neat tricks with DataFrame’s, but I’m very likely in the minority of students taking it in the order that I did. I think the typical student would have a great experience with the class, especially if its their first delve into the topics covered.

During the transition to online the midterm was converted into an online “checkpoint” with a day long window to complete, and the final was converted into an open ended project. I ended up foregoing the final project as I was already well into the pass threshold without it and wanted to focus more on making sure the class I was TAing for wrapped up the semester smoothly.


This class was taught by none other than Professor John Canny, namesake of the Canny edge detector! I discovered this when I read about the Canny edge detector, thought “haha just like the 182 prof,” and then realized it was probably the same guy. The class in general felt like a brief matrix calculus warm-up followed be a sprint through a zoo of neural net architectures and topics. The first half of the class mostly consisted of somewhat outdated slides from Stanford’s CS229, while the second half was a bit more open ended and covered more recent work. I enjoyed the second half way more than the first. The first half was at an odd intersection of mathematical rigor at a level, but pure heuristic and handwaved hacks at a high level, which at this point I’m fairly certain is a reflection of the subject at hand.

I mentioned somewhere above that ML classes mainly taught me that I prefer systems, and to some extent I think its because of the style at a high level. When something works, I like to know why it works, or at least be able to introspect deep enough to get a feel for why it might work. The later half of the class addressed this in its unit on interpretable AI, but even in the field as a whole interpretability seems to often be left as an afterthought. Don’t get me wrong: results are cool and useful! But I think most of the joy I derive from learning is finding out why things work, not finding out that they work.


Reinforcement learning agent (on the right) that I got to work, but that I’m not entirely certain as to why it does work.


For some reason I have the strongest sense of amnesia with this class, likely because a good chunk of the work was frontloaded to before everything moved online and it didn’t have any memorable projects (unlike 182). Another contributing factor is the large overlap with both 127 topics (SVMs, SVD, Gradient Descent) and Andrew Ng’s machine learning course that I took over the summer. I think the most memorable thing from the class was Professor Shewchuk’s mass email regarding covid (mentioned above), and one of his quips during the last in-person lecture:

Lecture Audio: Here’s sort of a classic example where the blue points are the U.S. population in the censuses that happened once per decade going up to 1990. And so somebody has fit a fourth degree polynomial to that data to try to give us a sense of what the population might have looked like in between years and you’ll notice that this has has one glaring surprise in it which is that extrapoloating out into the future it has actually correctly predicted the coronavirus epidemic.

CS 375

375 was more or less a weekly discussion section where all the fellow students were TA’s, and definitey one of the most pleasant and interactive courses I’ve taken in the department. Following the move to online classes each week started with a half-hour to 45-minute discussion of just talking about what was going on with the transition in the classes everyone was TA’ing for. All-in-all I’m impressed as ever with Professor Dan Garcia’s dedication to inclusiveness and teaching as well as his boundless enthusiasm. The other instructors Andrew Phuong and Christopher Hunn also both did fantastic jobs facilitating discussions and bringing in relevant research results and ongoing studies into the mix.


This semester I worked as a 15-hour TA for CS W186: Introduction to Database Systems. This was my first time TA’ing for a Berkeley class so I was pretty excited, although my role on course staff was a bit removed from the traditional teaching experience. Most CS courses seem to have the broad categories of discussion TAs (who lead discussion/recitation sections on a weekly or biweekly basis), administrative TAs (who help the instructors with student affairs, extensions, exam logistics, etc…) and content TAs (who help create and maintain assignments, notes, discussion worksheets and manage autograding). Other classes will occasionally also have readers, who help with grading, though this isn’t the case with 186 where projects are graded automatically and exams are handled by the existing staff.

My role was closest to a pure content TA, although I barely touched the course notes and discussion worksheets. Most of my time was spent on the semester long project: Moocbase. Moocbase is a pedagogical database implementation, i.e. a bare bones database with functionality that can be added throughout the semester by students after each topic is covered in lecture. I helped create a new section for Grace Hash Joins, which was a lot of fun. I was surprised how pleasant it was to extend Moocbase, and while I’m sure some credit goes to the foresight of the original authors I think it might just be a product of traditional RDBMS implementations. Because one of the selling points of database’s are their declarative style of interfacing with users, under the hood things tend to be built around modularity so that the underlying optimizer can mix and match methods to accommodate the predicted workload. I also worked on adding a CLI and parser on top of the existing DB to hopefully make the significance of finishing each project more apparent to students in future iterations of the course.

I demo’d this in the closing lecture of the semester, but given the first few seconds of the recording were me saying “oh no, I’m being recorded” I don’t think I’ll be sharing that :^)

The transition to online was pretty smooth at the start. The W in CS W186 stands for web, i.e. all of our are prerecorded and delivered asynchronously anyway. Since my role was pretty independent of in-person discussion sections as well, I saw almost no impact except for the move of office hours to online and a few hiccups with the autograding system as edX grinded to a near halt at one point from what I imagine was a sudden influx of customers. While we had access to extra tooling (we could now download and execute student code locally to pinpoint problems) the process was a bit slower since at least in my experience because I couldn’t work asynchronously – in normal office hours you can give some advice and then check back later to see how the student has progressed while helping others in the meantime. With remote office hours help had to be given serially, and having to sit in a call watching someone try to livecode your tips is somewhat unideal for both parties involved.

Despite the setbacks, overall it was a great experience and I look forward to returning in for the Fall semester. My biggest takeaway is definitely that there’s so much to be learned from taking another lap through material and that the best way to reinforce knowledge is to practice explaining it to others.

Other stuff

Campus Life

I’ll be honest, I’m not usually on campus since most of my classes are webcast so the closing of the main locations wasn’t super impactful for me. Two major things for me were the closing of the RSF (the campus gym) and dining halls. I’m sure this isn’t uncommon but I’ve been pretty restless, at least physically, during quarantine since access to the gym and going on jogs is far more limited. While the campus dining halls get mixed reviews I’ve always liked them. They were open for takeout to a limited extent after campus closed, but I definitely missed the usual variety and unlimited access to coffee.


I renewed my lease on my current housing in Berkeley for another year before quarantine started, so I’ve been in Berkeley since quarantine started and will be here through May of 2021. I think this ended up working out in my favor since both me and my dad would prefer to remain separate due to the risks of disease transmission, and the fact that I can’t bring myself to be productive while in my hometown ever since graduating high school.


I got into pen plotting, which I’ll probably save for another post. I’ve also gotten a small amount of reading done, although much less than I’d prefer and most of it being manga. The most recent thing I’ve read is the series of short series in Ted Chiang’s Exhalations which I highly recommend.


I’ve been working at Cisco AppDynamics over the summer. It’s pretty neat, and it pays twice as much as last summer which is a cool perk. I feel like I’d have to read what part of the company of the roadmap is public to say more, but reading and writing simultaneously is hard so I’ll probably refrain.


Maybe this should warrant its own section given the importance of the matter, but honestly it feels out of place for my usual writing topics. I guess I’ll briefly leave my subjective experience: as an Asian American the topic of race relations in the US have always been awkward for me. The narrative from elementary to high school is always written in terms of black vs. white, occasionally drawing in Native Americans and Hispanics though those are often marginalized as well. Asian Americans are usually left as a footnote or perhaps as a paragraph for the sole purpose of comparing and contrasting. Even in college the introductory class to Asian American studies felt strangely disconnected from black-white race relations: opportunities for joint protest were often not notable (AA protests in general are thought to be uncommon due to a historical fear of standing out excessively, most notably victims of Japanese internment) and the myth of the model minority created a different breed of harmful stereotyping. I feel like an outsider in these events and I think that’s why I refrain from getting too deeply involved. That said, I am on the side of the protesters and think that police reform is absolutely necessary. As far as I’m concerned George Floyd was publicly executed and the protesters have the right to express their feelings of disenfranchisement and fear through their demonstrations.


May we live in interesting times.

Written on July 31, 2020