Learn computer science in depth
Free computer science guides with examples and diagrams for programming, algorithms, operating systems, networks, and databases.
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
- Operating Systems — 43 topics
- Computer Networks — 71 topics
- Databases / DBMS — 37 topics
- Programming Fundamentals — 11 topics
- Programming Languages — 9 topics
- Object-Oriented Design — 8 topics
- Data Structures & Algorithms — 16 topics