“But I don’t want to go among mad people,” Alice remarked.
“Oh, you can’t help that,” said the Cat: “we’re all mad here. I’m mad. You’re mad.”
“How do you know I’m mad?” said Alice.
“You must be,” said the Cat, “or you wouldn’t have come here.”
I have officially completed my second term at the University of Waterloo and my first year as a Computing and Financial Management (CFM) student here. I thought I would take a couple of moments to reflect on the past year, the courses I've taken, and what I've realized during the last eight months. I've thought about how valuable (and expensive) this last year has been. UW has pushed me far beyond what I believed was possible. I've had many long nights, stressful assignments, and a (healthy) dosage of anxiety-inducing exams. In combination, I've had many laughs, social nights, and successes.
1. Attend Orientation
![UW Orientation Week 2019](/assets/images/blog/UWOrient1.jpeg)
![The Orientation Math Dance](/assets/images/blog/UWOrient2.jpeg)
Orientation Week is probably the most blissful part of the first year. While not in the itinerary, getting lost around campus, meeting random people, and sporadic nightly games of manhunt all frequently occurred.
Orientation is really just three days of short mini-games and lectures on what to expect for the next four years. The games were fun-ish, but the real value of orientation was the social aspect to meet other people in your faculty/program and other undergraduates. I will say, 2019 Math Orientation team names were quite amusing; some of my personal favourites include: Babooleans, Ine-koala-ties, Orangu(sin/cos), mx+bees, and pi-ranhas.
2. First Week of Classes
Probably the easiest week for the rest of my undergrad, but adjusting to Uni life + anxiety + excitement result in different reactions for different people. The highlight of this week was attempting (and failing) at solving my first couple of proofs. Things will be hectic during this time, but the dust will settle. Just remember that this is not the time to slack off. Get ahead on courses and stay on top of everything - you will want a running start for the inevitable time when everything starts catching up.
3. Reflecting on my 1A Courses
Math 135 - Algebra for Honours Mathematics
I personally didn't like this course until after I finished it. I struggled for the first couple of weeks, trying to grasp my head around different proof techniques. Math 135 taught me how to look at problems from a different perspective.
If you are like me, you will find solving proofs to be challenging. After two months, on one random day, something just clicked, and the proofs became more natural than before. Most people go through this "It just makes sense" phase too. Personally, I don't think this is something that can occur with exposure to content or practice - it's just a matter of time to understand the logic.
Math 135 does introduce a collection of some exciting concepts, including Set theory, Rings, and the Riemann Hypothesis. My favourite part of this whole course was the unit spent on encoding and decrypting the RSA encryption scheme.
Math 137 - Calculus 1 for Honours Mathematics
My favourite first-year math class, probably because this course was just a thousand delta-epsilon proofs with a couple of concepts and theorems here and there. I found this course to be very similar to grade 12 calculus - perhaps this is the reason why I found it more relaxed than my other classes.
Some courses are very mechanical, that is, plug and chug. If you can find yourself mastering one fundamental concept, like delta-epsilon proofs, it makes the rest of the course magnitudes easier to understand
CS 135 - Designing Functional Programs
I found CS 135 to be an incredibly interesting course, especially coming into it with prior coding knowledge. Racket, the language used in CS 135, is entirely based on functional programming. That means, no loops only recursion, no variables, and functions can be passed as first-class values. Racket is eye-opening and re-invented what I thought about programming.
Racket gets a bad reputation since its alien-like syntax is nothing like Java or C, and its functional programming conventions seem more of an annoyance than of value. Don't fall into this mindset! Racket is super powerful, and once you start using it, the syntax will become second nature.
As an aside, diving into the world of Racket macros allows you to extend the language yourself. There are a lot of great tutorials online that walk you through how you can build your own language using Racket macros.
AFM 101 - Introduction to Financial Accounting
This course was basically a carbon copy of Grade 11 and 12 HS accounting. I found that the work was minimal and menial. Ironically, the one part about the course I did enjoy was the (not testable) general finance knowledge, sometimes discussed in the first 10 minutes of class. Not much else to say about AFM 101.
AFM 132 - Introduction to Business Stages
A course on basic business knowledge, found it be similar to grade 10 HS business. While the course was fundamentals and sleep-inducing, the course staff were great. It was nice to take 132 since it was a stark difference to most of my other classes. Most of the math courses were practice and conceptually heavy, whereas AFM 132 was memorization-heavy - I like that balance.
Quick observation:
I found AFM 101 and AFM 132 to be the easiest first-year AFM courses, and from general consensus from upper-year students, these two courses are on the easier end of the spectrum of all AFM courses. Don't slack off in these courses - 101 and 132 should be the courses that should set your SMAV up to be in the comfortable zone.
![Hack The North 2019](/assets/images/blog/HTN-UW.jpeg)
5. Reflecting on my 1B Courses
Math 136 - Linear Algebra 1 for Honours Mathematics
This course started off right where Grade 12 Calculus and Vectors ended off and then quickly ramped up to systems of linear equations, vector spaces, linear maps, and matrices. I loved the content taught but loathe the assessments (a common theme I’m finding in most of my courses). My mark definitely did not reflect my enthusiasm, but luckily consistent interest up until the very end did save my mark.
Math 138 - Calculus 2 For Honours Mathematics
As a continuation of Math 137, I thoroughly enjoyed this course as well. The midterm was not fun, but the rest of the course was. 138 was also the one class in which I only looked at the course notes a handful of times. I found the instructor resources and practice assignments to be great to learn the course content. If I could go back, I would start preparing for the Math 138 midterm even earlier. It's a common theme the past couple of years that the 138 midterm seems to be the "hard" part of the course.
CS 136 - Elementary Algorithm Design and Data Abstraction
A stark difference to CS 135; CS 136 is based on C rather than Racket. I found CS 136 to be more my forte since, unlike Racket, C syntax is very similar to Java. Probably the highlights of this course were discussing memory management, pointers, and time complexity. The one thing I noticed is that CS 136 is very much focused on getting terminology and syntactic meaning right: passed vs input and output vs return as two examples.
AFM 102 - Introduction to Managerial Accounting
I personally like managerial account much more than financial accounting. With 102, I was at least able to see the bigger picture and the applications to managerial accounting. But like with AFM 101,