Hot answers tagged

16

As others have noted, books about (advanced) algorithms are best selected by topic. A good but heavy-weight general reference with rigorous analysis is probably The Art of Computer Programming by Knuth. As for analysis techniques, you may be interested in An Introduction to the Analysis of Algorithms by Sedgewick and Flajolet, and Algorithmic Combinatorics ...


13

I have not (nearly) read enough books to name $5000 worth of them. Therefore, I will suggest some groups of literature you should cover as well as point you towards selected representatives. I can not claim to have read most of the books in full myself, so I have to rely mostly on descriptions, cursory impression and reputation. I have looked into or worked ...


13

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 ...


11

For an introduction to the theory of computation I recommend you these great books (in order of increasing "complexity"): 1) Introduction to the Theory of Computation by Michael Sipser It is very readable, theorems are very well explained and there are plenty of exercises (some with solutions and/or hints) and references. 2) Computers and Intractability:...


10

Your list is extremely problematic. To start with, I would flatly skip books 6,11,12,14,15,16,17: Books 6, 11 and 15 are general mathematics which is not really needed unless you become a theoretical researcher. Books 12 and 14 cover recursion theory which is not computer science (even though it deals with computability!). Books 16 and 17 cover advanced ...


9

It is not easy to come by books that consider the denotational semantics of $\lambda$-calculus. One possibility is: Roberto M. Amadio and Pierre-Louis Curien: Domains and Lambda-Calculi Type-theoretic accounts are easier to get hold of: Bob Harper, Practical Foundations of Programming Languages (there is also a printed version). Benjamin Pierce, Types and ...


9

I am looking for an algorithms book that covers material beyond Corman's book. This can be answered in numerous different ways, depending on what you want "beyond". I would recommend asking much more specific directions, as you are more likely to get specific answers that are helpful. As for some general guidance though: You may find a handful of general ...


8

For Computer Science, I would recommend you Computer Science: An Overview 11th J. G. Brookshear. If you are more interested, you can attend one of the online courses, you can register for free and finish these courses online with exercises. I recommend you one of these: An Introduction to Computer Science from Harvard, more informations you can find ...


8

Introduction to the Theory of Computation by Michael Sipser is a relatively recent entry into this field. It was the required book for a class my friend was taking, and I asked him for the PDF so I could browse through at my leisure. I ended up reading almost the whole book, even the chapters on topics I was already very familiar with, just because the book ...


8

If I had to bet, I'd say: Great Papers in Computer Science Author: Laplante, Phillip A. Publisher: West Publishing Co. (this one or an older edition). Contents Algorithms and Data Structures 1.1 The Complexity of Theorem Proving Procedures (Stephen A. Cook) 1.2 On the Conceptual Complexity of Algorithms (J. Hartmanis, R. E. Stearns) 1.3 ...


7

My answer could be late for this question, but I hope it will be helpful for other people looking for similar information. I had taken a course about Mathematical Logic at National University of Singapore, in which the lecturer used this textbook: A Concise Introduction to Mathematical Logic, 3rd edition, by Wolfgang Rautenberg Personally, I like both the ...


7

For someone just getting started in Computer Science I would recommend Douglas Hofstadter, Gödel, Escher, Bach: an Eternal Golden Braid, Basic Books, 1979. It is a philosophy book discussing the meaning of truth, proof, and computability, (and self referential music and art and ... a bunch of other stuff) aimed at people with a little bit of ...


7

Some popular books are Computational Complexity by Papadimitriou and Introduction to the Theory of Computation by Sipser. If you are very ambitious, you can also try Computational Complexity: A Modern Approach by Arora and Barak, which is an advanced textbook. I would recommend against the historical approach of reading old papers. While some old papers are ...


7

I think the book you describe has a name. It is in seven volumes, only three and half of which have been published. It is called The Art of Computer Programming, (TAOCP) and is written by Donald Knuth. It may be though that he will sometimes describe applications. But you can always skip that, and I doubt it makes much of the content. You should not be too ...


6

