Plan/sequence to learn maths for computer science Tl:dr- In order; graph theory, linear algebra, number theory, and multi-criteria decision analysis. Game theory, set theory, nonlinearity, computational geometry a bonus. Let’s say you’re learning some new algorithms. Your list might look something like the below list. I’ll add in brackets the sort of math you learn about by learning the algo if you get lost down the wiki-rabbit-hole. If you want to solve other similar problems, more of that sort of math will help.
- Graph algorithms [graph theory]: Breadth first search(BFS), Depth first search(DFS), Strongly connected components(SCC), Dijkstra, Floyd-Warshall, Minimum spanning tree(MST), Topological sort.
- Dynamic programming [self-similarity, finite subdivision rules, nonlinear equations]: Standard dynamic programming problems such as Rod Cutting, Knapsack, Matrix chain multiplication etc.
- Number theory [Number Theory]: Modular arithmetic, Fermat’s theorem, Chinese remainder theorem(CRT), Euclidian method for GCD, Logarithmic Exponentiation, Sieve of Eratosthenes, Euler’s totient function.
- Greedy [goal programming, simplex algorithm, multi-criteria decision analysis]: Standard problems such as Activity selection.
- Search techniques [linear/vector algebra]: Binary search, Ternary search and Meet in the middle.
- Data structures (Basic) [graph theory]: Stacks, Queues, Trees and Heaps.
- Data structures (Advanced)[more graph theory]: Trie, Segment trees, Fenwick tree or Binary indexed tree(BIT), Disjoint data structures.
- Strings [set theory]: Knuth Morris Pratt(KMP), Z algorithm, Suffix arrays/Suffix trees. These are bit advanced algorithms.
- Computational geometry [computational geometry]: Graham-Scan for convex hull, Line sweep.
- Game theory [game theory]: Basic principles of Nim game, Grundy numbers, Sprague-Grundy theorem.
** Learning Maths
- Calculus Revisited: Single Variable Calculus MIT
- Calculus Revisited: Multivariable Calculus MIT
- Complex Variables, Differential Equations, and Linear Algebra - MIT
- Linear Algebra - MIT
- Introduction to Linear Dynamical Systems -Stanford
- Probability - Harvard
- Intermediate Statistics - CMU
- Convex Optimization I - Stanford
- Math Background for ML - CMU
*** Other sequential courses for self learning