Many people say that TAOCP is not supposed to be read as a book (actually a volume of books), but if I decide to go that way, which math/computer science books/topics do I need to study to help me follow it? There is a related question on stackoverflow but I would like to read the suggestions of cs.se users.
-
$\begingroup$ I just noticed that there is also a cs.se site. Moderators please decide if the question needs to be migrated $\endgroup$– faifFeb 15, 2014 at 17:31
-
1$\begingroup$ To be honest, I don't think this is a good match for any Stack Exchange site. It's largely opinion-based, which doesn't really work here. $\endgroup$– David RicherbyFeb 15, 2014 at 18:54
-
2$\begingroup$ @DavidRicherby I don't see how questions like "What books should everyone read" are a good fit and mine isn't. $\endgroup$– faifFeb 15, 2014 at 21:17
-
$\begingroup$ It's an issue that has been raised recently but it's fair to say that there's not much consensus. This meta discussion didn't get very far. $\endgroup$– David RicherbyFeb 15, 2014 at 21:53
-
2$\begingroup$ @faif On the contrary, “what books should everyone read?” is extremely open-ended and not a good fit for SE. “Necessary background for book X” is a better fit, but in this particular case: 1. it's a huge book (series), are you really going to read everything? 2. Normally the introduction of the book should tell you. $\endgroup$– Gilles 'SO- stop being evil'Feb 15, 2014 at 22:53
3 Answers
Don Knuth is a teacher, and is always very thorough when he writes. So one should expect that he states all prerequisites in his books.
To ascertain that, I went to look in my own issue of the first volume.
Indeed the preface states some prerequisites on page v, which he sums up into "the single requirement that the reader should have already written and tested at least, say, four programs for at least one computer".
Starting page viii, he gives a few words regarding mathematical content. "the material has been organized so that persons with no more than a knowledge of high school algebra may read it, skimming briefly over the more mathematical portions; yet a reader who is mathematically inclined will learn interesting mathematical techniques [...]". He calls his organization a dual level of presentation.
Later he confirms that "a knowledge of elementary calculus will suffice for most of the mathematics in these books, since most of the other theory that is needed is developed herein ..."
Hence my best advice is to find out what you need by first reading the prefaces of the various volumes of TAOCP in the library. I suggest adding some lighter reading, such as comics. You may need it.
A word of warning though. Knuth tends to be too optimistic regarding the brains of other people.
-
1$\begingroup$ "comics"? which ones? =) lets start a question for that :p $\endgroup$– vznFeb 16, 2014 at 20:45
-
2$\begingroup$ Clearly, "Understanding Comics" by Scott McCloud is the one you want to read first. $\endgroup$– Pseudonym ♦Feb 16, 2014 at 22:44
-
$\begingroup$ i went through the prerequisite list & thought I had it covered. 30 pages into it & i am lost at sea. $\endgroup$– asr9Dec 21, 2020 at 21:57
-
$\begingroup$ @asr9 I was serious about the comics and non-knuthian brains. $\endgroup$– babouDec 22, 2020 at 11:21
I endorse everything in babou's answer, but I'm going to suggest one book which may be helpful.
"Concrete Mathematics: A Foundation for Computer Science" by Graham, Knuth and Patashnik is a textbook in a way that TAOCP isn't. Moreover, in a sense, it is a summary of the maths that Knuth used throughout his career (apart from the formal language stuff; people forget that Knuth's greatest research contribution to computer science is actually the theory of LR parsing) in convenient textbook form.
-
1$\begingroup$ Thanks for the endorsement. However I would mitigate your statement about LR parsing. It was an important and remarkably analyzed theoretical result as well as an understanding of the techniques and practical limitations of deterministic pushdown parsing, which was very useful at a time of limited computing power. IMHO it has turned into a dead-end baroque technology whih is wasting the time of countless engineers, students and teachers, and distorting the systems they produce. Computer technology is far too conservative. No blame on Knuth. $\endgroup$– babouJan 22, 2017 at 12:18
-
$\begingroup$ I agree with your assessment of LR parsing in practice (as opposed to in theory), although again I'd mitigate that by noting that one useful effect of the ubiquity of LR parsing is that everyone now agrees that DCFLs are the gold standard for programming language syntax. We do tolerate nondeterminism/ambiguity where appropriate, but the days of Fortran 77, pre-ISO Prolog, and Van Wijngaarden grammars are behind us. $\endgroup$– Pseudonym ♦Jan 22, 2017 at 23:32
One can read it easily if one has
- A solid background in highschool math (algebra + geometry)
- A calculus course
- Discrete mathematics book completed
- Concrete mathematics completed
- Ability to write code in one language like python, test yourself by solving first 25 problem from project Euler, if you can do it, go ahead