4 ms·
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 bein
by guiraldelli 7y ago
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.
* If you feel you want to go deeper, and like a book which you cannot skip a single word, I strongly recommend “Modern Graph Theory”, by Béla Bollobás: it is one of my favorite textbooks ever!
* “The Algorithm Design Manual”, by Steven Skiena.
* While a lot of people seems to praise either the Cormen et al. or the Sedgewick books, I have the feeling that “Algorithms” by Dasgupta, Papadimitriou and Vazirani is my choice for “fundamental” book. But I decided to
* “Computer Architecture: a Quantitative Approach”, by Hennessy and Patterson.
* “Modern Operating Systems”, by Andrew Tanenbaum.
* “Artificial Intelligence: a Modern Approach”, by Russel and Norvig.
* “Modern Compiler Implementation (in ML)”, by Andrew Appel.
I would like to also recommend “Concrete Mathematics”, by Graham, Knuth and Patashnik, but I remember to not feel it the most pedagogical book on the subject.
Good luck!
---
[1]: https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf
- cr0sh 7y ago> 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 Certainly that one, but I would add a couple of others: "https://en.wikipedia.org/wiki/The_Laws_of_Thought" https://en.wikipedia.org/wiki/The_Laws_of_Thought" (George Boole) - lays out boolean algebra; fundamental to everything in computing "https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_and_Switching_Circuits" https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_a... (Claude E. Shannon) - basically lays out the equivalence of switching circuits to boolean algebra, fundamental to electronic computing Note in fact many of Shannon's works and research could be considered "fundamental"...
- j1vms 7y agoBy the currently accepted definition of Computer Science (at the nexus of its core basis in mathematics and philosophy), I would say “On Computable Numbers, with an Application to the Entscheidungsproblem” by Alan Turing, without any close peer to date. It is the first paper that invoked the most all-encompassing idea of a computer (e.g. not necessarily having to be a physically realizable electronic computer, which one could consider more of a matter for engineering). Its contents have had continued relevance as computer scientists study the properties and capabilities of non-deterministic computers.
- gshubert17 7y agoCharles Petzold (who wrote "Code") has written a very good book which goes through Turing's paper in small sections: The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine