Books
Below is a list of textbooks which I personally think deserve the name of standard in several subareas related to computer science as of January 2, 2020. Please pardon me if some links are unavailable.
# | Subarea | Title | Author | Year | Link |
---|---|---|---|---|---|
1 | Theory of Computation | Introduction to the Theory of Computation, 3rd Edition | Michael Sipser | 2012 | link |
2 | Theory of Computation | Computational Complexity: A Modern Approach | Sanjeev Arora and Boaz Barak | 2009 | link |
3 | Data Structures and Algorithms | Introduction to Algorithms, 3rd Edition | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein | 2009 | link |
4 | Data Structures and Algorithms | Algorithm Design | Jon Kleinberg and Éva Tardos | 2005 | link |
5 | Automata and Languagues | Introduction to Automata Theory, Languages, and Computation, 3rd Edition | John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman | 2006 | link |
6 | Programming Languages | Types and Programming Languages | Benjamin C. Pierce | 2002 | link |
7 | Hardware | Computer Organization and Design, 5th Edition | David A. Patterson and John L. Hennessy | 2013 | link |
8 | Computer Systems | Principles of Computer System Design: An Introduction | Jerome H. Saltzer and M. Frans Kaashoek | 2009 | link |
9 | Computer Systems | Computer Architecture: A Quantitative Approach, 6th Edition | John L. Hennessy and David A. Patterson | 2017 | link |
10 | Operating Systems | Operating System Concepts, 10th Edition | Avi Silberschatz, Peter Baer Galvin, and Greg Gagne | 2018 | link |
11 | Network | Computer Networking: A Top-Down Approach, 7th Edition | James F. Kurose and Keith W. Ross | 2017 | link |
12 | Compilers | Compilers: Principles, Techniques, and Tools, 2nd Edition | Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman | 2006 | link |
13 | Databases | Database Systems: The Complete Book, 2nd Edition | Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Wildom | 2008 | link |
14 | Distributed Systems | Distributed Systems: Concepts and Design, 5th Edition | George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair | 2011 | link |
15 | Artificial Intelligence | Artificial Intelligence: A Modern Approach, 3rd Edition | Stuart Russell and Peter Norvig | 2009 | link |
16 | Logic | Language, Proof and Logic | Jon Barwise and John Etchemendy | 2002 | link |
17 | Knowledge Representation and Reasoning | Knowledge Representation and Reasoning | Ronald J. Brachman and Hector J. Levesque | 2004 | link |
18 | Linear Algebra | Introduction to Linear Algebra, 5th Edition | Gilbert Strang | 2016 | link |
19 | Optimization | Numerical Optimization, 2nd Edition | Jorge Nocedal and Stephen Wright | 2006 | link |
20 | Optimization | Convex Optimization | Stephen Boyd and Lieven Vandenberghe | 2004 | link |
21 | Machine Learning | Pattern Recognition and Machine Learning | Christopher M. Bishop | 2007 | link |
22 | Machine Learning | Probabilistic Graphical Models: Principles and Techniques | Daphne Koller and Nir Friedman | 2009 | link |
23 | Machine Learning | Deep Learning | Ian Goodfellow, Yoshua Bengio, and Aaron Courville | 2016 | link |
24 | Natural Language Processing | Speech and Language Processing, 2nd Edition | Daniel Jurafsky and James H. Martin | 2008 | link |
25 | Natural Language Processing | Introduction to Natural Language Processing | Jacob Eisenstein | 2019 | link |
26 | Information Retrieval | Introduction to Information Retrieval | Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze | 2008 | link |
27 | Data Mining | Introduction to Data Mining, 2nd Edition | Pang-Ning Tan, Michael Steinbach, Anuj Karpatne, and Vipin Kumar | 2018 | link |
28 | Software Engineering | Software Engineering: A Practitioner's Approach, 8th Edition | Roger Pressman and Bruce Maxim | 2014 | link |