layout | title | permalink | tags |
---|---|---|---|
page |
Misc. |
/misc/ |
misc |
Ones for which I've completed a significant portion and really enjoyed.
- Algorithms for DNA Sequencing
(Ben Langmead)
- This course begins by explaining how sequencing actually works. According to James Somers, understanding the methods, like sequencing, used to study biology is a more effective way to acquire a "reading knowledge" of biology.
- The course focuses on string algorithms. Presenting this content in the context of impacting genomics made it far more interesting than if it was presented abstractly.
- Human Behavioural Biology
(Robert Sapolsky)
- The best lecturer I've seen. He does an amazing job of crafting a narrative around the science.
- Machine Learning
(Andrew Ng)
- 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
(Barbara Oakley)
- I originally learned about this course from this article by the instructor.
- Introduction to Mathematical Thinking
(Keith Devlin)
- 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)
- In this course we proved that you can uniformly sample a real number on an interval by uniformly sampling the bits of that number (or a digit in whichever base you like), to whatever precision you like. In other words, we constructed the continuous uniform distribution from the discrete uniform distribution.
- Besides this result being beautiful in its own right, it suggests an implementation of uniform sampling on a computer (though I'm not sure if it's practical).
- In general the theme of the course was constructing complex distributions from simpler ones and proving things "structurally" (instead of manually calculating expectations by integrating).
- STA447/2006: Stochastic Processes
(Jeffrey Rosenthal)
- The course focused on Markov chains. Many of the results about convergence are subtle and hard to understand intuitively without a grasp of real analysis which I did not have.
- We briefly talked about Brownian motion and other continuous time stochastic processes, but once again, these were hard to get a handle of without the proper background in analysis.
- I need to take real analysis to understand these things!
- CSC258: Computer Organization
(Maziar Goudarzi)
- This course is an ECE course that CS students are required to take, and most dread it. While it has a heavy workload, I found the course fascinating.
- Each week we would learn about the implementation of a circuit component, and the next week that circuit component would become a black box which we would use to construct the next circuit component. For example, we started with transistors and eventually learned about flip-flop circuits.
- Programming in Verilog was unintuitive. It's a language that's basically HTML for circuits, but designed to have an imperative feel like C or Python. We also learned some Assembly which was cool in the way that all low-level programming languages are, but also not fun for the same reasons. Luckily we only wrote code snippets in this course so we just did the fun bits.
- CSC473: Advanced Algorithm Design
(Aleksandar Nikolov)
- One of the best courses I've taken. The focus is on randomized and approximation algorithms (course website). Such a breadth of topics is covered that it's hard to summarize.
- One random cool thing I learned about was reservoir sampling, though we didn't do much streaming algorithms in general. Tim Vieira has a few posts about it.
- Locality sensitive hashing is cool.
- We learned some cool techniques like Chebyshev's inequality, Chernoff bounds, and complementary slackness in linear programming.
- The algorithms we covered solve foundational problems in a general way. We understand how these algorithms work and their tradeoffs. They have at most a handful of parameters that need to be tuned according to the tradeoffs the user wants. Contrast this with machine learning, where often we want to solve a specific problem better than a general algorithm could by leveraging data. We don't understand a lot of machine learning algorithms nearly as well or their tradeoffs with different parameters. I wonder how much this has to do with the fields being fundamentally different versus one simply having better develped theory.
- APM462: Nonlinear Optimization
(Jonathan Korman)
- We learned some basics about convexity (zeroth, first, and second order conditions). I wish we'd done more, since it seems like it has the right tradeoff between being tractable and becoming useful (at least according to Boyd and Vandenberghe).
- We learned about variational optimization, which usually means minimizing an integral over a space of functions instead of over vectors. It seems cool but probably only useful for physics.
- BIO130: Molecular and Cell Biology
(Melody Neumann and
Daphne Goring)
- My first course in biology since the 10th grade. I went to Con. Hall for the first time for lectures for this class.
- It was so much fun diving into the details and learning about biology. Surprisingly, I found the labs very useful. They gave me a taste of how knowledge is acquired in biology, which makes it much easier to understand what is known in biology.
- LIN101: Introduction to Linguistics: Sound Structure
(Peter Jurgec)
- Peter Jurgec is a very engaging lecturer. This course was full of moments where we would learn a concept that formalized something we already had an intuitive feel for. One very simple example was that the only difference between the "s" and "z" sounds is that we engage our vocal chords to make the "z" sound.
- LIN102: Introduction to Linguistics: Sentence Structure and Meaning (Susana Bejar)
- PHL271: Law and Morality (Sophia Moreau)
- MAT257: Analysis II
(Edward Bierstone)
- 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
(Mary Pugh)
- 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
(Aleksandar Nikolov)
- 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
(Roger Grosse)
- 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
(Jesse Bettencourt)
- 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
(Roger Grosse)
- Modern deep learning research, in particular implementing attention mechanisms in a Transformer, and implementing a CycleGAN.
- CSC2541: Machine Learning for Health
(Marzyeh Ghassemi)
- 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
(Joe Repka)
- 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
(Faith Ellen)
- 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
(John Noyes)
- 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
(John Coleman)
- A small seminar course looking at the potential impact of various biotechnologies such as CRISPR-Cas9 and paradigms such as personalized medicine.