UWaterloo SE 2B Reflections

UWaterloo SE 2B Reflections

This is probably the most time-consuming term so far... here's how my day goes basically for every single day since the term started... Wake up at like 10:30am (yea said good bye to good sleeping schedule a week after the term started), start doing work at like 11:30am, do work until 2pm lunch, 3pm start again until 9pm for some night snack (not eating dinner, because let's be real, I legit don't move at all besides walking around in the house and maybe occasionally take a walk.) Then I try to squeeze some time every day about 20min-45min to practice piano. Honestly, the older I get the more I realized how enjoyable playing/practicing piano is compared to everything else that I do these days. Then I grind until like 1:30am then I sleep and repeat... So, in short, I stay in my room for about 22 hours a day. Also, just so you know that, I'm writing this like 6 days before the term completes, so you can say that I'm procrastinating. But I figured that writing stuff here is more of a 'productive' task than browsing YouTube or Reddit haha. Ok I'm definitely rambling a bit, but in this termly update I'll first write a review for each of my courses. I'll also talk about my plan for co-op and how I feel about the future of the world and myself considering this pandemic doesn't seem to be going anywhere yet...

Before I talk about co-op and some personal thoughts here's the list of courses that I took this term as well as their review:

  • CO 250 - Intro to Optimizations: I think this was a very interesting yet difficult and extremely time consuming class. Most notably we learned about Linear/Integer Programming, Duality, Convexity, KKT Theorem, etc. It's not really anything like the maths I learned before. More of using linear algebra and calculus as tools to build up new theorems. This course is not required in software engineering but I picked it as an elective since I want to pursue a CO minor and this class is the prerequisite for basically all future CO courses. The hardest part about this course are the assignments, you get weekly assignments that could easily take you more than 15 hours to complete (5 questions). And most of the time I needed to watch the tutorial to get hints on how to do these very nontrivial questions. This course with MATH239 really taught me how to write proofs... Fun fact, for this course's final exam I wrote 2800+ words plus bunch of math equations... Longer than my grade 12 english ISU haha. But I really enjoyed this class despite how challenging it was. Some assignments legit had like a class average of like 50% (but we get a pretty generous curve to accommodate its difficulty).
  • MATH 239 - Intro to Combinatorics: First half of the course you learn about enumeration and counting. Mainly dealing with things such as: combinatorial proofs, string matching, power series, etc. I find enumerations challenging at first but once you get the hang of it, it actually feels more systematic than Graph Theory (obviously besides the combinatorial proofs part, which until this day I'm still quite not sure about). Second half is an introduction to graph theory, I honestly thought I would be pretty interested and be doing pretty great. However, soon I realized that graph theory in math its not the same as graph theory in CS, (well CS is based on math but like math is most if not all proofs about graphs). The concept itself are generally simple, but a lot of questions you just need to "see" it or get the eureka moment to solve it which I really disliked. All in all, I knew this would be the course I'll struggle in, since when I did my first math contest in grade 7 I knew combinatorics is not my strong point. But for where credits is due, it is pretty well organized course although the instructor could sound a bit condescending at times, they are trying to help us learn for sure.
  • CS 247 - Software Design Principles: I honestly have no words for this class, its not supposed to be a bad course and the content was actually very useful for real life applications (learning C++ MORE with design patterns). However, it was quite poorly taught, disorganized course plans, delayed assignment return, last minute specification changes (after we already did it another way), slow Piazza response rate, etc... Although the ISA was helpful and quick at fixing these issues, a lot of them could've been easily avoided. So you'll learn things about Observer pattern, Model View Controller, Strategy pattern, Factory pattern, etc... Content is useful although you can easily learn all of the course content at better qualities from freely available resources online.
  • CS 240 - Data Structures and Data Management: This course was actually quite well organized, and highly applicable in real-life (interviews mostly). You learn about all sorts about data structures, we went from learning what a linked list is to KD-Trees, Range-Trees, Huffman compression, etc. Overall a very useful and interesting course, the assignments were long but were pretty fair so were the exams. I personally really enjoyed this class :). Just like what the reviews on UWFlow said, its really kind of LeetCode 101 (bunch of our assignment questions were actually LeetCode questions). As long as you stay on top of your assignments and do well on them you'll be fine for this class.
  • ENGL 119 - Communications in Math & CS: Taken to fulfill my communications requirements for CS degree in which I will switch into (will go into details once the transfer from SE -> CS is complete and I'll explain why). But this class was what you call a bird course, I think in total I spent about 10 hours in this class for the entire semester and received a really good grade. So, as long as you participate and put a little bit of effort into it you'll do well.
  • ECE 192 - Engineering Economics: Well..., what can I say, its an economics course, although its half credit I think I was really quite clueless for the whole journey. Basically if you know you algebra, just make a formula sheet and when in exam just recall those formulas and you should be good. The reason why I took this was so that I can make use of the half credit I received from SE101 to make a full credit.

Overall, I think this semester was extremely time consuming and tiring but I did really well in terms of grades (even considering a bit of grade inflation). Could be due to the fact that I'm at home and I really only have to worry about studying no need to care about buying groceries, laundries, cooking, and many other chores (yes I know I'm spoiled at home ๐Ÿ˜). And adding onto that, due to the pandemic I legit do not have any other activities to do besides studying (well not including piano practice ๐ŸŽน).


