UWaterloo Course Review

This page lists my thoughts on most of the courses I have taken at the University of Waterloo. Note that I have excluded project courses from this list, and a lot of the general first year courses that I feel are pretty standard. The opinions here are only my personal opinions and are in no way official.

If you are interested in notes for any of these courses feel free to email me!


ARTS 490: Global Engagement Seminar

Very unique course; topic changes every year. My year was the ethics/implications of AI. It is a very unique course: it is taught by “fellows” and the professors essentially act as TAs. We also got a bit of money to do our final project. It was also pass/fail which was nice. And it counted as a list A course (ethics course for engineering), which you need to graduate.


AMATH 331: Real Analysis

This was a very interesting course. Essentially you learn about various types of convergences for series and sequences. The most interesting part for me was learning about sequences of functions (like Fourier series) and the different ways that they can converge. An essential course for anybody wanting to learn advanced math (analysis and algebra are the fundamentals of upper-year university math).

AMATH 473: Quantum Theory 2

One of my favourite courses ever at UW. Before this course, I felt like I didn’t really understand quantum mechanics. After this course, I feel like I understand the math of quantum mechanics, and know confidently that I don’t understand the physics. Professor Kempf was amazing: he clearly knew pure math and quantum physics really well.


CHEM 266: Basic Organic Chemistry 1

Fun course, but definitely only basic organic chemistry. There was a lot to learn, but after this course I understood that there is tons of knowledge left to learn in organic chemistry.

CHEM 267: Basic Organic Chemistry 2

Took this course online. Very useful content, and not that many reactions to learn. I felt this course was much more useful than CHEM 266, because in this course you learn more about functional group reactions, which is where all the interesting reactions are anyways.


CLAS 104: Classical Mythology

Took this course online: bad idea. Online you basically pay 1k to read a textbook and learn trivia. The tests weren’t super easy either. I hear in class the lectures are really good. Definitely a mistake to take online. My Anki deck for this course is linked here.

CLAS 202: Ancient Roman Society

Very good course! It made me understand a lot of the societal changes that came from Christianity (for example the modern idea of religious salvation vs the ancient idea of a “give and take” religion). Easily the best humanities course I’ve taken at UW.


CS 485: Statistical and Computational Foundations of Machine Learning

Taught by Shai Ben-David. He is a great prof: really knows his stuff, and wrote a very readable textbook on theoretical machine learning. This material is hard: lots of proving bounds using random theorems, but this course cuts to the fundamentals by pulling out the theorems only when needed, and putting the proofs mainly in the appendix. This means when reading it you can actually understand the ideas behind it without getting bogged down in the math. I feel I learned a lot of useful stuff from this course: I would highly recommend it!


MATH 235: Linear Algebra 2 for Honours Mathematics

Continuation of linear algebra, with more focus on eigenvalues. This course was the first time I really felt like I understood eigenvalues. I also found the part about complex linear algebra useful, especially later on when I took quantum mechanics.

MATH 239: Introduction to Combinatorics

Very fun course. Combinatorics was very useful, especially generating series. I really liked graph theory: even though we only learned a bit, I have found the content extremely useful since taking it.


MSCI 261: Engineering Economics: Financial Management for Engineers

One of the worst courses I have taken. Basically we just learned how to calculate compound interest, and formulas for annuities with interest. Gave no introduction to finance or financial planning.


Amazing course with Simon Wood. The lectures were super entertaining, and I really enjoyed learning about the origins of Rock and Roll (which is effectively what the course covered). This was definitely my favourite elective at UW.


NE 201 / NE 202 / NE 301 / NE 302

Toxicology course series taught by Professor Deakin. An amazing professor: even though you have very few class hours, you come out with the feeling that you understand toxicology very well. This course series was one of my favourite courses in university. A one sentence summary is: everything is toxic (despite what companies claim), and almost everything will give you cancer.

NE 216: Advanced Calculus 1 for Nanotechnology Engineering

Calculus is very important, and this course introduced us to ODEs. Overall good course.

NE 217: Advanced Calculus 2 for Nanotechnology Engineering

This was a PDE course, also very useful. However, I felt like we didn’t go into as much detail as we should have.

NE 220L: Materials Science and Engineering Laboratory

Most of the experiments were pretty boring: prepare a sample, turn on a machine, and wait for it to do its measurement. Felt like a prep course to be a lab monkey.

NE 225: Structure and Properties of Nanomaterials

Great course, basically gives an overview of many different types of nanomaterials.

NE 226: Characterization of Materials

This course was very boring in my opinion. We basically learned how many different types of microscopes work. Maybe materials characterization just doesn’t interest me…

NE 226L: Laboratory Characterization Methods

Another lab characterization course. We got to use a few cool devices (like an SEM or XRD), but in the end it was still putting things in a machine and waiting.

NE 232: Quantum Mechanics

