Ones for which I’ve completed a significant portion and really enjoyed.
- Algorithms for DNA Sequencing
- This course does a great job in motivating what otherwise might be dry material by linking it to applications in improving sequencing technology and impacting genomics.
- Human Behavioural Biology
- The best lecturer I’ve seen. He does an amazing job of crafting a narrative around the science.
- Machine Learning
- This course got me incredibly excited about machine learning. This course provided a solid foundation which I’ve relied on ever since to learn more about machine learning.
- Learning How to Learn
- I originally learned about this course from this article by the instructor.
- Introduction to Mathematical Thinking
- I was really curious about what it actually meant to prove something in math and this course was a great introduction that improved my logical thinking ability.
- CS50: Introduction to Computer Science
(David J. Malan)
- I loved the breadth of topics covered in this course; this was my first deep exposure to computer science and I got to learn about topics such as ciphers, sorting algorithms, hash tables, linked lists, and file I/O. The problem sets are excellent and give a sense of curious exploration.
The ones I’ve taken so far at the University of Toronto.
- STA347: Probability (David Brenner)
- STA447: Stochastic Processes (Jeffrey Rosenthal)
- CSC258: Computer Organization (Maziar Goudarzi)
- CSC473: Advanced Algorithm Design (Aleksandar Nikolov)
- APM462: Nonlinear Optimization (Jonathan Korman)
- BIO130: Molecular and Cell Biology (Melody Neumann and Daphne Goring)
- LIN101: Introduction to Linguistics: Sound Structure (Peter Jurgec)
- LIN102: Introduction to Linguistics: Sentence Structure and Meaning (Susana Bejar)
- PHL271: Law and Morality (Sophia Moreau)
- MAT257: Analysis II
- Closely follows Michael Spivak’s Calculus on Manifolds. Topics included topology, the implicit function theorem, measure theory, partitions of unity, differential forms, culminating in Stokes’ Theorem on manifolds.
- MAT267: Advanced Ordinary Differential Equations
- Covered some analysis to show existence and uniqueness theorems for ODEs, then switched to a dynamical systems perspective including phase plots, Lyapunov functions, stability of solutions, and bifurcations.
- STA257: Probability and Statistics I (Mark Ebden)
- CSC209: C & Systems Programming (Michelle Craig)
- CSC265: Enriched Data Structures and Analysis
- In addition to standard data structures and algorithms, this course covered adversary arguments to prove lower bounds on problem complexity, and the potential method for analyzing amortized complexity.
- CSC373: Algorithm Design, Analysis & Complexity (François Pitt)
- CSC411/2515: Machine Learning and Data Mining
- Focus on using a mathematical framework to understand classical algorithms leading to principled generalizations (e.g. k-means to EM algorithm, regularization as MAP estimation).
- CSC412/2506: Probabilistic Learning and Reasoning
- Independence relationships in Bayesian networks via d-separation, as well as inference and learning in other probabilistic graphical models. Focus on variational inference in latent variable models, in particular implementing a VAE from scratch.
- CSC421/2516: Neural Networks and Deep Learning
- Modern deep learning research, in particular implementing attention mechanisms in a Transformer, and implementing a CycleGAN.
- CSC2541: Machine Learning for Health
- A graduate seminar course looking at research into applying machine learning in the clinic, with major project and problem set components.
- MAT240: Algebra I (Eckhard Meinrenken)
- MAT247: Algebra II (Stephen Kudla)
- MAT157: Analysis I
- Closely follows Michael Spivak’s Calculus. This course was my first introduction to pure math, and is particularly known for rigorously constructing the real numbers using dedekind cuts in the first month.
- CSC148: Introduction to Computer Science (David Liu)
- CSC165: Mathematical Expression and Reasoning for Computer Science (Danny Heap)
- CSC207: Software Design (Lindsey Shorser and Jaisie Sin)
- CSC240: Enriched Introduction to Theory of Computation
- The most challenging course I’ve taken. Heavy emphasis on problem-solving techniques and thinking deeply combined with rigorous proofs (including formal proofs.)
- CCR199: Common Humanity
- A small seminar course looking at the idea of common humanity throughout history, with a particular focus on Apartheid in South Africa.
- LTE199: Biotechnology and Society
- A small seminar course looking at the potential impact of various biotechnologies such as CRISPR-Cas9 and paradigms such as personalized medicine.