Mathematics for Computer Science
courses.csail.mit.edu
courses.csail.mit.edu
When I was an undergraduate the bare minimum was:
- 2 algebra (number theory + linear algebra)
- 2 calculus (single variable)
- 2 statistics
- 1 logic
- 1 combinatorics (graph theory + enumeration)
There was no "Math for CS" course per say, there was just math you should know. And that was the bare minimum for a BCS, the BMath (CS) had even more. I myself struggled with those courses (mostly the "raw" math courses rather the CS-y ones) but I'm grateful now that I did them. Math and Computer Science are so intrinsically linked.
- Calculus I
- Calculus II
- Introductory Statistics
- College Algebra (part of the state-mandated core for all degrees)
- Calculus 1
- Discrete Mathematics
- Probability and Statistics (4000-level course)
* elementary discrete math
* intermediate discrete math / intro CS theory
* calculus I
* calculus II
* linear algebra
* probability
* an "algorithms and complexity" elective:
combinatorics, graph theory, automata, etc.
I might be missing one or two.- Linear algebra
- Calculus (single variable)
- Discrete mathematics
- Probability & Statistics
- Numerical Methods & transforms
Trigonometry Calculus I Calculus II Calculus III Differential Equations Discrete Algebra I Discrete Algebra II Statistics Applied Probability and Network analysis Numerical Analysis Engineering Physics I Engineering Physics II Algoriths and datastructures
- 4 calculus (!)
- 3 statistics (2 basic + stochastic processes)
Besides, there was a quite a bit of discrete math in mandatory theoretical CS subjects: Algorithm Analysis, Graph Algorithms, Formal Languages, Boolean Algebra, Formal Methods, etc. But I wouldn't count these as "math" proper.
We also had 2 or 3 mandatory Physics subjects. I wasn't interested in physics and found them pretty useless. Some professors justified them as an "application of advanced calculus", while the advanced calculus subjects were touted as essential to a proper understanding of physics.
Single Variable Calc (required for everyone at MIT) Multi Variable Calc (required for everyone at MIT) Math for CS (this class) Diff eq OR linear algebra
You might count the algorithm analysis class as math since it's in both the math and eecs department. Lots of people take both diff eq and linear algebra, and everyone I know also took one statistics class.
13 (Sums and Asymptotics)
15 (Generating Functions, as you mentioned)
19 (Random Processes)
20 (Recurrences)
and though they're not explicitly named as such in Chapter 5 (Induction), several of the problems in the chapter make use of them.It seems to me that the first half of the chapter on recurrences covers recurrences more from a CS viewpoint such as the recurrence they list for mergesort:
T(n) = 2 T(n/2) + n - 1
which is arguably less fundamental than the study of linear recurrences which come up more often in math. The second half of the chapter covers techniques for solving general recurrences, both for general linear recurrences and general divide-and-conquer recurrences using the Akra-Bazzi theorem (which is an extension of the Master Theorem).Thus, perhaps the chapter "Recurrences" is misnamed – the authors certainly cover elementary recurrences in the earlier chapters and leave more complex topics recurrences (such as how to solve them in general) for the end because they are less important than most of the other topics in the book.
My god, yes. I wish I would have had the foresight to have done it earlier rather than in the Spring. I am definitely not a fan of TEAL.
As a mechanical engineering major who is interesting in computer science I really enjoyed it (the Psets were a bit annoying sometimes though). The text is pretty easy to read too.