A quantum mechanics course when we didn’t have the math knowledge to understand any of it. I found it interesting, but challenging due to my limited math background at the time.

NE 241: Electromagnetism

This was a very good course (Dayan Ban is a very good prof). I liked how it was taught from a mathematical, first-principles perspective. A lot of the questions end up reducing to solving a medium-difficulty integral. This was one of my favourite NE courses in the program.

NE 242: Electronic Devices

A course on semiconductors. The math was fairly boring, but semiconductors are extremely important materials so I am glad we learned about them.

NE 318: Continuum Mechanics for Nanotechnology Engineering

A useful course where we learned about numerical methods and fluid dynamics, but it was taught in a confusing way. I felt like our class didn’t quite have the math background to fully understand it.

NE 320L: Characterization of Materials Laboratory

We synthesized a few nanomaterials, including quantum dots, which was cool. However, the synthesis techniques were all very “one-step”, by which I mean we added something to a container, heated it, and that was it. It felt a bit anticlimactic.

NE 330L: Macromolecular Science Laboratory

We synthesized a few different kinds of polymers. This was very fun, but the experiments took a long time. It was one of my favourite labs.

NE 333: Macromolecular Science

This course is essentially about polymers. Polymers is an extremely important subject for anybody studying chemistry, but honestly this course wasn’t very good. It was disorganized and taught in a confusing manner. I think there are plans to revise it though.

NE 334: Statistical Thermodynamics

A very interesting course teaching us about the fundamentals of the behaviour of many particles together. I really liked the math in the course, but I realize that the subject is so difficult that we would need a few more courses to be able to apply the content to a practical problem.

NE 336: Micro- and Nano-system Computer-aided Design

Followup course to NE 318. More work on numerical methods for solving PDEs. The material is very useful, but like NE 318 I felt confused in the course. I feel like I still have a lot to learn on the subject.

NE 340L: Microfabrication and Thin Film Technology Laboratory

We made a metal-insulator-semiconductor capacitor using microfabrication techniques. The lab felt like a “wild ride” of fabrication. I really enjoyed it.

NE 343: Microfabrication and Thin Film Technology

Very content-heavy but useful course about microfabrication (for example, how they make computer chips). Bo Cui is an amazing professor who knows everything.

NE 344: Electronic Circuits and Integration

The most interesting/practical circuits course I took at UW.

NE 345: Photonic Materials and Devices

We learned how fiber optics and photonic crystals work. Overall, this was a very fun course! Dayan Ban is a very good prof.

NE 352: Surfaces and Interfaces

We learned about the thermodynamics of surfaces, which is a critical part of nanotechnology. I wish we had a better knowledge of classical thermodynamics going into the course though, since that would have helped us understand the content better.

NE 353: Nanoprobing and Lithography

A continuation of NE 343. Also taught by Bo Cui, who was still all-knowing. We learned a lot of interesting new techniques. I enjoyed the course overall.

NE 451: Simulation Methods

Course that deals with a lot of Monte Carlo simulations for nanoscale systems. I enjoyed the programming and learning about Monte Carlo. Best NE course in my opinion, noting that my interests are very heavily in programming so this biases my opinion.

NE 471: Nano-electronics

Course covers nano-scale electronics and quantum mechanics. We learned about single-electron transistors which have interesting behaviour. Overall I liked the course but I think having a better solid-state physics background would have been nice.

NE 479: Organoelectronics

A well-organized review of the physics behind organoelectronics, and how these devices work. Course was useful if you wanted to go into that field, but I didn’t enjoy it because organoelectronics didn’t really interest me (but I had to take an NE course to graduate).

NE 491: Nanostructured Materials

Very comprehensive course about nanomaterials. Overall very good.


PMATH 332: Applied Complex Analysis

Great introduction to the interesting and unintuitive math of complex numbers. As with AMATH 331, this course just scratched the surface of the subject, and made me realize just how much stuff is out there to learn. A highly recommended course if you want to know about complex derivatives (which are much more interesting than real derivatives).

PMATH 347: Groups and Rings

One of my favourite courses ever taken at UW (although I think it is no longer offered). A fast-paced introduction to both group theory and ring theory, I found this course to be a fun journey, with interesting theorems around every corner. This was the first university course I’ve taken that really made me think.

I found that after taking this course, I can now read math pages on Wikipedia without getting totally lost, since they use terms like “ring” and “field” to be very general, and these terms are explained fully in this course.


SYDE 372: Introduction to Pattern Recognition

Ok intro course to classification with machine learning. Only super basic algorithms are covered, mostly variants of distance algorithms (nearest/farthest neighbours, distance to cluster means, weighted Euclidean distances). I probably knew too much of the material already to benefit from the course, but it would be a good intro if you don’t know much about machine learning. However, the exams had a lot of tedious math and contained serious errors in the questions, which was annoying.