Computer Science
For cognitive context, see Computability and General Culture in Computer Science and AI.
Introductory
Petzold, Code
Brookshear & Brylow, Computer science: an overview
Dewdney, The New Turing Omnibus
Intermediate
Rosen, Discrete mathematics and its applications
Graham, Knuth & Patahsnik, Concrete mathematics
Sipser, Introduction to the theory of computation
Girard, Lafont & Taylor, Proofs and types
Garey & Johnson, Computers and intractability
Arora & Barak, Computational complexity
Goldreich, Computational complexity
Kleinberg & Tardos, Algorithm design
Motwani & Raghavan, Randomized algorithms
Miztenmacher & Upfal, Probabilty and computing
Aho, Hopcroft, Ullman, Data structures and algorithms
Aho, Hopcroft, Ullman, Design and analysis of computer algorithms
Pierce, Types and programming languages
Aho et al, Compilers
Advanced
Abelson & Sussman, Structure and interpretation of computer programs
Cormen et al, Introduction to algorithms
Knuth, The art of computer programming
Pierce (ed), Advanced topics in types and programming languages
Cook & Nguyen, Logical foundations of proof complexity
Krajicek, Bounded arithmetic, propositional logic and complexity theory
Networks
Tanenbaum & Weatherall, Computer networks
Concurrent and distributed
Bryant& O'Hallaron, Computer systems: a programmer's perspective
Ben Ari, Principles of concurrent and distributed programming
Herlihy et al, The Art of Multiprocessor Programming
Raynal, Concurrent Programming
Attya & Welch, Distributed Computing
van Steen & Tannenbaum, Distributed systems
Lynch, Distributed algorithms
Cachin et al, Introduction to Reliable and Secure Distributed Programming
High-performance computing
Eijkhout, The art of HPC
Fox et al, Parallel computing works
Hager & Wellein, Introduction to high performance computing for scientists and engineers
Sterling et al, High performance computing
Herlihi & Shavit, The art of multiprocessor programming
Jeffers & Reinders, High performance parallelism pearls (vols 1 &2)
Dongarra et al, The sourcebook of parallel computing
Operating systems
Silberschatz et al, Operating Systems Concepts
Tanenbaum & Bos, Modern operating systems
McHoes & Flynn, Understanding operating systems (vols 1 & 2)
Cryptography
Hoffstein et al, An introduction to mathematical cryptography
Katz & Lyndell, Introduction to modern cryptography
Goldreich, Foundations of cryptography (vols 1 & 2)
Stinson, Cryptography
Menezes et al, Handbook of applied cryptography
Computer architecture
Tanenbaum & Austin, Structured computer organization
Henessy & Patterson, Computer architecture
Henessy & Patterson, Computer organization and design
Artificial intelligence
Foundational
Russell & Norvig, Artificial Intelligence: A Modern Approach
Applied
Wolfram, What is ChatGPT doing ... and why does it work ?
Amidi & Amidi, Super study guide: transformers and large language models
Ksmath et al, Large language models: a deep dive
Raschka, Build a large language model
Alto, Building LLM powered applications
Phoenix & Taylor, Prompt engineering for generative AI
Berryman & Ziegler, Prompt engineering for LLMs
Huyen, Designing machine learning systems
Huyen, AI engineering
Multi-agent systems
Woolridge, An Introduction to MultiAgent Systems
Weiss, Multiagent systems
Poole & Macworth, Artificial Intelligence: Foundations of Computational Agents
Shoham & Leyton-Brown, Multiagent systems
Woolridge, Reasoning about rational agents
Nisan et al, Algorithmic game theory
Cai & Lin, Directed Cooperation of Multi-Agent Systems
Pareschi & Toscani, Interacting multiagent systems
Xiang, Probabilistic reasoning in multiagent systems
Piccoli, Control of multi-agent systems
Wang et al, Mathematics of multiagent learning systems
Krishnan, AI Agents: Evolution, Architecture, and Real-World Applications