Learn computer science: 1017 topics in 20 areas
Each topic has a plain-English explanation, real-world use cases, common pitfalls and FAQs. Pick an area to see its topics, or open the interactive course for visualizers and quizzes.
Who this course is for
Beginners who have never written code, students following a computer science course, self-taught developers who want to fill gaps, and working engineers who need a clear reference for an unfamiliar topic. Every explanation assumes only what the topic before it has taught.
How to use the course
- Pick an area that matches your goal, or follow a learning path below.
- Read the topic: the explanation, where it is used and the common pitfall.
- Practice in the interactive lesson, then take the area quiz.
- Explore the matching Visual Lab visualizer to watch the idea run.
- Track progress on the Progress page and return to weak topics.
Suggested learning paths
Beginner programmer
Start from nothing and build up to real programs.
π» Programming Fundamentals β π§± Data Structures β βοΈ Algorithms
Systems and hardware
Learn how a computer runs code, from gates to the operating system.
π Computer Architecture & Logic β π₯οΈ Operating Systems β π Computer Networks
Data and AI
Build the maths and data skills that machine learning relies on.
π Math for Computing β π§± Data Structures β π€ AI & Machine Learning
Web and security
Build for the browser and protect what you build.
πΈοΈ Web Development β π Computer Networks β π Security & Cryptography
Software and cloud
Design, store and run software that serves many users.
ποΈ Software Engineering β ποΈ Databases β βοΈ Distributed Systems & Cloud
All areas
π» Programming Fundamentals
Variables to functional paradigms.
54 topics
π§± Data Structures
Organizing data for efficient access.
52 topics
βοΈ Algorithms
Sorting, graphs, DP and beyond.
51 topics
π Computer Architecture & Logic
From transistors to pipelines.
51 topics
π₯οΈ Operating Systems
Processes, memory, files, scheduling.
51 topics
π Computer Networks
How data moves across the world.
50 topics
ποΈ Databases
Storing, querying and scaling data.
51 topics
ποΈ Software Engineering
Building software that lasts.
50 topics
πΈοΈ Web Development
Frontend, backend and the browser.
51 topics
π Security & Cryptography
Protecting systems and secrets.
51 topics
β Theory & Discrete Math
Logic, automata, computability.
51 topics
𧬠Languages & Compilers
How code becomes behavior.
50 topics
π€ AI & Machine Learning
Learning from data.
51 topics
βοΈ Distributed Systems & Cloud
Scaling across many machines.
51 topics
π¨ Graphics, Vision & Media
Pixels, polygons and perception.
49 topics
π Math for Computing
Linear algebra, probability, numerics.
51 topics
π Concurrency & Parallelism
Doing many things at once.
51 topics
π± Mobile, Embedded & IoT
Software beyond the desktop.
50 topics
π οΈ DevOps & Tooling
Shipping and operating software.
50 topics
π Emerging & Frontier Topics
Quantum, blockchain, HCI and more.
51 topics