Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

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?

share|improve this question
2  
I think this would be more appropriate at Stack Overflow, no? –  Ben Alpert Jul 21 '10 at 16:47
2  
What is your definition of CS? The post looks like you are referring to theory of computation. –  Chao Xu Jul 21 '10 at 16:54
2  
@Ben - Good question. It's sort of the reason I asked this. Computer Science is a mathematical field, as such it belongs here. There is some overlap, but for serious analysis of computational complexity, I don't think Stack Overflow is the right place (most people there are programmer, not mathematicians). –  Edan Maor Jul 21 '10 at 16:56
5  
can I ask why this was closed? Besides a possible need to change "Computer Science" to "Theoretical Computer Science" or somesuch in the title, and maybe remove "Best," this seems an appropriate question related to learning mathematics. –  Jamie Banks Jul 21 '10 at 17:02
1  
@Edan: Theoretical computer science is essentially mathematics, and MO has accepted it on its website -- note that there are people like Scott Aaronson and Peter Shor active there. I don't see why we should kick out lower level tcs questions. –  Akhil Mathew Jul 21 '10 at 19:56

6 Answers 6

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

share|improve this answer
    
I've never read it, but I always got the feeling it was much more of a practical book on using algorithms for programming, much less of an actual TCS book (e.g., does it talk about complexity classes?). –  Edan Maor Jul 22 '10 at 8:50
2  
That's partially but not fully true. There's some good discussion of complexity classes in relation to the algorithms given, from what I know. –  Noldorin Jul 22 '10 at 8:57
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) –  Mitch May 9 '11 at 21:22

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

share|improve this answer

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?

share|improve this answer

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

share|improve this answer

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.

share|improve this answer
5  
It is usually preferable to post such remarks as comments. –  Akhil Mathew Jul 23 '10 at 2:51

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.