These past four months marked my final term studying at the University of Waterloo. I feel both nostalgic and sad knowing that this is the last “Term Overview” I would write in the near future. This is the series finale.
4B went by really quickly. As I had done in nearly every term since 2B, I continued to skip most lectures and almost every tutorial. So it has been, so it shall be, it seems. During the first three months of the term, most of my time was spent on looking for full time jobs and practicing for interviews. As a result, there were several activities I had wanted to do this term before graduating but couldn’t, such as:
- becoming a student journalist for Imprint (I’m actually pretty bummed about this one because I really wanted to report for Imprint before graduating)
- taking on a more active role in Feds
- travelling to nearby regions, such as skiing on Blue Mountain, checking out new restaurants in Markham, and exploring London, Guelph, and Cambridge
- attending networking and socializing events
After accepting my full time offer in the middle of March, it was time to play catch-up on school work and prepare for finals. This was a busy and tiring term. Nevertheless, I’m hopeful that finding a full time job before graduating was the right decision, especially in this economy, and laid the groundwork for future success. I’ll compensate for this term’s lack of fun by having fun after graduation!
ECE 417: Image Processing
This course focused on the mathematical theory behind common image processing techniques, such as histogram transformation, image denoising, and image restoration. With so much theoretical content – probability, Fourier transforms, endless convolutions, calculus, and linear algebra – I frequently wondered whether I was actually taking a math course in disguise. In all fairness, the theory was interesting, but there was too much of it! However, I still ended up attending almost every lecture because I was interested in the subject.
I was hoping to learn practical skills related to image processing and was disappointed this course didn’t teach any. Do I now know how to use OpenCV? Nope. Did I learn what’s a Canny filter? Yes, but not from this course. Did I learn common image processing techniques in MATLAB? Not really. The tutorials, course slides, and exams were vaguely similar. And the exams were really really hard. If not for the curve, probably half the class would have failed.
Overall, if you’re into theory, take this course; if you’re looking to gain practical experience, this course won’t be a good fit.
Key takeaway: Research related to image processing will involve a LOT of math. It is not for the faint-hearted.
ECE 457B: Fundamentals of Computational Intelligence
The first half of this course was an introduction to fuzzy logic. It’s a brilliant concept (instead of representing values as true vs false, we represent them as on a scale of truthfulness. Philosophically, nothing is black or white; there are shades of grey in between). However, I felt the course could have condensed everything we learned about fuzzy logic within two months down to two weeks.
The second half of this course was about neural networks. Although I had already taken a Coursera course on machine learning, I still found the course material to be challenging. It focused on backpropagation, radial basis networks, and KSON. IMO, we should have spent less time on fuzzy logic and more time on neural networks, since the latter is a hot topic in the industry right now.
Key takeaway: How do you solve an impossible problem? Just use machine learning ;P (jk, this is to poke fun at the ML buzz, not to be taken seriously)
ECE 493T21: Autonomous Vehicles
This course was the most popular technical elective and was first launched just a year ago. The course content could have been structured better. Topics were either too complicated or too broad; many labs were taken verbatim from Udemy courses; slides were difficult to read so we just studied from practice test sets. However, I was introduced to some new topics, such as image segmentation, path finding, and different filtering techniques. Pre-midterm content was interesting but post-midterm content focused too much on kinematics and mechanical topics, such as tire friction, lateral acceleration, etc. This was one of those courses that I’m glad to have taken but also glad that it’s over.
Key takeaway: we live in a very special time in history, building innovations and making discoveries that past generations dreamed of. Actually, as I come to think about it, this was probably said by every generation since the Industrial Revolution.
ECE498B: FYDP (part 2)
This is the second course for our Fourth Year Design Project. (Here’s the review for the first course of FYDP.) We finished building our 3D scanner, which uses IR sensors and ‘image stitching’ to create 3D models of objects. The grading structure incentivized putting more effort into writing the report than building the project: 55% for the report, 20% for demoing the project to the to project consultant, 20% for symposium presentation, and 5% for administrative stuff. It’s also funny that the course outline says that FYDPs should take 1000 hours to complete. This was definitely not the case for many groups.
At the Symposium, we demoed our project to students and professors. After it ended, we all breathed a sigh of relief, elated that this course has come to an over so we could then move on with our lives and do more useful stuff.
Key takeaway: if you incentivize students to write reports over doing the actual project, then they will spend more time on the reports. As in economics, incentive structures are important
ECE 405: Introduction to Quantum Mechanics
This course counted as a Natural Science elective. It introduced the Stern-Gerlach experiments, how to calculate spin-up/spin-down probabilities, time equations, and wave functions. The course content was structured around the textbook. The midterm and final are straightforward and resembled assignment problems. Most of the class time after midterms were occupied by presentations.
Key takeaway: QM is weird.
Although I didn’t try out as many activities as I had wanted, luckily, I didn’t succumb to the dullness of only looking for jobs and studying for exams.
In my continued role as a student union representative (Feds Councillor). I proposed and co-sponsored several policies and resolutions related to setting advocacy goals, internal operations, accountability, and student outreach. It was a pleasure to advocate for students and participating in campus politics was an educative experience.
This term, I read a lot. (Although maybe not as much as when I was at LinkedIn, where I read every night, completing 7 full books, including one textbook on economics and one on social psychology, and partially completing a couple books on tech.) Most of my leisure reading was about C++. There’s so much to learn about the language; it’s really nuanced and the abstraction mechanisms are thoughtful. When programming with C++, you consider things that you might otherwise not consider if you were programming with other languages.
During last year’s reflection, I wrote that I wanted to learn enough C++ to be able to read the Standards one day. It seemed like a far-off and insurmountable goal, until I spoke to an interviewer who actually read parts of the draft Standard and was on the mailing list! His recommendation was to join the mailing list on subjects you were interested in. That was inspiring. Just knowing that someone else was passionate about the same subject you aspire to learn was, in itself, extremely motivating and made me realize that this goal was achievable.
I also participated in our class valedictorian election. Needless to say, I wasn’t nominated but that’s alright because it was a learning experience that pushed me outside of my comfort zone. Another highlight of the term was playing games with friends. We had Thursday Board Game nights where we played Catan, Monopoly, and Agricola. Thursdays was also when new Brooklynn Nine-Nine episodes were released, so it was a happy day.
On the day of my last exam, I also watched Avengers: Endgames. It was a special day that symbolized the end of a long journey.
What a term, what a term! Between finding a job and studying for exams, there wasn’t a lot of time left to do other activities. Although this is my last term and I’ve already found a full time job, I still don’t know what I actually want to do in the future. Up to now, life has been structured but after graduation, life becomes unstructured. It’s like migrating from Postgre to MongoDB: there’s no clearly defined paths left. Anyways, this term ends and I wait for convocation in June.