UWaterloo CS 3B Reflection

UWaterloo CS 3B Reflection

Here goes another study term spent fully online at home. I went into this term thinking I'm having a pretty chill study terms, oh boy was I wrong… I mean why did I think taking 6 courses was a good idea, SMH. But I'll talk about that in detail later. Oh right also, I spent a lot of time, about two months, grinding out my technical interview skills as I was job hunting like crazy. I’ll talk about this in detail as well. After 20 months spent at home doing online school and remote work, this coming term I'm finally moving out again. In fact I'm writing part of this blog on my flight to SF. I guess I cali-ed, now I hope I don't bust 🤞🏼.

Before I jump into school and co-op related stuff, I unwillingly have to briefly talk about the pandemic situation… Honestly when I was writing my last post around August 2021, I thought the pandemic is coming to an end. As most of Canadians and Americans are fully vaccinated, and the cases were trending lower and lower. However, out of nowhere, in late November, omicron variant appeared. Perhaps it is less severe than delta, but it sure is so much more transmissible than all the previous variants. Like I was just pulling up the case numbers one day, and cases everywhere just seemed asymptotic… For most of the pandemic, only one person I know personally caught COVID, but since omicron's appearance, things have changed. I think everyone including myself is getting really exhausted and tired of this pandemic, when is it really gonna end, if ever… perhaps it is the sad reality that COVID is here to stay, and besides yearly flu shots, we have to get yearly COVID boosters. I've already gotten the booster, but I can totally see another booster coming out in the near future specifically for the omicron variant. Anyways, that's enough of this, moving on!

Courses Review

Let's talk about my courses this term. I’ll go through them one by one.

  • CS 486 - Intro to AI: very breath heavy course, we covered topics like A* search, decision trees, feed forward neural networks, recurrent neural networks, reinforcement learning, etc. As you can tell, these are a very wide range of topics, and when taught in depth, some of these topics require multiple courses just to scratch its surface. Needless to say, we only briefly covered some of the  essential and basic ideas of AI. Although I wouldn’t call this course a hard course in terms of content, it certainly has quite the amount of work. There were three timed test through out the term, plus two quizzes per week, plus four very time consuming assignments. I'd say take this course if you want to know some of the popular techniques used in AI, and using this course to help you narrow down the particular method that you are interested in learning more.
  • CS 370 - Numerical Computation: this course is focused on teaching its students how to use computers to approximate real life problems. For example, how to solve differential equations using computers, how to approximate unknown functions through interpolation and curve fitting, how to use Fourier transform to perform signal processing, etc. To be honest, the contents of this course are useful, and I'm surprised that it isn't a required course for all CS students. Although I was not a big fan of its midterm and final, I found it's programming assignments quite interesting. You can clearly see that the problem writer made an attempt to design the questions to solve examples of real life problems. Particularly, I thought the assignment that required us to use Fourier transform to denoise a distorted audio file was very interesting.
  • CO 456 - Game Theory: I think this is the most abstract math class that I've taken so far. This course starts off pretty chill with impartial games (like Nim) and Nash equilibrium. However the course quickly ramped up to cover topics like support characterization theorem, the core, network bargaining, Myerson’s Lemma, Arrow’s impossibility theorem. It's weekly assignments required very rigorous proofs and was definitely a challenge to me. However, I did find the course quite interesting, and I recommend it to anyone who have taken CO 250.
  • PHYS 225 - Modelling Physics: I took this course to fulfill my PHYS depth requirement. First half of this course is just a condensed version of STAT 230 and STAT 231. The second half… oh man, it was physics. Things like modelling Brownian motion, molecular diffusion, Fourier transform, free energy equation, etc. Not the biggest fan, but oh well, it was for a requirement that I had to fulfill anyways.
  • GEOG 101 - Human Geography: the definition of a bird course, and definitely one of the more organized bird courses. I'd say I spent on average less than 1 hour per week to complete the course. So if you are looking for a bird course, take this.
  • PHIL 110A - Philosophy of Knowledge and Reality: Well... Uhm this course yeah... about that... You know I thought I'm pretty OK at philosophy and essay writing right? But oh boy, did I get humbled. The grade I got in this course is almost 20% lower than my other courses. There were a total of 4 essays, and to be fair, I thought the topics covered are very interesting. For example, we covered topics like The Ontological Argument, Empiricism, Rationalism, Identity theory, etc. Definitely right up my alley, but I really couldn't enjoy it much given the 5 other courses that I have to constantly worry about. And this course is no bird course in any way shape or form. The essays were marked quite brutally. Perhaps as a STEM student I'm just not very used to getting evaluated more subjectively rather than objectively.

Co-op Hunt

Grind is the name of the game. From the second half of August all the way until mid October, I've been strengthening my CS fundamentals, reviewing algorithms, doing practice questions, going to mock interviews, doing coding challenges, and finally doing real interviews. Needless to say, I was definitely quite stressed. Thankfully, things worked out pretty well, and I was lucky enough to land some nice opportunities. In hindsight, perhaps I didn't need to grind this hard, I definitely could've studied a bit smarter. But oh well. Below is a chart visualizing a flow of the application progresses of the job postings I applied. As you can see, majority of the company either ghosts me or reject me without even giving me a coding challenge. What I learned from this experience is that to be successful in job hunting, you need both luck and hard work. If you just have luck, then even with the interview opportunity you can't pass it, but if you only have hard work, regardless of how good you might be, you won't be able to show that to the companies. But this is how many things are in life. I'm not complaining though, because I think it worked out pretty well for me, and I'm grateful for the opportunities that I was presented to me.

For the winter 2022 term, I'm going to work on one of the MLflow team at Databricks in SF. And yes you read that right, I'm in SF. After 20 months staying home, I'm finally moving out. A bit not used to living outside the comfort of home again. But nevertheless, I'm super duper excited!

Closing Note

There goes 2021, the year that was somewhat better than 2020? Although things went slightly wrong near the end of the year with omicron. I don't want to only focus on the negatives. For example, vaccination for COVID was by far the most impressive vaccination campaign ever. From the fast development to deployment, it really was a testament of what humanity is capable of when we are united. Of course, I'm aware that there are still a lot of room to improve. Such as the imbalance in vaccine distribution between poor and wealthy countries. It really saddens me to see that there are people in poorer countries wanting vaccination can't get, yet at the same time tens of thousands of doses are being thrown away in richer countries due to surplus. If we learned anything from COVID is that the virus does not discriminate. We should think of ourselves as humans first, not as citizens of particular countries first. We all should unite and work together to combat this virus. No matter how vaccinated richer countries can be, as long as there are poorer countries being left out, there will more COVID variants brewing. Anyways, I hope 2022 will be a steady improvement over 2021, and a step towards a more enjoyable and stress-free year for everyone! I wish you a happy, healthy, and enjoyable year ahead!