Learn computer science in depth

Free computer science guides with examples and diagrams for programming, algorithms, operating systems, networks, and databases.

Browse every topic

Start with these computer science topics

  • What is Programming? — Writing precise instructions a machine can execute, and choosing the data those instructions work on.
  • Arrays — A contiguous block of same-sized elements. Constant-time indexing, cache-friendly scans, and costly middle inserts.
  • Big-O and Complexity — How an algorithm's cost grows with input size, ignoring constants. The language for comparing solutions before you run them.
  • Processes — An OS abstraction: address space, at least one thread, and a pile of kernel metadata.
  • CPU Scheduling — The policy that picks the next ready thread. Fairness, latency, and throughput trade off.
  • OSI Model — Seven layers of function, from photons to application messages. The shared language of networking.
  • TCP — Reliable, ordered, congestion-controlled byte streams between two ports.
  • SQL — The declarative language of relational databases: SELECT describes the result, not the plan.
  • Transactions — A grouping of reads and writes that should succeed or fail as a unit.
  • Indexes — Auxiliary structures (usually B+ trees) that make predicates cheap at the cost of writes and space.

Explore the curriculum