To be honest, I'm just glad that I have a job in this pandemic. Luckily I've secured a return offer back to Shopify (whose stock is legit boooooming) to a different team. So recall that last co-op I worked at Shopify's machine learning engineering team, this term I'll be working at the store front renderer team. What will I do you ask? Well, all I know is that I'll be dealing with a lot of optimization problems, like squeezing out every ms of rendering time. And looks like I'll have to learn Ruby ๐Ÿ˜…, couldn't escape it after all haha. But I think it'll be interesting, and I think it is also under the production engineering sector, so that'll be interesting. Definitely will be quite different from my previous team where I most dealt with data related things, I'd imagine this term I'll be focusing more on the traditional computer science skills.

This term's WaterlooWorks we quite lamentable, we started off with only ~300 jobs posted on the first day of main round in contrast to 3000+ in previous terms. Although it has gotten a bit more job reaching 1000, there were a lot less opportunities (especially good ones) than usual. Which was expected, considering we have a global pandemic going on.

Obviously I'm disappointed that there weren't nearly as many opportunities than I wished for, but it's really out of my control so I'm not too sad about it.

Thoughts on the state of our world

Looking back at my last post, the COVID-19 situation in Canada seems to have gotten better (knock on wood) as seen here:

Source: Center for Systems Science and Engineering (CSSE) at Johns Hopkins University (JHU)

I hope we can continually observe a decrease in the new infection cases, although it has been staying quite consistent since June 2020. However, what's not so great is our neighbour to the south:

Source: Center for Systems Science and Engineering (CSSE) at Johns Hopkins University (JHU)

Approximately a quarter of the world's infection is from the US and seems like there are still people that are against wearing masks which is quite concerning.

I'm worried about this fall... since its usually flu season during the fall anyways and now we have COVID-19 to worry about. I really hope new infection cases won't surge again. On a personal note, this whole pandemic really messed up many awesome co-op opportunities. Whereas usually we would have 3000+ job posting available on the first day of main round, this semester (May-August 2020) had only ~300 jobs to begin with. Not a great scene to see for sure.

Going back to the bigger picture, besides the pandemic in 2020 we also saw many other issues with our world with things like natural disasters (excluding COVID-19) around the world and political issues (at least in North America). I'm still very perplexed at people that are against wearing masks, like come on, that's the least you can do to be responsible for not only yourself but our society as a whole. And no, it is not violating your rights when wearing masks can only benefit you and everyone around you. Officials giving guidelines to wear masks is so that every one can stop wearing masks sooner (AKA let the pandemic end quicker), so please be responsible.

I feel like we as a species is still quite short-sighted. Imagine what aliens would think of us. Beings of the same species that differ in DNA by at most 0.01% constantly having internal conflicts (war, discrimination, etc.), when there are much bigger problems for us to face that effects all of us. It is only when we can unite as a whole might we be able to advance to a higher level of intelligence.

"United we stand, divided we fall" (The Four Oxen and the Lion)

Hopefully a takeaway people can learn from this pandemic is that we should not focus on us versus us as a species, but rather us versus them as in natural disasters, viruses, and other challenges that can hurt all of us (because they don't discriminate based on race, gender, or any negligible differences between us).

What's next for me

Like I said in the co-op section, I'll be returning to Shopify for the fall term (online obviously). But I will also be doing an online course for my Combinatorics and Optimizations minor (fingers crossed ๐Ÿคž๐Ÿผthat it won't be too bad).

I'm looking forward to practice more piano ๐ŸŽน (hopefully I can get Etude No. 6 by Liszt done!) because that's really one of the only things that I find enjoyable and productive ๐Ÿ˜„.

I really need to get more physical exercise, I know I always say this but staying at the same spot for like 10+ hours a day really isn't a good idea.

Also, I'm thinking of writing a science fiction novel and hopefully can get some chapters done before 2021. Basically finding myself to do more things so I don't feel like my precious time is being wasted just staying home and watching YouTube all day long.

On that note...

Phew this sure was a pretty long update, probably like 1 or 2 people actually read up to this far and I thank you for that. I talked about quite a few heavy topics here and there, hope that was ok. I just wanted to be frank with myself and you the reader of how I really feel.

Anyways, I hope you have a great day, stay healthy and happy! Here's a virtual hug from me ๐Ÿค—.