4B CS Course Review/Term Retrospective
The final stretch!
- CS 479 - Neural Networks: This course started out with an intro to biological neurons before covering the basics of artificial neural networks (i.e. backprop, auto-diff, etc.) in the first half. In the second half, the material focused more on specific architectures of neural networks, including CNNs and autoencoders. Though some of the content went over my head at times, I felt that it was worth it to put a lot of time into understanding the content in this course well, both for the sake of doing well in the course and general knowledge. The assignments and exams for this course were also rather reasonable, as the assignments were short and the exams hardly felt unfair. As a weird story relating to this course, there ended up being a dedicated Discord server set up by some students for discussing course content. While I never said anything in the server, I randomly received some messages from complete strangers in the server asking about assignment problems. As well, a particular user messaged me for advice about interviews/internships and eventually started asking bizarre questions about my personal life, which inevitably lead to a block from me. Overall, the entire experience gave me a taste of how weird people can actually get when it comes to interacting with each other and made me a bit worried about the type of people who are studying CS.
- CS 459 - Privacy, Crypto, Network, Data Security: This course was an overview of the security considerations across software systems and ways to maintain privacy. The first half mainly focused on cryptographic hashes and ways to protect data at rest and in transit, while the second half of the course was more geared towards privacy in computation/data release mechanisms. The assignments for this course were somewhat long but easy most of the time, though I did have to go office hours for help a couple of times. The midterm and final were also relatively fair. Really, not much to say overall.
- CS 398 - Intro to Graphics: As the name implies, this course was a introduction to various topics in graphics. It started out with topics like image processing and geometry before moving into things like GPU usage and ray tracing. The marks for this course were all based on assignments and a final project, so I would say the course was lighter in terms of workload compared to the other 3XX/4XX CS courses I've taken. The lectures were also relatively relaxed, as the prof would usually end early and give breaks halfway through class. To be honest, since the marks were purely based on assignments, I often zoned out during class, which made assignments a bit more difficult than they necessarily needed to be. However, it was generally possible to combine the course slides with external sources to finish all the tasks required. Overall, a nice, chill class which made my semester easier.
- CS 480 - Intro to Machine Learning: I ended up dropping this course, but I actually still wanted to add a note about here since I had particular thoughts about the course before I dropped it. The course actually seemed extremely high-quality, as the material was interesting, the prof generally explained things clearly, and the concepts were relatively intuitive. However, there ended up being a bunch of events (assignments due, interviews, etc.) which compounded with a particularly difficult set of lectures in this course (some with a TA who I could not understand, another on duality) which led me to dropping this course, as I wanted to focus on understanding the content of a smaller number of courses rather than having more courses taken on my transcript. I honestly regret this a bit since I ended up having a bit too much free time this term, and I would definitely try this course again if I wasn't already in my 4th year.
Overall, I think this term was a solid one, though I did feel like I had too much free time in the second half of the term (by virtue of only having 3 courses). I was initially thinking of writing some overall thoughts about university and changes in my mindset as a whole since this is my last full time term, but after thinking more deeply about some of the things I wanted to write about (e.g. the process of learning, AI use in school, etc.), I realized that I can't really explain my takes in a satisfying way with just a few sentences. Thus, I'm probably going to write some separate posts later, as this will also give me more time to clarify my position on my takes. However, I'll still be including some notes about my experience this term, as usual.
In terms of interviews, similar to my 4A term in the winter, I got a good amount of interviews in my first and only application cycle. In fact, I have more interviews across my 4th year terms than I have across the rest of my time in university combined. In terms of how the interviews went, on the technical side of things, I felt that things were overall an improvement compared to 4A, as I was able to explain my problem solving approach and code up a correct solution for most interviews. However, I felt that my behavioural interviews were a lot worse compared to 4A, perhaps since I was focusing so much on the techincal side of things. In particular, I felt that I never had a great response to any questions related to workplace conflict, as I had never really thought too carefully about the disagreements I had as an intern up until then. Ultimately, even though I received a good amount of offers (likely due to the fact that it was my final work term), the interviews this term were rather indicative of the aspects of interviewing that I still need to improve on.
As well, since a lot of my ECE friends were on-campus this term, I had the opportunity to hear about what it might have been like had I stayed in engineering. Overall, I got the feeling that I was spared from a bunch of organizational issues pervasive within the ECE program. In particular, the variance of prof quality for engineering generally seemed much worse, as apparently some would simply not teach. However, in hindsight, a lot of my current interests line up much better with a computer engineering program. For instance, I'm currently trying to get into more systems-level software development, and I think the hardware and low-level knowledge in ECE would benefit a lot in terms of understanding how things really work end-to-end, which is something I always appreciate. Obviously, I can't take back my past choices, so the only thing I can do is make the most of my time now to learn.
Despite being my final full-time academic term, this term just came and went - it didn't feel like anything notable happened. From here on out, I imagine there'll be a lot to do in terms of figuring out what exactly I want to do with the rest of my time and life. There were actually a couple more thoughts I wanted to touch on in this post, but I realized that they would end up taking up too much space to still clasify this post as a term review. I might make a couple new posts later, but for now, I'll be taking some more time to think about and flesh out what I want to say.