On my pursuit to sharpen my thinking and increase my personal toolkit, I’ll be speedrunning a math degree and figured it would be beneficial to write up the curriculum. The goal for this is to be self-followable so anyone who’s also interested in speedrunning a math degree at their own pace would be able to.
Why?
Why not? Well, to be truthful, I wanted to go for a pure math degree when I went to school but, since the university I went to didn’t offer a program for it, I opted for computer science. Ended up staying a semester before figuring it’d be better to grow through five years in the industry than five years scrambling for a diploma so here I am now.
How?
For this, I will be going with MIT’s Applied Math program and their equivalents in OpenCourseWare for the courses that were available (a common misconception is that all courses are listed on OCW but not all of them actually have lectures/notes or other materials to work off of).
Syllabus
Prelimary
This is what the “freshman year” equivalent will be and a place to brush up on prereqs
Description | Link |
---|---|
Calc 1 | Khanacademy Calc 1 |
Calc 2 | Khanacademy Calc 2 |
Multivar Calc | Khanacademy Multivar Calc |
For each of these, there’s a Course Challenge
available that you can take to verify your knowledge after completing or take in place of going through the whole session
Summer between Freshman and Sophomore
Things to do to lock down some of that new calc knowledge or just a way to pass by the time
Description | Link |
---|---|
Integration Bee | https://www.youtube.com/results?search_query=integration+bee |
Integration Bees are like spelling bees but for solving an integral with an allotted time against an opponent and a good way to develop some pattern matching for working with non-trivial antiderivatives
Sophomore
These are the first courses that are actually with some nitty gritty math
Course ID | Name | Links |
---|---|---|
18.03 | Differential Equations | Fall 2011 |
18.04 | Complex Variables with Applications 37 | Spring 2018 |
18.06 | Linear Algebra | Spring 2010 |
18.200 | Principles of Discrete Applied Mathematics | Fall 2004 |
18.300 | Principles of Continuum Applied Mathematics | Spring 2009, Spring 2006, Spring 2003 |
Junior
These courses deviate from general math requirements in other programs
Course ID | Name | Links |
---|---|---|
18.212 | Algebraic Combinatorics | Spring 2019, Spring 2009 |
18.410 | Introduction to algorithms | Fall 2005 |
18.424 | Information Theory | Spring 2016 |
18.600 | Probability and random variables | Fall 2019 |
Senior
Some fun stuff to finish off the ‘degree’
Course ID | Name | Links |
---|---|---|
18.303 | Linear partial differential equations | Fall 2006 |
18.330 | Introduction to numerical analysis | Spring 2004, UCLA Remote Lectures Spring 2020 |
18.353 | Nonlinear dynamics I | Fall 2012 |
18.354 | Nonlinear dynamics II | Spring 2015 |
Post-Senior
Some additional courses that seemed of interest
Course ID | Name | Links |
---|---|---|
(Harvard) Math 122 | Abstract Algebra | Video Lectures Course Page |
18.S097 | Applied Category theory | January 2019 |
15.070 | Advanced Stochastic Processes | Fall 2013 |
Projects
One of the pitfalls of a self-studied curriculum is that there isn’t a way to verify the learning of some material so, as a solution to this, I’ve devised a shortlist of project ideas that would be fun to work on. Not all of these are immediate applications to the materials in the degree but seem interesting nonetheless
- Build/train a NN to learn XOR (as a simple introductory project to start on ML)
- Find a paper on some ML model and implement from scratch (ie node2vec)
- Contribute to a theorem prover (ie Lean)
- Using JS/WASM for in-browser privacy preserving machine learning
- Read a Twitter account to get insights on type of content etc
- As a platform, Twitter is becoming a place where people find connections/jobs so it would be nice to be able to get a breakdown of an account like you can get a breakdown of an individual on LinkedIn
- Comma.ai’s speed challenge
- Re-implementing something built by OpenAI