LearnViz CompSci
Home / Learn

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

  1. Pick an area that matches your goal, or follow a learning path below.
  2. Read the topic: the explanation, where it is used and the common pitfall.
  3. Practice in the interactive lesson, then take the area quiz.
  4. Explore the matching Visual Lab visualizer to watch the idea run.
  5. 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

Frequently asked questions

Who is this course for?
Complete beginners, students, self-taught developers and working engineers who want a clear reference for a specific topic. Each topic is written so that someone new to the subject can follow it.
How should I use the Learn pages?
Read the explanation, look at the use cases and the common pitfall, then open the interactive lesson and the quiz. Return to a topic when you meet its term again in later reading or in your work.
Which area should I start with?
If you are new to programming, start with Programming Fundamentals. If you already code, Data Structures and Algorithms is the next step. The learning paths below suggest sequences for specific goals.
Do I have to finish one area before starting another?
No. Topics inside an area build on one another, so reading in order helps. Across areas, pick a path that matches your goal and move on when you are ready.
Is there a fixed amount of time to finish the course?
There is no fixed finish line. Most learners work through one area over several weeks, with short sessions, and go back to topics when a later one depends on them.
Where can I track what I have studied?
The Progress page in the app records the topics and quizzes you have completed. The data stays in your browser on this device.