How To Get A Solid Foundation in Compsci Mathematics
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
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.
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 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.
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: http://www.math.harvard.edu/~shlomo/docs/Advanced_Calculus.pdf
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.
>>3034 (OP)
PART 2
Algorithms
NP-hard problems
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.
Just read the Intro/First chapter (unless you have a solid understanding of classical mechanics
from these lectures: http://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:
It's like magic the first time you see it. You can now write highly advanced physics into game
player movements.
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.
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 http://www.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.
For linear algebra I would suggest Shilov, it's a fantastic book, and published very cheaply by
Dover books. Of course with all these recommendations, it is never a bad idea to read from a
few different authors, some will suit you better than others.
http://athenasc.com/probbook.html
>>3034 (OP)
http://www.amazon.com/Mathematical-Analysis-Universitext-Vladimir-Zorich/dp/
3540874518
http://www.amazon.com/Mathematical-Analysis-Universitext-Vladimir-Zorich/dp/
3540874534
Of all the analysis books I could find, that one stood out to me as the clear winner, based on
the breadth of coverage, and the well explained yet slick proof style.
http://www.amazon.com/First-Course-Graph-Theory-Mathematics/dp/0486483681/
ref=pd_sim_14_1?ie=UTF8&refRID=0F91833Y24GH2E40V7QB
If you don't like that, the authoritative text is Diestel. Might be more difficult as a first book
for a self learner.
http://diestel-graph-theory.com