7
$\begingroup$

I'm very interested in Computer Science (computational complexity, etc.). I've already finished a University course in the subject (using Sipser's "Introduction to the Theory of Computation").

I know the basics, i.e. Turing Machines, Computability (Halting problem and related reductions), Complexity classes (time and space, P/NP, L/NL, a little about BPP).

Now, I'm looking for a good book to learn about some more advanced concepts. Any ideas?

  • 0
    @Akhil: I can think of all sorts of advanced computational complexity texts, but I'm at a loss to think of a modern advanced text on automata (concepts touched on via the Chomsky hierarchy).2011-05-09

6 Answers 6

10

The Art of Computer Programming

(Donald Knuth)

The legendary book (of multiple volumes, still incomplete) can't go without mention. For learning about algorithms and their complexities, there is no rival. It's written with practicality in mind, though from a largely theoretical perspective.

The Art of Computer Programming

  • 1
    As great as these volumes are, they don't address the mathematics that the OP is looking for. TAOCP covers lots of great mathematics as -tools- for analyzing situations that CS (including TCS) might encounter, but it does not come close to covering the main subjects of TCS (complexity theory, automata and recursion theory, programming language semantics. As broad and deep as Knuth's knowledge is, these volumes do not discuss the TCS topics alluded to by the OP. (Knuth did organize a consensual naming of ..well...the name of "NP-completeness", but that's the extent of the contribution)2011-05-09
5

Papadimitriou's Computational Complexity covers complexity theory at a higher level than Sipser, but has essentially no prerequisites.

5

You may enjoy "Computers and Intractability: A Guide to the Theory of NP-Completeness" by Garey and Johnson. It is widely considered a classic in the field and it takes the subject matter of the last chapters of Sipser into the stratosphere.

Also... why not just follow the bibliograpy in Sipser?

3

Computational Complexity: A Modern Approach by Sanjeev Arora and Boaz Barak, is a more up to date advanced 'introduction' text.

1

I think you should determine what kinds of applications you want to apply CS to and then learn general theory relevant to those applications. Not all theory is equally applicable everywhere.

  • 5
    It is usually preferable to post such remarks as comments.2010-07-23
-1

The Mythical Man-Month more for software engineering but absolutely one of the best books ever written about programing IMO.