Computer Science

94 selected books, grouped by course

Study guides

Compare three books with short trial tasks, follow a six-step reading route, and test your reasoning with worked examples and changed assumptions.

Computer ScienceAlgorithms

Algorithmic reasoning: choose a text and justify an optimization

Compare three algorithms books through proof, reference and modeling needs, then solve original weighted-scheduling problems with checked recurrences.

Computer ScienceData Structures

Data structures: defend an invariant and an operation cost

Compare free rigorous analysis, a Java implementation text and an intuitive guide, then audit original resizing and shrink-threshold examples.

Computer ScienceMachine Learning and Artificial Intelligence

Machine learning: match the validation unit to the prediction task

Compare two free statistical-learning routes with a broad AI reference, then audit original grouped validation and a changed deployment target.

Computer ScienceComputer Networks

Computer networks: choose a text and account for every delay

Compare three networking routes, then solve original transmission and window examples that separate payload rate, serialization, propagation and assumptions.

Computer ScienceOperating Systems

Operating systems: explain an interleaving before choosing a lock

Compare a free concepts text, a small RISC-V kernel and a broad reference, then solve original event traces and a changed synchronization rule.

Computer ScienceIntroduction to Programming

Choose a Python first book and build a program you can test

Compare three Python introductions, follow six concrete programming tasks, and debug an original example that distinguishes zero from missing data.

Computer ScienceDatabase Systems

Relational databases: choose a book and audit the result grain

Compare database design, systems and theory texts; use original SQL cases to distinguish keys, missing values, empty matches and join multiplicity.

A place to start

Computer science: pair concepts with working code

Suggested reading compiled by this site for university students and independent learners. This is not an official university reading plan. Check your own syllabus before buying; editions and exercise numbers differ.

Browse all books ↓

Choose for your course

If you are new to programming, begin with a course-level introduction and write small programs. Then choose a branch: algorithms, databases, operating systems or architecture. A book’s depth and programming language matter; one title cannot cover the whole discipline.

Suggested reading approach

  1. After each chapter, implement the idea, test edge cases and explain the time or space cost. For systems books, use the course environment and lab instructions because hardware and toolchains differ.
  2. Use problem sets to reveal gaps, not just to check answers. Keep a small portfolio of programs, test cases and notes on why a design works.

Browse by course

Books are grouped by the course they are usually read for, then ordered from introductory to advanced.

Choose a course

Introduction to Programming 6 books

Data Structures 6 books

Algorithms 8 books

Computer Organization and Architecture 7 books

Operating Systems 6 books

Computer Networks 8 books

Database Systems 8 books

Theory of Computation 8 books

Programming Languages and Compilers 5 books

Software Engineering 7 books

Machine Learning and Artificial Intelligence 5 books

Computer Graphics and Human-Computer Interaction 6 books

Security and Cryptography 7 books

Distributed and Parallel Systems 7 books