"Introduction to Modern Cryptography", Jonathan Katz and Yehuda Lindell. This is a great book for learning about provable security. And for actual crypto protocols and algorithms, there's always the classic: "Handbook of Applied Crypto" by Paul van Oorschot, A. J. Menezes, and Scott Vanstone. This is more a reference book than a textbook. And its available ...


6

You can start with Software Foundations by Benjamin C. Pierce et al. Topics include basic concepts of logic, computer-assisted theorem proving, the Coq proof assistant, functional programming, operational semantics, Hoare logic, and static type systems. The exposition is intended for a broad range of readers, from advanced undergraduates to PhD students ...


5

Have you looked at Handbook of Theoretical Computer Science If you want to move beyond imperative algorithms and move into functional programming, take a look at Purely Functional Data Structures. I know the title says data structures but the algorithms in the book may open your eyes to a different way of programming. EDIT I took a look at the course ...


5

There are a few good books on the TSP problem where you are likely to find some relevant information: Lawler et al., eds. The traveling salesman problem: A guided tour of combinatorial optimization. Wiley, 1985. G. Reinelt. The traveling salesman: computational solutions for TSP applications. Springer, 1994. G. Gutin and A. P. Punnen, eds. The traveling ...


5

I would take a look at the free book by Bondy and Murty: Graph Theory with Applications. This book is less-algorithmic and more graph-theoretical than other resources recommended here. There is also a newer version of the book, which is not available for free on the net, but is extremely well-written and with updated notation. In comparison to other free ...


5

"Normative" means something that has to be followed, part of the standard. "Informative" is explanations meant to be understood by mere human beings, and that might be ambiguous or inaccurate. It is not to be relied on. Read it to understand, refer to the normative parts where it matters.


5

You might also consider taking advantage of some of the many online courses available. For example, both Stanford and MIT offer (free) online courses in computer science, and I think there are many others available as well. As far as books go, I second most of Yuval's recommendations, except that CLRS is a great reference, but a little overwhelming as an ...


5

The theoretical "core" of a CS degree would consist of (1) basic data structures and algorithms, (2) formal languages, automata, complexity, computability. For the first, "CLRS" is the most-used textbook: http://mitpress.mit.edu/books/introduction-algorithms For the second, Sipser: http://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/...


5

Yes. I strongly recommend Pat Morin's more modern textbook Open Data Structures, available for free in several dialects at http://opendatastructures.org/.


5

Note: please edit this answer and add to it, do not create new answers Rigorous books: The Art of Computer Programming by Knuth A Discipline of Programming by Dijkstra Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein Algorithms by Sedgewick and Wayne Dr Dobb's Essential Books on Algorithms and Data Structures This also includes ...


5

One of the de facto methods for proving results in functional programming is via Richard Bird's group. In particular, you ask for an in-depth or at least more comprehensive approach to equational reasoning and list induction and this is provided in Lectures on Constructive Functional Programming. More generally, the text "Algebra of Programming", by Bird ...


5

It turns out that an excellent source of proof techniques and examples for proving things about pure functional languages is proof assistants which usually include as part of their specification language a pure functional language on which it is possible to reason equationally. One might want to consult a book like Certified Programing with Dependent Types ...


4

You don't specify what your company specializes in, so it's not easy to provide more than general recommendations. On the whole, I think the list you've put together is pretty good, and I wouldn't remove anything from it. Just a couple of additions and comments: 1) Cormen is a standard text. Sedgewick is another standard text. I've always gotten more out of ...


4

Here is a random collection of books on advanced algorithms based on what I consider as great book about advanced algorithms. Of course this is only my personal opinion and there are many other good books. Approximation Algorithms by Vijay V. Vazirani The Design of Approximation Algorithms by David P. Williamson, David B. Shmoys Computational geometry: an ...


4

(in addition to all the great books that others have recommended) For proofs, hands down: How to Prove it: A Structured Approach by Daniel Velleman. It has the best paced and detailed introduction into proving techniques. I read many books on the subject of proofs, but this one helped me really get the hang of it. More introductory reading would be "...


Only top voted, non community-wiki answers of a minimum length are eligible