Awesome List - Learning Computer Science & Maths


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[1]. 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.

  1. 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.
  2. Dynamic programming [self-similarity, finite subdivision rules, nonlinear equations]: Standard dynamic programming problems such as Rod Cutting, Knapsack, Matrix chain multiplication etc.
  3. 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.
  4. Greedy [goal programming, simplex algorithm, multi-criteria decision analysis]: Standard problems such as Activity selection.
  5. Search techniques [linear/vector algebra[2]]: Binary search, Ternary search and Meet in the middle.
  6. Data structures (Basic) [graph theory]: Stacks, Queues, Trees and Heaps.
  7. Data structures (Advanced)[more graph theory]: Trie, Segment trees, Fenwick tree or Binary indexed tree(BIT), Disjoint data structures.
  8. Strings [set theory]: Knuth Morris Pratt(KMP), Z algorithm, Suffix arrays/Suffix trees. These are bit advanced algorithms.
  9. Computational geometry [computational geometry]: Graham-Scan for convex hull, Line sweep.
  10. Game theory [game theory]: Basic principles of Nim game, Grundy numbers, Sprague-Grundy theorem.

** Learning Maths

  1. Calculus Revisited: Single Variable Calculus MIT
  2. Calculus Revisited: Multivariable Calculus MIT
  3. Complex Variables, Differential Equations, and Linear Algebra - MIT
  4. Linear Algebra - MIT
  5. Introduction to Linear Dynamical Systems -Stanford
  6. Probability - Harvard
  7. Intermediate Statistics - CMU
  8. Convex Optimization I - Stanford
  9. Math Background for ML - CMU

*** Other sequential courses for self learning

  1. Sequential Math course from Math Stack Columbia University
  2. Path to free open learning computer science