8

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.

sakisk
  • 193
  • 2
  • 7
  • I just noticed that there is also a cs.se site. Moderators please decide if the question needs to be migrated –  Feb 15 '14 at 17:31
  • 1
    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. – David Richerby Feb 15 '14 at 18:54
  • 2
    @DavidRicherby I don't see how questions like "What books should everyone read" are a good fit and mine isn't. –  Feb 15 '14 at 21:17
  • 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. – David Richerby Feb 15 '14 at 21:53
  • I suspect that your question is off-topic on this SE because it is not at the research level, and not likely to provide books that are of interest to researchers (unlike some of our other big-list questions). As @DavidRicherby suggests, it is also probably off-topic on other SEs because they (unlike cstheory) generally do not allow big-list or subjective questions. However, this is just my opinion and reason for why I didn't migrate to CS.SE, I will clarify with the moderators there. Until then, I will wait for the community to decide on if this question is within our scope. – Artem Kaznatcheev Feb 15 '14 at 22:48
  • 2
    @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. – Gilles 'SO- stop being evil' Feb 15 '14 at 22:53
  • tcs mod AK says in chat TAOCP not regarded as "research level"... huh? really? note both big-list and soft-question are banned on cs.se by mod dictate (see meta) but not at all on tcs.se where there are many such (high-rated) questions – vzn Feb 16 '14 at 01:58
  • @vzn The question "What textbooks should I read so I can understand this other textbook" is certainly not research-level. – David Richerby Feb 16 '14 at 12:07
  • agreed question is marginally research level; but no AK seemed to assert the book itself was not "research level" ... – vzn Feb 16 '14 at 15:33
  • @Gilles I agree that in total it's a huge book but the idea is to read a few pages every day. It will take a long time but I find it very beneficial. – sakisk Feb 16 '14 at 18:19

3 Answers3

15

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.

babou
  • 19,445
  • 40
  • 76
5

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.

Pseudonym
  • 22,091
  • 2
  • 42
  • 84
  • 1
    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. – babou Jan 22 '17 at 12:18
  • 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. – Pseudonym Jan 22 '17 at 23:32
0

One can read it easily if one has

  1. A solid background in highschool math (algebra + geometry)
  2. A calculus course
  3. Discrete mathematics book completed
  4. Concrete mathematics completed
  5. 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
Yanjan. Kaf.
  • 101
  • 1