made me laugh, envisioning the book as written by Victor Hugo.
Simplifying: -1 pages.
Does anyone have recommendations for better screen readers?
This PDF exceeds our page limit, so you would have to split it up. We're working on increasing our page limits.
Thomson Leighton is the founder of Akamai
Lectures here: https://www.youtube.com/playlist?list=PLB7540DEDD482705B
One of the set of lectures on the internet I loved the most.
Please?
- More recent lectures on MIT OCW https://ocw.mit.edu/courses/6-1200j-mathematics-for-computer...
- A well-paced course that follows the textbook and uses online videos done by another one of the authors (Albert Meyer) of the textbook: https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6....
I recently was struggling with a linear algebra problem. It wanted me to prove X. If I used one route I could prove X. But then strangely enough, going another route, I disproved X!
I went to Gemini and asked how it could be so, and it pointed out flaws in my proof. Very helpful!
Susanna Epp's Discrete Mathematics With Applications is also a really good option
But why not both?
I love that each citation has back references to _all_ the places that it is cited from.
I wish more books did this.
Anyway, this reminds me of a rather different initiative in the same vein: The building of Mathematical principles based on the expediences of Computer Science: CONCRETE MATHEMATICS
by Donald Knuth, Ronald Graham and Oren Patashnik.
https://www-cs-faculty.stanford.edu/~knuth/gkp.html
https://en.wikipedia.org/wiki/Concrete_Mathematics
available on the Internet Archive: https://archive.org/download/concrete-mathematics/Concrete%2...
So it's more "mathematics for the analysis of algorithms" (incidentally the title of another book by Greene and co-authored by Knuth), and so probably most applicable to the field of "AofA" rather than physics or computer science in general.
Lovely book, very few math books fill one with as much joy as this one.
I find the well-ordering principle slightly bewildering. It seems to presuppose the existence of an ordering on natural numbers and then prove this principle. But I’ve never been taught things this way; you always construct the natural numbers from Peano and define the ordering first, then you can actually prove the well-ordering principle rather than leaving it as an axiom.
So some text books may pick one as the axiom and others pick a different axiom.
The crazy thing about the well-ordering principle: It states that a well ordering exists on the reals, which means that you can find an ordering such that any open set has a minimum. Apparently, elsewhere in mathematics, they've proven that even though it exists, you cannot articulate that ordering.
There's a common joke:
"The Axiom of Choice is obviously true, the well-ordering principle obviously false, and who can tell about Zorn's lemma?"
Here's one that acknowledges it:
https://math.stackexchange.com/questions/1837836/well-orderi...
> The "well-ordering principle" has (at least) two different meanings. The first meaning is just another name for the well-ordering theorem. The second meaning is the statement that the usual relation < on the set N is a well-ordering. This statement is equivalent to the statement that ordinary induction on the natural numbers works.
Following Dijkstra’s EWD1094, here’s a way to solve the hairs-on-heads problem eschewing the language of pigeonholes and employing the fact that the mean is at most the maximum of a non-empty bag of numbers.
We are given that Boston has 500,000 non-bald people. The human head has at most 200,000 hairs. Show that there must be at least 3 people in Boston who have the same number of hairs on their head.
Each non-bald Bostonian must have a hair count between 1 and 200,000. The average number of such people per hair count is 500,000 / 200,000 = 2.5. The maximum is at least that; moreover, it must be a round number. So the maximum >= 3. QED.
october8140•14h ago
throw-qqqqq•14h ago
bmez•13h ago
I have an M.Sc. in Comp.Sci. Flicking through books like these, all the chapter titles resonate with courses, exams, and problems we solved. It also makes me realise I have probably forgotten more than I like to think.
On the other hand, bashing my head against graph theory and logic, has made me a much better programmer. Similarly, the hours spent in Van Roy and Haridi's fairly abstract and technically language-agnostic "Concepts, Techniques and Models of Computer Programming" made me primed to learn a lot of languages fast - because I had the primitives mastered.
pipes•13h ago
https://teachyourselfcs.com/
See the "still too much section". If you want the top two books they recommend if you don't have time for the rest.
Jhsto•12h ago
anthk•12h ago
mgaunard•11h ago
criddell•10h ago
Building a bunch of software projects probably isn’t a very efficient way of learning computer science. You might figure out things like big-O or A* on your own, but a more academic approach is going to take you further, faster.
mgaunard•10h ago
I can understand this is not the approach preferred by academic types which is a strong community on hackernews.
Most people are more motivated to understand the theory because it helps them solve a practical problem, rather than theory for the sake of theory.
criddell•9h ago
mgaunard•9h ago
Even something like game theory was only developed and earned nobel prizes because of its applications to making money in finance.
ghaff•9h ago
criddell•7h ago
Computer scientists often program but not all programmers are computer scientists.
bee_rider•9h ago
roadside_picnic•3h ago
My advice to learners has been "try to learn as much about a topic as someone who has taken the subject in college and forgotten about it".
For example consider calculus: Someone who took calc 20 years ago and hasn't used it since will probably forget exactly how to compute most derivatives and integrals. But if someone mentions an optimization problem "we need to know when this curve peaks" or asks something involving finding the area under a curve, alarm bells should start ringing. They'll know this can be done, and likely go grab a calc book to refresh.
Another example I run across all the time, which is the opposite scenario: Survival analysis. I have been on countless teams where somebody needs to understand something like churn or the impact of a offering a discount that hasn't expired yet, etc. These are all classic survival analysis problems, yet most people are ignorant that this field of study even exists! Because of this I've seen so many times where people complain that "we'll have to wait months or years to see if these changes impact customer lifetime!" (note: if anyone out there is doing Churn or LTV analysis and aren't familiar with survival analysis, you are most certainly approaching it incorrectly).
I've seen a lot of people get frustrated with self study because they try to learn the material too well. If you aren't going to be using survival analysis soon, it's not really worth remembering all the details of how to implement a Kaplan Meier curve. But if you even have a vague sense of what problem this solves, when you encounter that problem in a project, you know where to go back to. Then you typically walk away with a much stronger sense of the subject then if you had studied it harder in the first place.
layer8•57m ago
maqp•11h ago
* Brookshear and Brylow - Computer Science - An Overview
* Forta - Teach yourself SQL in 10 minutes
* Stallings - Computer Organization and Architecture
* Stallings - Operating Systems - Internals and Design Principles
* CLRS
* Kurose, Ross - Computer Networking - A Top Down Approach
* Sipser - Introduction to The Theory of Computation
* Stallings, Brown - Computer Security - Principles and Practice
* Aumasson - Serious Cryptography
* Russell, Norvig - Artificial Intelligence - A Modern Approach
And even this fails to cover programming languages. Python is the lingua franca of the field. Most past recommended books are getting outdated, but perhaps Matthes' Python Crash Course 3rd edition.
wlruys•11h ago
commandlinefan•8h ago
Over TCP/IP Illustrated?
rchiang•5h ago
Kurose's book really does take the top-down approach from high level networking concepts through the application layer to the transport layer and downward. It provides just enough of the necessary details (here's a datagram with fields A and B) over a comprehensive list of all the details (here's every field, every field size, and a list of every field option).
rchiang•5h ago
See if this blog post helps out with sorting through the various CS subjects: https://tolerablecoder.blogspot.com/2022/03/a-short-list-of-...
kenjackson•4h ago
I also love Concrete Mathematics.
I prefer the Tanenbaum OS books over Stallings. In particular the design and implementation book, although it is more than a decade old now.
segmondy•8h ago
louthy•4h ago