Courses
A full computer science degree, in order.
27 courses and 1,205 lessons, each one building on the last, with practice that checks you understood it.
Year 1
Foundations
The bedrock: writing your first programs, thinking computationally, and the mathematics that underpins everything to come.
CS101
Introduction to Programming
Write your first programs in Python. Variables, control flow, functions, and the core data types every programmer uses daily.
10 modules · 50 lessons
CS102
Computational Thinking
The problem-solving mindset behind programming: decomposition, pattern recognition, abstraction, and algorithm design.
8 modules · 32 lessons
MA101
Discrete Mathematics
The mathematics of the discrete and finite: logic, sets, relations, and proof — the formal language of computer science.
10 modules · 40 lessons
CS103
Computer Systems Fundamentals
How data and instructions are represented in bits, and the journey from source code to a running program on hardware.
8 modules · 40 lessons
Year 2
Core Computer Science
The heart of the discipline: data structures, algorithmic analysis, how programs are organized, and the mathematics of machine learning to come.
CS201
Data Structures & Algorithms
The core toolkit: measuring efficiency with Big-O, and the data structures — arrays, lists, stacks, hash tables, trees — that make software fast.
10 modules · 48 lessons
CS202
Object-Oriented Programming
Organizing large programs around objects: classes, encapsulation, inheritance, and polymorphism.
8 modules · 40 lessons
CS203
Computer Architecture
From logic gates to a working processor: boolean hardware, the datapath, and the instruction set that software targets.
9 modules · 36 lessons
MA201
Linear Algebra
Vectors, matrices, and transformations — the mathematics of graphics, machine learning, and data.
10 modules · 40 lessons
MA202
Probability & Statistics
Reasoning under uncertainty: probability, distributions, and Bayesian thinking — foundations for AI and data analysis.
10 modules · 40 lessons
CS205
Functional Programming
A different way to compute: pure functions, immutability, and higher-order functions — the ideas behind SICP and modern functional languages.
8 modules · 40 lessons
CS206
Computer Systems: A Programmer’s Perspective
How programs really run on hardware: number representation and overflow, pointers, and the stack and heap — the CSAPP view every serious programmer needs.
9 modules · 45 lessons
Year 3
Systems & Theory
How real systems work and what computation can and cannot do: operating systems, databases, networks, the theory of computation, and serious algorithm design.
CS301
Operating Systems
The software that manages the machine: processes, scheduling, virtual memory, and concurrency.
10 modules · 50 lessons
CS302
Databases
Storing and querying data reliably: the relational model, SQL, normalization, and ACID transactions.
10 modules · 50 lessons
CS303
Computer Networks
How machines talk: the layered model, IP addressing and routing, TCP versus UDP, and the protocols of the web.
9 modules · 45 lessons
CS304
Theory of Computation
The mathematics of computation itself: automata, Turing machines, undecidability, and the P vs NP question.
10 modules · 40 lessons
CS305
Algorithm Design & Analysis
Powerful design paradigms: divide and conquer, greedy algorithms, dynamic programming, and graph algorithms.
10 modules · 50 lessons
CS306
Software Engineering
Building software in teams and at scale: process, version control, testing, and design principles.
9 modules · 45 lessons
CS307
Programming Languages
The concepts behind languages: paradigms, type systems, and how memory is managed.
10 modules · 40 lessons
CS308
Human–Computer Interaction
Designing software people can actually use: usability principles, the user-centered design process, and how to test what you build.
9 modules · 36 lessons
Year 4
Advanced & Specialized
The frontier: artificial intelligence, machine learning, compilers, distributed systems, security, graphics, and language.
CS401
Artificial Intelligence
Making machines act intelligently: search, heuristics, and knowledge representation.
10 modules · 50 lessons
CS402
Machine Learning
Learning from data: supervised learning, the training process, neural networks, and deep learning.
12 modules · 48 lessons
CS403
Compilers
How source code becomes machine code: lexing, parsing, semantic analysis, and code generation.
10 modules · 50 lessons
CS404
Distributed Systems
Building systems that span many machines: consistency tradeoffs, consensus, and fault tolerance.
10 modules · 50 lessons
CS405
Security & Cryptography
Protecting systems and data: cryptographic building blocks and common vulnerability classes.
10 modules · 50 lessons
CS406
Web & Cloud Development
Building and scaling modern applications: web architecture, APIs, and the cloud.
10 modules · 50 lessons
CS407
Computer Graphics
How images are synthesized from geometry: the rendering pipeline, transformations, and color — the foundations of games, film, and visualization.
10 modules · 50 lessons
CS408
Natural Language Processing
Teaching machines to work with human language: representing text as vectors, language models, and the transformer architecture behind modern AI.
10 modules · 50 lessons
Start with lesson one.
No setup, nothing to install. Try it before you sign up.