How to get a solid foundation in compsci mathematics

This guide assumes you forgot everything from highschool. No you don't have to learn any of this in order to program you can just start hacking around every .c file in your kernel.org git source clone and see what happens. Why would you want to learn math? Because it will change your thinking. You won't be easily fooled by bullshit, you will have tools to sort through obvious logical fallacies. You will be able to optimize programs and create your own algorithms. You will be able to estimate. Above all, you will be able to solve problems using computation which is what computer science is all about. And least of all, you will get paid more than anybody else without this knowledge so if your goal is shekels then read on. Note: DO THE EXERCISES. You won't learn otherwise. Books instead of video lectures were chosen because they've lasted 30+ years some of them in relevancy in the field, also lectures disappear all the time like when MIT nuked all one prof's Physics OCW lectures because he tried to pickup a student, setting a precedent that at anytime this information can disappear. Read a book nigga.

Math Preliminary

Basic Mathematics by Serge Lang

Buy/Pirate this book (he's dead). It's highschool math, from the perspective of a Mathematician. You will learn up Pre-Calculus and be prepared for rigorous proofs later.

An Introduction to Mathematical Reasoning" by Peter J Eccels

This changes you from rote drilling and being a human calculator in highschool to learning what math actually is, and what proofs do. Excellent, excellent book.

How to Solve It by G. Polya

How to do proofs, written in 1940s and still for sale in every Chapters/B&N bookstore to this day because it's the best proof helper that exists.

Other urls found in this thread:

math.harvard.edu/~shlomo/docs/Advanced_Calculus.pdf
cglab.ca/~michiel/DiscreteStructures/
youtube.com/channel/UCG96LXNYz9x7eTqSRtQ2R9A
mitpress.mit.edu/books/introduction-algorithms
mitpress.mit.edu/sites/default/files/titles/content/sicm/book.html
theoreticalminimum.com/courses/classical-mechanics/2011/fall
groups.csail.mit.edu/mac/users/gjs/6946/calculus-indexed.pdf
stat.cmu.edu/~larry/all-of-statistics/
twitter.com/SFWRedditVideos

Welcome to Proofs

>Calculus" by Spivak
Actually, you are learning ANALYSIS, in addition to calculus. Torrent the 3rd edition w/the answer book. This is a fucking hard assed book, you may be better off reading "Advanced Calculus" which is actually easier, as the intro points out that Spivak's exercises are difficult as shit:
math.harvard.edu/~shlomo/docs/Advanced_Calculus.pdf
Discrete Math Intro

cglab.ca/~michiel/DiscreteStructures/ it also comes with lectures on jewtubes
youtube.com/channel/UCG96LXNYz9x7eTqSRtQ2R9A Doing real discrete math and probability.

>Linear Algebra by Friedberg, Insel and Spence
Get the latest version (piracy). It's proof centric, this will come in handy later when you need to understand some Linear applications and don't know how something works so can revert back to your training in LA in proofs. LA is heavily, heavily used in all game programming. Also in cryptography and numerous other CompSci fields.

Algorithms

>Intro to Algorithms aka CLRS

mitpress.mit.edu/books/introduction-algorithms this will teach you sort of an Art of Programming lite.

NP-hard problems

>Concrete Math by Knuth et all (CONtinuous and disCRETE math)
This is chapter 2 of The Art of Computer Programming (TAOCP) "Mathematical Preliminaries" in a format that isn't as terse. Complete this and you can do any of the TAOCP books, and solve any problem using discrete mathematics in computer science.

Bezerker level, how the fuck did they do that tier
>Calculus on Manifolds by Spivak.
This notation is used by Gerald Sussman (of SICP fame) in all his texts. It's a great fleshing out of multi variable calculus, but you absolutely have to do the exercises, it's a small book but difficult.

>Structural Interpretation of Classical Mechanics Aka SICM free online mitpress.mit.edu/sites/default/files/titles/content/sicm/book.html
Just read the Intro/First chapter (unless you have a solid understanding of classical mechanics from these lectures: theoreticalminimum.com/courses/classical-mechanics/2011/fall then read the whole book)
You write out math equations in scheme. You will get that "aha" moment like when you read SICP but for Math. If you just read the first chapter/intro you will be able to convert math equations into functions whenever you come across them. If you read the whole book you will:
>write a lagrangian as a normal Scheme function
>symbolically take derivatives of that to get equations of motion
>print those equations with LaTeX.
>compile those equations to native code and numerically integrate and plot the motion of the system
It's like magic the first time you see it. You can now write highly advanced physics into game player movements.

Master of the Universe tier

>The Art of Computer Programming
any volume. I would start with 4.1a Combinatorial Algorithms. 4.1b is out on Knuth's homepage and it contains all new math that isn't even on Wikipedia yet. The exercises are in the book for a reason, it's not just reference it's to help you understand the material so try some of them.

>Functional Differential Geometry by Sussman.

groups.csail.mit.edu/mac/users/gjs/6946/calculus-indexed.pdf SICP is the gold tier for Computer Science, SICM is gold tier for Physics, and Functional Differential Geometry is gold tier for applied mathematics. This again converts equations into scheme functions. Treating data as a distribution in high-dimensional space is at the core of machine learning, and differentiating across those dimensions is typically how learning is done. There's a whole area called Information Geometry which treats the parameter spaces of statistical models as Riemannian manifolds under the Fisher information metric you'll learn in machine learning courses.
In SICM the same authors mention that a computational approach to calculus revealed errors in their own understanding of classical mechanics equations (such as Lagrange's equations), and they introduced new notation to address the problem. Functional Differential Geometry picks up that idea and runs with it, debugging general relativity and quantum mechanics.

Conclusion
This list is about learning base theory, so you can branch off and learn anything you want yourself like a formal course in Statistics stat.cmu.edu/~larry/all-of-statistics/ or go into number theory for cryptography. With this foundation there is literally no course or advanced field of Compsci you can't take.

Hey thank you for your contribution, I'm glad there are still people here that try to help by providing something besides shitposting.

>mfw

>literally no one on Sup Forums cares

Is this list legit or is it bullshit? If bullshit I'm going to waste my next year on this single post by OP
If legit, thanks user, you will turn my life around

Wow a useful thread.

Thanks for the thread, useful stuff.

>is this useful
How can you not decide this for yourself?

Protip: yes it is

Ok should I start with this or should I read rudin and all?

just read this.

You write like a poo

hmm does korean english sound like poo english? didn't know that

>literally no one on Sup Forums cares
It not that no one cares. The problem is that anyone interested in this topic doesn't need anything ITT. Every CS department posts their curriculum and/or classes online. So at the very least you already know which books every CS student in the USA is using.

If someone is interested then they are already a CS major or they have used Google.

>all that shit

All you need to get started with compsci are the three books in picrelated. If you want, you can throw "Concrete Mathematics" in there, too.

An *actual* foundation: learn Algebra, Trigonometry, Differentiation, Integration, and the material in Book of Proof.

From there, pick up any compsci text that interests you. Always read the preface: it will tell you what prerequisite knowledge (if any) the material in the book assumes. If it has a prereq, just find a book on that subject -- the math you've learned from picrelated will allow you to tackle new maths subjects with ease.

WRONG

Thanks OP. Are you the one who did this like a year ago? Either way this is great. Love the fact that this site gets to self improvement once in awhile between all the shit posting.

this is the sticky in infinity chan /prog/

Is this list complete? Or there are still some other maths books necessary? Also are some of the books skippable, for example the physics one because I'm never going to program games? Lastly how many years/months do you think completing these books would take if average high schooler(which I am, btw)

Btw, Thanx OP you seem like a great guy

this list is copy paste from infinity chan's stcky in /prog/ check the discussion there

OP you forgot statistics

Ah thats where I have seen this.

>How to do proofs
I cant find this book. Is the name off or something? There is a how to read and do proofs. Anyone got an author?

>>How to do proofs
>I cant find this book. Is the name off or something? There is a how to read and do proofs. Anyone got an author?

Ah ignore this. Now I see that sentence is describing the book above.