Throughout my time as a student, I have taken the following intersting courses (uninteresting courses have been omitted).

First Year

  • MAT157 (analysis): Calculus from scratch, starting from axioms of ordered field satisfying least upper-bound property.
  • MAT240/7 (linear algebra): vector spaces.
  • CSC148 (programmming): basic python and how to think about recursion.
  • CSC240 (intro to TCS): regular languages and how to prove programs correct.
  • MAT327 (topology): topological spaces.
  • MAT315 (number theory): natural numbers.

Second Year

  • MAT257 (analysis): multivariable calculus and Stoke’s theorem on submanifolds of Rn
  • MAT267 (ODE and stability): uniqueness and existence of solutions to ODEs.
  • MAT309 (logic!): completeness and incompleteness of FOL, along with some model theory.
  • MAT347 (algebra in the abstract): groups, rings, and modules.
  • CSC265 (data structures): designing data structures is hard.
  • CSC463 (computability/complexity): Turing machines.
  • STA257 (probability): probability spaces.

Third Year

  • MAT409 (set theory): Some basic set theory, infinite combinatorics, and something about forcing.
  • MAT354 (complex analysis): holomorphic functions and a lot of poles.
  • MAT482 (algebra/number theory in algorithms): Fast Fourier Transform and Rabin-Miller.
  • MAT357 (real analysis): metric spaces and lesbegue integration on Rn.
  • MAT367 (differential geometry): what a manifold is and how to integrate/differentiate on it.
  • MAT495 (modern computational complexity): BPP and the PCP theorem.
  • CSC373 (algorithms): greedy, dynamic programming, and approximation algorithms.
  • CSC448 (formal languages and automata): context-free language and Turing machines.
  • PHL354 (philosophy of math): Structualism, Quine, and fictionalism.
  • CSC324 (programming languages): recursion and semantics of programming languages.

Fourth Year

  • MAT457 (harder real analysis): measures, integration, some basic things about Banach spaces.
  • CSC369 (operating systems): operating systems: memory management, file systems, scheduling.
  • APM461 (combinatorics): probabilisitic method, linear algebra method, and brutally estimating quantities using concentration inequalities.
  • MAT495 (model theory): back and forth constructions, daily application of the compactness theorem, stability theory.

Master’s

  • PMATH646 (commutative algebra): modules, tensor products, localizations, Noether’s normalisation lemma, and other commutative ring jazz
  • PMATH753 (functional analysis): Hilbert spaces, Banach spaces, Hahn-Banach
  • PMATH950 (category theory and homological algebra): Categories, Ext and Tor and all that Jazz
  • PMATH868 (Riemannian geometry): metric, riemannian manifold, bundles
  • PMATH667 (algebraic topology): baby course covering simplicial homology and basic homotopy theory
  • PMATH764 (algebraic geometry): Nullstellensatz, projective varieties, and self studied some basic sheaf theory