Computer Science

82 selected books, grouped by course

A place to start

Computer science: pair concepts with working code

Editorial guidance for university students, with independent learners in mind. 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.

Introduction to Programming 6 books

Data Structures 6 books

Algorithms 7 books

Computer Organization and Architecture 6 books

Operating Systems 5 books

Computer Networks 6 books

Database Systems 6 books

Theory of Computation 6 books

Programming Languages and Compilers 5 books

Software Engineering 6 books

Machine Learning and Artificial Intelligence 5 books

Computer Graphics and Human-Computer Interaction 6 books

Security and Cryptography 6 books

Distributed and Parallel Systems 6 books