-
Notifications
You must be signed in to change notification settings - Fork 21.9k
Foundations draft
This section is for housing material that is prerequisite to taking certain courses in computer science. The material does not directly fall into the computer science field, and you should utilize it only as needed based on your level and background.
- None
Format | Resource | Use cases |
---|---|---|
course |
Khan Academy Math K-8 | learn |
- High School Math
- K-8 Math
Format | Resources | Use cases |
---|---|---|
course |
Khan Academy: High school math (all sections) | learn |
course |
ASU College Algebra and Problem Solving |
practice review
|
course |
ASU Precalculus |
practice review
|
forum |
/r/learnmath | help |
- Single-variable Calculus
- Linear Algebra (Beginner track)
The best online courses for this subject are MIT Calculus 1A through 1C. If you prefer an interactive textbook format, Ximera Calculus 1-2 is the most comprehensive.
Calculus Made Easy is strongly recommended as the first resource for those who find the subject intimidating, but it is neither interactive nor comprehensive.
AP Calculus AB should correspond to Calculus 1A and 1B. AP Calculus BC should correspond to Calculus 1C. If you took these courses recently in high school, we recommend using Expii Calculus 1 to test yourself and see if you need more review. If you never took those courses or it's been a long time, we suggest diving straight into MIT Calculus 1A through 1C.
- High School Math
Format | Resource | Use cases | Length |
---|---|---|---|
text |
Calculus Made Easy (Silvanus P. Thompson) | learn |
292 pages |
interactive text |
Ximera Mooculus Calculus 1 | learn |
|
interactive text |
Ximera Mooculus Calculus 2 | learn |
|
course |
MIT Calculus 1A: Differentiation | learn |
130 hours |
course |
MIT Calculus 1B: Integration | learn |
130 hours |
course |
MIT Calculus 1C: Coordinate Systems & Infinite Series | learn |
130 hours |
interactive text |
Expii Calculus 1 |
practice review
|
|
forum |
/r/learnmath | help |
- Core Math
The recommended resource here is MIT Multivariable Calculus along with the Strang textbook Calculus.
An alternative for those seeking a purely text-based approach is to follow the Ximera Calculus 3 interactive textbook.
- Single-variable Calculus
Format | Resource | Use cases | Length |
---|---|---|---|
interactive text |
Ximera Mooculus Calculus 3 | learn |
|
text |
Calculus (Gilbert Strang) | learn |
|
course |
MIT Multivariable Calculus | learn |
156 hours |
course |
Khan Academy Multivariable Calculus |
practice review
|
|
forum |
/r/learnmath | help |
- Probability
- Linear Algebra (Advanced track)
Those who are brand new to linear algebra and who only have a background in high school math or single-variable calculus should take the Beginner track. Note that the textbook by Boyd and Vandenberghe does not contain all the topics of a full course on linear algebra, so if you choose to learn linear algebra exclusively by textbook you may need to transition to another resource later, such as Jim Hefferson's textbook from the Advanced track. However, as not all of linear algebra is necessarily used in every course, a more pragmatic approach to this problem might be to attempt taking the course that requires linear algebra and seeing what topics you are actually missing for understanding the course content, and then selectively learning those topics as needed.
If your math background is already very strong (i.e. through multivariable calculus), or you have some experience in linear algebra, you may find the Beginner track too slow or easy. In this case you could consider the Advanced track, which consists of Gilbert Strang's materials (e.g., MIT Linear Algebra). However, Strang's textbook is not available for free and his course requires you have access to MATLAB. If you do not wish to buy Strang's textbook, you could try using Hefferson's free textbook. And it may be possible to use GNU Octave instead of MATLAB, but we have not tested this option.
Gilbert Strang's material on linear algebra is perhaps the very best on this topic, so if you are planning to study advanced topics in linear algebra, you may want to look at Advanced after Beginner.
If you have already studied linear algebra but it's been a long time, the Advanced track contains a review/reference text. Go through the text and confirm that you are familiar with everything on there. Whenever you find you have forgotten something, go through Strang's online course to find that material and review it.
- High School Math
Format | Resource | Use cases | Length |
---|---|---|---|
video |
Essence of Linear Algebra | prepare |
|
course |
UT Linear Algebra: Foundations to Frontiers | learn |
120 hours |
text |
Applied Linear Algebra (Stephen Boyd and Lieven Vandenberghe) | learn |
473 pages |
forum |
/r/learnmath | help |
- Multivariable Calculus
- MATLAB license
Format | Resource | Use cases | Length |
---|---|---|---|
course |
MIT Linear Algebra | learn |
130 hours |
book |
Introduction to Linear Algebra (Gilbert Strang) | learn |
584 pages |
book |
Linear Algebra (Jim Hefferson) | learn |
507 pages |
text |
"Linear Algebra Review and Reference" | review |
26 pages |
forum |
/r/learnmath | help |
- Machine Learning
- Cryptography
- Graphics
- Robotics
The MIT Probability course is much more in-depth than one would need for much of computer science, but it would be critical for those who are going into data science.
Our discrete mathematics materials will also teach some probability, which may be sufficient for some computer science students; however, it might be necessary to supplement knowledge of discrete probability using some of the other resources here.
- Multivariable Calculus
Format | Resource | Use cases | Length |
---|---|---|---|
text |
Grinstead and Snell’s Introduction to Probability | learn |
518 pages |
course |
MIT Introduction to Probability: The Science of Uncertainty | learn |
216 hours |
course |
Khan Academy Statistics & Probability |
practice review
|
|
forum |
/r/learnmath | help |
- Core Distributed Systems
- Machine Learning (TODO)
The first course is a very popular introduction to physics that you can take to get you interested in the topic, but it is optional.
- Single-variable calculus
Format | Resource | Use cases | Length |
---|---|---|---|
course |
UVA How Things Work: An Introduction to Physics |
prepare inspiration
|
17 hours |
course |
Rice Mechanics, Part 1 | learn |
36 hours |
course |
Rice Mechanics, Part 2 | learn |
36 hours |
interactive text |
Expii Mechanics |
practice review
|
|
course |
Rice Electricity and Magnetism, Part 1 | learn |
70 hours |
course |
Rice Electricity and Magnetism, Part 2 | learn |
70 hours |
interactive text |
Expii Electricity, Magnetism, Optics |
practice review
|
- Advanced Computing Systems