Judging by the URL, this book was used for CMU's 15-151 / 21-128, which is a first-semester course for CS and math undergrads. Nowadays, the course uses [0].
If we're dropping links, here's the one [0] from my undergrad discrete math course that seems to have a lot of overlap with the topics in the CMU book. Our professor called it "notes" but it's more like a treatise...
That book was used in my "intro to higher math" class my freshman year. A very humbling experience, seeing that cover again gave me a bit of a knot in my stomach.
Every chapter of the OP book has an introduction which has the following subchapters: Objectives, Segue from previous chapter, Motivation, Goals and Warnings for the Reader. Which I really appreciate and I think its a great way to teach stuff, especially mathematics, since all those chapters contextualize the coming topic in various ways. (E.g. I imagine ‘Motivation’ does this with respect to the history and origins of the idea and ‘Segue from previous chapters’ contextualizes it with reference to the stuff reader has learnt so far. I didn’t read anything yet but it looks promising
As a CS major who went to CMU years ago, my favorite book from all of my professors was for my 15-213 class called Computer Systems: A Programmers Perspective
I remember at the time the book was in loose leaf paper so it warms my heart to see the book has a 3rd edition. It was used as a core part of teaching assembly, memory representations, and getting students ready for the operating systems class. When I help people learn to program, it's the only book I think is a must have:
We used this for my Computer Architecture class in college and it's one of the few textbooks that I wish I had kept around. I had a used copy so not selling/returning it to the bookstore really wouldn't have been too impactful at the time. Now that I'm wanting to get back into low-level programming, I miss it even more.
Is there a book or resource you'd recommend for operating systems? I recently finished CS:APP and really enjoyed it. Though I've been programming for ~7 years and felt that made it easier to digest.
Does anyone know of an entry level book that could take someone through say, high school math to college alegbra / calculus?
This is my singular biggest hurdle in going back to school to finish my degree and I'd love to fill the gaps I have around mathematics so I can not only finish my degree; I'd also like to participate in some more advanced computer science that rely heavily on underlying computation.
At Math Academy (https://mathacademy.com), we created a series of courses, Mathematical Foundations I, II, & III, that will take a student from basic arithmetic through calculus and prepare them for university-level courses like Linear Algebra, Multivariable Calculus, Probability & Statistics, etc. You can jump in at any with an adaptive diagnostic that will custom fit the course to you based on your individual strengths and weaknesses.
It's not free, but our adaptive, AI-driven algorithms makes it the most efficient way to learn math that you're going to find. We've had numerous students master 3-5 years of math in a single year.
We're still in beta and haven't done a proper Show HN yet, but we're getting there!
I'm the founder, so I'd be happy to answer any questions.
600 USD a year is definitely worth it to learn any highly technical topic: mathmematics, physics, chemistry, CS, engineering, etc.
BUT... I'm highly skeptical of any online math course that claims many students have mastered 3-5 years of math in a year. How many hours of study in what subjects? How was mastery measured... did they take the grad school math GRE and ace it? Mastery takes continued practice... I'm highly s
Most online math courses I've looked into [for my friends, my kids, etc.] are "paper thin" and contain less than 25% of the topical matter, descriptive detail, and depth of a good book on the subject... and I'm actually being generous.
I hope your courses are going at least as deep, or offer the capability to, as good books on the various topics. For instance, if linear algebra does not go as deep as Strang + VMLS[0]... folks should just get those two books (VMLS is free), plus watch some youtube, like 3blue1brown.
When I am ready to dive into this again, I will definitely look at this. I know I need concrete time dedicated to this sort of thing (repetition is the only way to master it really) but I'll circle back around to this soon!
Looks great and was ready to sign up but I surely wasn't expecting that price!
I am not saying it is not worth that, but as someone who has tried to start learning math on my own only to quit afterwards for whatever reason, it's a big risk to take.
I think you might like my book "No Bullshit Guide to Math & Physics"[1,2,3], which contains a condensed review of high school math (a.k.a. algebra and precalculus), then explains PHYS and CALC topics in an integrated manner.
It's not one book, but for everything before calculus it would be difficult to beat the books in Israel Gelfand's High School Mathematics Correspondence Curriculum [0]. These are designed for self study and give a fresh perspective on topics they cover.
Excellent recommendation; they are very good books to start with. Concepts are clearly explained and I wish every mathematics textbook was structured like this. Some people are biased against these books because they're Soviet, but I find that attitude parochial. If we're judging textbooks on their merits alone, these will get you to Calculus.
Check out Kahn Academy, they have a gamified course to guide you through the equivalent of a high school and early college math curriculum. AFAIK it's free?
Khan Academy is great. When I was taking AP calculus in highschool I failed to complete any homework and barely passed the class. But when it came time for the AP test I binged Khan Academy videos for 3 days beforehand and ended up getting a 5 (the max score). Great resource and even bingeable
Specifically these three courses [0][1][2] will take you from basic algebra to precalc. They're very thorough and I've found them extremely useful in upgrading my high school level math skills. I have heard that their calculus courses aren't sufficient though, and that it should be learned from somewhere else.
The aops books [0] will take you from prealgebra all the way to calculus and discrete math and will give you a foundation strong enough to enter any undergraduate math program in the world.
And the books all have complete solutions manuals available so you can get immediate feedback.
You could use programs like Anki to schedule your review of defintions you've understood and problems you've solved to supercharge your learning as well.
Very fast calculus: Consider a standard car with a speedometer (reports how fast are going) and an odometer (reports how far have gone).
Easily enough we can take the speedometer readings, say, 1 time each second, and calculate a good approximation to the odometer readings. That is a 1 second approximation to the calculus operation of integration.
Similarly we can take the odometer readings, say, 1 time each second, and calculate a good approximation to the speedometer readings. That is a 1 second approximation to the calculus operation of differentiation.
If we use smaller time intervals than just 1 second, then we will usually get a more accurate approximation. It is a theorem that, under mild assumptions, as we let the lengths of the time intervals shrink toward 0, the results of the operations will reach limits and quit changing.
Those limiting values are the actual definitions of differentiation and integration.
No big surprise, under mild assumptions, if we start with the odometer readings, differentiate to get the speedometer readings, and integrate to get back the odometer readings, then we really will get back the odometer readings. That is the fundamental theorem of calculus.
Some common mild assumptions are basically that the speedometer readings change only continuously (no jumps) over time and we are working over only finitely long time intervals.
Newton's second law of motion
force = mass x acceleration
essentially guarantees the continuity of the speedometer readings and, thus, justifies the integration back to the odometer readings.
Of course, calculus and Newton's second law of motion are close cousins in both theory and applications -- no big surprise since Newton essentially created both (might mention Leibniz and some others).
Can quickly show that if we integrate time t, we get (1/2)t^2. So if we differentiate (1/2)t^2 we will get back t.
A calculus course will show how to differentiate and integrate a wide variety of mathematical expressions, polynomials, sines and cosines, products, quotients, composite expressions, etc.. E.g., differentiate sine(t) and get cosine(t). Differentiate cosine(t) and get -sine(t). Can also find many cases of arc lengths, areas, volumes.
Suppose we are starting a business. At time t, let the revenue be y(t). Suppose we have argued that as we reach all our target customers, our monthly revenue will be b. Suppose we argue that due to word of mouth advertising the rate of growth is proportional to both the number of happy customers talking and the number of target customers not yet customers listening. Denote the rate of growth of y(t), that is the derivative, by y'(t). Then for some constant of proportionality we should have
y'(t) = k y(t) ( b - y(t) )
Of course we know current revenue, say, at time t = 0, that is, y(0).
Then by the first weeks of calculus, can show that, with TeX syntax,
y(t) = { y(0) b e^{bkt} \over y(0) \big
( e^{bkt} - 1 \big ) + b }
More generally
y'(t) = k y(t) ( b - y(t) )
is an example of an initial value problem
of a first order, linear, ordinary differential
equation and an introduction to a course in ordinary differential equations.
Calculus has wide applications to physical science, engineering, economics, finance,
spread of diseases, etc.
Curious if I could find another interesting way to learn math for someone who hasn't gone to college, I asked chatGPT to cluster 20 animal emojis by taxonomy and use them to explain Affinity Propagation like I'm 5 year old. (I'm an idiot.) More or less, the lion emoji wants to be friends with the tiger emoji more than the dog emoji with some explanation of the math and math symbols in between.
```
For example, when Scar wanted to be king, he sent a "responsibility" message to the other big cats, trying to convince them that he should be the leader. However, the "availability" message he received back was weak because most animals didn't trust him.
Meanwhile, Simba sent out a strong "responsibility" message showing he could be a good leader, and in return, he got a strong "availability" message back with many animals showing support. That's why Simba was a better leader for the Pride Lands, according to Affinity Propagation!
Same here! May I ask which field of programming you went into? And how you feel about being a programmer?
I often wonder how it might have been if I just had stayed with math. Especially, after years of doing regular programming for the Web, recently I had to develop a computational geometry library. It had been years since I graduated but really made me feel nostalgic. I think I lost something when I left the field, but then again life is a lot easier now...
At some point I was interested in learning to read and write proofs.
I did the "Introduction to Mathematical Thinking" MOOC from Keith Devlin. The curriculum is available as a book as well.
The class is basically how to write and read proofs for non-math majors. It starts pretty slow, but gets harder at some point. The number theory proofs were fun.
You 'got to' grade others proofs online, and they graded yours which was an interesting way to get familiar with reading and writing proofs.
I recommend it because instead of an area of math it focuses on what it means to prove something. And the teacher is pretty entertaining.
That book has a completely different focus... breadth instead of understanding argumentation.
I agree that the Programmer's Introduction to Mathematics is more likely to contain useful content (instead of being about how to develop the ability to reason carefully). It also has a LOT more breadth than the OP.
The free part of Chapter 3 "On Pace and Patience" is a key very important attitude toward learning from this book (especially on your own). If you are thinking about studying from this book, make sure you philosophically agree.
I tried to copy and paste a paragraph here, but it looks like it has been ROT-13 encoded in the PDF (or something)!
> [...] mathematical culture requires being comfortable being almost continuously in a state of little to no understanding It's a humble life [...]
With that title and reception I can imagine people bookmarking this for „later“ and feeling good about it. But who reads that stuff really?
To each their own, but 700+ pages for material that is done in my experience in the first 2-3 weeks of undergraduate math is more disheartening than empowering for a student, in my opinion.
If you can open a math book anywhere in the last 20% of pages and just start reading, you are looking at pop science and not lecture notes.
[0] https://infinitedescent.xyz/
[0] https://www.goodreads.com/book/show/445059.Mathematical_Thin...
[0] https://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf
That said, OP's book looks more conversational in tone, which I personally have a slight preference for.
I remember at the time the book was in loose leaf paper so it warms my heart to see the book has a 3rd edition. It was used as a core part of teaching assembly, memory representations, and getting students ready for the operating systems class. When I help people learn to program, it's the only book I think is a must have:
https://www.amazon.com/Computer-Systems-Programmers-Perspect...
What are the other books that keep around or wish to keep around?
This is my singular biggest hurdle in going back to school to finish my degree and I'd love to fill the gaps I have around mathematics so I can not only finish my degree; I'd also like to participate in some more advanced computer science that rely heavily on underlying computation.
https://mathacademy.com/courses/mathematical-foundations-ihttps://mathacademy.com/courses/mathematical-foundations-iihttps://mathacademy.com/courses/mathematical-foundations-iii
We also have courses on Linear Algebra and Mathematics for Machine Learning:
https://mathacademy.com/courses/linear-algebrahttps://mathacademy.com/courses/mathematics-for-machine-lear...
It's not free, but our adaptive, AI-driven algorithms makes it the most efficient way to learn math that you're going to find. We've had numerous students master 3-5 years of math in a single year.
We're still in beta and haven't done a proper Show HN yet, but we're getting there!
I'm the founder, so I'd be happy to answer any questions.
BUT... I'm highly skeptical of any online math course that claims many students have mastered 3-5 years of math in a year. How many hours of study in what subjects? How was mastery measured... did they take the grad school math GRE and ace it? Mastery takes continued practice... I'm highly s
Most online math courses I've looked into [for my friends, my kids, etc.] are "paper thin" and contain less than 25% of the topical matter, descriptive detail, and depth of a good book on the subject... and I'm actually being generous.
I hope your courses are going at least as deep, or offer the capability to, as good books on the various topics. For instance, if linear algebra does not go as deep as Strang + VMLS[0]... folks should just get those two books (VMLS is free), plus watch some youtube, like 3blue1brown.
[0] https://web.stanford.edu/~boyd/vmls/
Edit: btw... not trying to be overly harsh, just skeptical. If your courses end up being half as good as advertised I'll 100% sign up at some point.
Can you elaborate on this? What do these algorithms do?
[1] website https://minireference.com/ [2] PDF preview and sample chapter = https://minireference.com/static/excerpts/noBSmathphys_v5_pr... [3] concept map = https://minireference.com/static/conceptmaps/math_and_physic...
If you prefer something focussed on a review of high school math topic, then you might prefer the "green book" instead, see https://nobsmath.com/
[0] https://www.goodreads.com/series/318605-gelfand-corresponden...
[0]https://www.khanacademy.org/math/math1 [1]https://www.khanacademy.org/math/math2 [2]https://www.khanacademy.org/math/math3
And the books all have complete solutions manuals available so you can get immediate feedback.
You could use programs like Anki to schedule your review of defintions you've understood and problems you've solved to supercharge your learning as well.
[0] https://artofproblemsolving.com/store
I recommended a lot of people these courses and myself went over a few videos to revise Trigonometry.
I can vouch for the quality.
It assumes you have some algebra, but does not require college algebra.
it really takes you from the ground up all the way to advanced subjects. He published multiple books on various levels of mathematics.
The explanations are great and the examples and excises are such that you can just do them in your head.
Easily enough we can take the speedometer readings, say, 1 time each second, and calculate a good approximation to the odometer readings. That is a 1 second approximation to the calculus operation of integration.
Similarly we can take the odometer readings, say, 1 time each second, and calculate a good approximation to the speedometer readings. That is a 1 second approximation to the calculus operation of differentiation.
If we use smaller time intervals than just 1 second, then we will usually get a more accurate approximation. It is a theorem that, under mild assumptions, as we let the lengths of the time intervals shrink toward 0, the results of the operations will reach limits and quit changing.
Those limiting values are the actual definitions of differentiation and integration.
No big surprise, under mild assumptions, if we start with the odometer readings, differentiate to get the speedometer readings, and integrate to get back the odometer readings, then we really will get back the odometer readings. That is the fundamental theorem of calculus.
Some common mild assumptions are basically that the speedometer readings change only continuously (no jumps) over time and we are working over only finitely long time intervals.
Newton's second law of motion
force = mass x acceleration
essentially guarantees the continuity of the speedometer readings and, thus, justifies the integration back to the odometer readings.
Of course, calculus and Newton's second law of motion are close cousins in both theory and applications -- no big surprise since Newton essentially created both (might mention Leibniz and some others).
Can quickly show that if we integrate time t, we get (1/2)t^2. So if we differentiate (1/2)t^2 we will get back t.
A calculus course will show how to differentiate and integrate a wide variety of mathematical expressions, polynomials, sines and cosines, products, quotients, composite expressions, etc.. E.g., differentiate sine(t) and get cosine(t). Differentiate cosine(t) and get -sine(t). Can also find many cases of arc lengths, areas, volumes.
Suppose we are starting a business. At time t, let the revenue be y(t). Suppose we have argued that as we reach all our target customers, our monthly revenue will be b. Suppose we argue that due to word of mouth advertising the rate of growth is proportional to both the number of happy customers talking and the number of target customers not yet customers listening. Denote the rate of growth of y(t), that is the derivative, by y'(t). Then for some constant of proportionality we should have
y'(t) = k y(t) ( b - y(t) )
Of course we know current revenue, say, at time t = 0, that is, y(0).
Then by the first weeks of calculus, can show that, with TeX syntax,
y(t) = { y(0) b e^{bkt} \over y(0) \big ( e^{bkt} - 1 \big ) + b }
More generally
y'(t) = k y(t) ( b - y(t) )
is an example of an initial value problem of a first order, linear, ordinary differential equation and an introduction to a course in ordinary differential equations.
Calculus has wide applications to physical science, engineering, economics, finance, spread of diseases, etc.
``` For example, when Scar wanted to be king, he sent a "responsibility" message to the other big cats, trying to convince them that he should be the leader. However, the "availability" message he received back was weak because most animals didn't trust him.
Meanwhile, Simba sent out a strong "responsibility" message showing he could be a good leader, and in return, he got a strong "availability" message back with many animals showing support. That's why Simba was a better leader for the Pride Lands, according to Affinity Propagation!
```
I often wonder how it might have been if I just had stayed with math. Especially, after years of doing regular programming for the Web, recently I had to develop a computational geometry library. It had been years since I graduated but really made me feel nostalgic. I think I lost something when I left the field, but then again life is a lot easier now...
Deleted Comment
I did the "Introduction to Mathematical Thinking" MOOC from Keith Devlin. The curriculum is available as a book as well.
The class is basically how to write and read proofs for non-math majors. It starts pretty slow, but gets harder at some point. The number theory proofs were fun.
You 'got to' grade others proofs online, and they graded yours which was an interesting way to get familiar with reading and writing proofs.
I recommend it because instead of an area of math it focuses on what it means to prove something. And the teacher is pretty entertaining.
https://www.amazon.ca/Introduction-Mathematical-Thinking-Kei...
https://www.coursera.org/learn/mathematical-thinking
For geometry, get a book like Art of Problem Solving's Introduction to Geometry. That will cover many beautiful topics in a question and answer style.
[1] https://artofproblemsolving.com/store/book/intro-geometry
I agree that the Programmer's Introduction to Mathematics is more likely to contain useful content (instead of being about how to develop the ability to reason carefully). It also has a LOT more breadth than the OP.
The free part of Chapter 3 "On Pace and Patience" is a key very important attitude toward learning from this book (especially on your own). If you are thinking about studying from this book, make sure you philosophically agree.
I tried to copy and paste a paragraph here, but it looks like it has been ROT-13 encoded in the PDF (or something)!
> [...] mathematical culture requires being comfortable being almost continuously in a state of little to no understanding It's a humble life [...]
To each their own, but 700+ pages for material that is done in my experience in the first 2-3 weeks of undergraduate math is more disheartening than empowering for a student, in my opinion.
If you can open a math book anywhere in the last 20% of pages and just start reading, you are looking at pop science and not lecture notes.
I'm in this comment and I don't like it.
> If you can open a math book anywhere in the last 20% of pages and just start reading, you are looking at pop science and not lecture notes.
What do you mean?