Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

Artificial Intelligence: A Modern Approach

Stuart Russell, Peter Norvig

5 readers recommend it across 3 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

guiraldelli
I don't think there is a definitive answer for your question because computer science is a relative new area of knowledge and “fundamental books” are still being published. If I had to say one text that is the fundamental one, I would go with a paper: “On Computable Numbers, with an Application to the Entscheidungsproblem” [1], by Alan Turing. --- But if you just started your course in Computer Science, then I will give you some “bookshelf advice" based on my experience. I had the pleasure to study all the books I am going to recommend you, and most of them I was able to read cover-to-cover during the university years. And they are also in my bookshelf for reference. The book order does not represent rank of importance. * “Introduction to the Theory of Computation”, by Michael Sipser. * I also recommend the “Elements of the Theory of Computation”, by Christos Papadimitriou. * Another good complement is “Introduction to Automata Theory, Languages and Computation”, by Hopcroft and Ullman. (Thanks, @reacweb, for the reminder.) * “Graph Theory”, by Reinhard Diestel.…
sweeneyrod
I don't think there are any. The problem with learning computer science from textbooks is that most textbooks will go a lot further than just the fundamentals on the subjects they cover. So if you try to learn the basics by choosing a textbook for each area and read it cover to cover you'll never finish. Perhaps the answer is to thoroughly read the first few chapters/skim the remainder of Introduction to Algorithms; the Dragon book; Computer Networks/Architecture/etc.: A Systems/Quantitative/etc. Approach; Types and Programming Languages; Security Engineering; AI: A Modern Approach and so on -- that was certainly my experience of undergrad CS. A few exceptions are K&R, The Mythical Man-Month and What Every Computer Scientist Should Know About Floating-Point Arithmetic which are short enough that you can easily read them in their entirety.
bo1024
CS is like math, not philosophy -- the fundamental ideas are gradually refined by a community, and eventually someone puts them into a book. Usually there are many books and people have different favorites. So the closest parallels are original research papers like Turing's and Shannon's; but you're probably better off reading more recent textbooks. That said, to balance out the heavy emphasis on programming and engineering books here, some recommendations: - Sipser. Introduction to the Theory of Computation. - Russell, Norvig. AI: A Modern Approach. - For algorithms I don't have a preference. There is Dasgupta-Papadimitriou-Vazirani; Cormen-Leisersen-Rivest-Stein; Kleinberg-Tardos; and more. A bit farther from core CS, I also like: - Cover, Thomas. Elements of Information Theory. - Li, Vitanyi. An Introduction to Kolmogorov Complexity and Its Applications
gharbad
Knuth's Art of Computer Programming Aside from that, there are typically only 1-2 extremely well regarded books in any given area. If you're going to be doing something specific, grab the appropriate book. eg: Compilers - Dragon Book AI - Russel/Norvig's Artificial Intelligence: A Modern Approach Oh.. everyone needs a whiteboard, as well - they're quite useful
ambition
It depends on what you want to get out of them. If all you do is build a library, you'll never get anything out of it, since you actually need to study the books for that. :P If you want a reference, then by all means take aston and Hexayurt's excellent suggestions. Especially CLRS. If you don't know much about algorithms right now, then you'll find Cormen et al. very challenging to start with. If you're like me, you want to be able to use algorithms as a tool to solve real problems. To practice that, I have a few suggestions, if I may be so bold. Pick up a copy of the Algorithm Design Manual and Programming Challenges, by Steven Skiena. Programming Challenges will introduce you to the ACM-ICPC repository of programming problems, which is a great low-pressure area to build some top-notch skill in algorithms. You'll want to get into TopCoder as well. For a slightly different taste, pick up Artificial Intelligence: A Modern Approach, by Stuart Russell and Peter Norvig, also known as AIMA or the Green Book. Its discussion of search algorithms is unrivaled. Good luck!