Influential Computer Science Books

It was an old wish of mine to write down a list of the computer science books that influenced (positively) my career. In the following you can find a preliminary version of this list. The books, briefly described below, are not necessary "advanced", or the most comprehensive references in their domain, but they offered me an interesting, rewarding, and fruitful lecture.

1. Introduction to Algorithms, by Cormen, Leisserson, Rivest and Stein. It's the book that made me choose a research career in CS rather than a research career in math.
2. Introduction to Automata Theory, Languages, and Computation, by Hopcroft, Motwani and Ullman. One of the best bibliographical references in formal languages, at undergraduate level. Offers also a glimpse towards computability and complexity.
3. Handbook of Formal Languages, eds. Rozenberg and Salomaa. Written in 1997, it contains a collection of papers presenting the hot subjects (at that moment) in formal languages. Some of them are still of great interest, at least for me.
4. Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and Johnson. A nice presentation of the complexity theory, focused on NP-Completeness (the central topic in TCS, in my oppinion).
5. DNA Computing - New Computing Paradigms, by Paun, Rozenberg and Salomaa. Interesting for those of use working with bio-inspired computational models.
6. Introduction to the Theory of Computation, by Sipser. A good book from which you can learn the basics of computability and complexity.
7. Jewels of Stringology, by Crochemore and Rytter. Great book on string algorithms.
8. Randomized Algorithms, by Motwani and Raghavan. Published in 1995, it is a very well written survey on how probability theory can be applied in the development efficient (yet not deterministic) algorithms.
9. Data Structures and Algorithms, by Mehlhorn. A good reference on classical algorithms and data structures.
10. Network Flows, by Ahuja, Magnati and Orlin. Written in 1995, it is a good introduction to the network flows (algorithmic) theory.
...Please feel encouraged to recommend any other book, as a comment on this post.

An interesting discussion on a similar topic can be found on the Computational Complexity blog.

8 comments:

stef2n said...

Multumesc! Ca nu retinusem azi numele indienilor de la cartea 8. :)

Tiberiu Florea said...

We all love CLRS! :-)

Nice compilation...

Florin Manea said...

As a sequel to this post, I thought to mention also some of the math books that influenced me.
1. Fields and Rings, by Kaplansky. It was the book from which I learned the foundations of Galois theory. A great book.
2. Algebra, by Lang. A nice course on abstract algebra. According to wikipedia, it was said that: "Lang's Algebra changed the way graduate algebra is taught...It has affected all subsequent graduate-level algebra books."
3. Categories for the Working Mathematician, by MacLane. A standard reference for the theory of categories.
... There are several other books that should be added to this list, but, for the moment, I do not remember the exact title.

Florin Manea said...

I'll add to the list of influential TCS books:
Computational Complexity, by Papadimitriou. It's one of the great books in complexity theory.

Cosmin said...

I've wrote at the bottom of this page the books that I found useful for programming contests http://infoarena.ro/training-path

Florin Manea said...

An interesting post by Michael Mitzenmacher, the author of My Biased Coin blog, on a similar topic here.

Florin Manea said...

Mitzenmacher continues his post about "books on his shelf" here.

Florin Manea said...

Third part of the books recommendations post from "My biased coin" blog deals with more practical books here.