UWaterloo Course Reviews
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
 AMATH
 CHEM
 CLAS
 CS
 MATH
 MSCI
 MUSIC

NE
 NE 201 / NE 202 / NE 301 / NE 302
 NE 216: Advanced Calculus 1 for Nanotechnology Engineering
 NE 217: Advanced Calculus 2 for Nanotechnology Engineering
 NE 220L: Materials Science and Engineering Laboratory
 NE 225: Structure and Properties of Nanomaterials
 NE 226: Characterization of Materials
 NE 226L: Laboratory Characterization Methods
 NE 232: Quantum Mechanics
 NE 241: Electromagnetism
 NE 242: Electronic Devices
 NE 318: Continuum Mechanics for Nanotechnology Engineering
 NE 320L: Characterization of Materials Laboratory
 NE 330L: Macromolecular Science Laboratory
 NE 333: Macromolecular Science
 NE 334: Statistical Thermodynamics
 NE 336: Micro and Nanosystem Computeraided Design
 NE 340L: Microfabrication and Thin Film Technology Laboratory
 NE 343: Microfabrication and Thin Film Technology
 NE 344: Electronic Circuits and Integration
 NE 345: Photonic Materials and Devices
 NE 352: Surfaces and Interfaces
 NE 353: Nanoprobing and Lithography
 NE 451: Simulation Methods
 NE 471: Nanoelectronics
 NE 479: Organoelectronics
 NE 491: Nanostructured Materials
 PMATH
 SYDE
ARTS
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
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 upperyear 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
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
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
CS 485: Statistical and Computational Foundations of Machine Learning
Taught by Shai BenDavid. 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
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
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.
MUSIC
MUSIC 140: Popular Music and Culture
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
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, firstprinciples perspective. A lot of the questions end up reducing to solving a mediumdifficulty 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 "onestep", 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 Nanosystem Computeraided 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 metalinsulatorsemiconductor 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 contentheavy 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 allknowing. 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: Nanoelectronics
Course covers nanoscale electronics and quantum mechanics. We learned about singleelectron transistors which have interesting behaviour. Overall I liked the course but I think having a better solidstate physics background would have been nice.
NE 479: Organoelectronics
A wellorganized 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
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 fastpaced 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
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.