Read it, then prove it.

Most free courses hand you a video and a quiz that checks you were awake. Compendia gives you the full written material, code you can change and run on the page, and problem sets that get marked against real tests.

1065lessons written
417problem sets
3languages, run in the browser
Try it nowPython
Inputone answer per line

This is a real lesson widget, running real Python. Change the name, press Run, and watch the output follow. No account needed.

Three things, done properly

Not a video library with a comment section.

Written to be understood

Every idea arrives as plain language first, then a worked example with real numbers, then the name for it. No jargon before it is defined, and no code before you know what it is for.

Code you can change

Snippets throughout every lesson run for real. Edit a line, press play, see what moved. That loop is what turns something you have read into something you can write.

Marked against real tests

Problem sets run your code against the cases, including the awkward ones you did not think of, and tell you exactly which input broke it.

Courses written so far

Each one is a full course, not a taster. Sections open as you finish the one before.

See all

Computer Science

Master Python

Start from never having written a line of code and finish able to build a program, read somebody else's, and know which of the two you should be doing.

161 lessons76 problem sets

Mathematics

Int 3 for Programmers

The whole Integrated Math 3 syllabus with the code first and the rule second. Polynomials, radicals, logarithms, series, trigonometry, statistics and conics, drilled by hand because the exam is sat on paper.

255 lessons57 problem sets

Mathematics

Pre-Calculus for Programmers

Everything Calculus I assumes you already have, rebuilt from Algebra I upwards. Functions and transformations, the whole of trigonometry, and a closing bridge into limits and the derivative.

242 lessons64 problem sets

Mathematics

Calculus I for Programmers

Calculus I with the order of explanation reversed: you write the code first and the theorem arrives to explain why it worked. Taught in Python or C++, your choice, switchable mid course.

80 lessons47 problem sets

Mathematics

Learn Math

A short tour of what a rule looks like when you can move it. Slopes, curves, and answers you work out on paper and have marked.

3 lessons

Computer Science

Master C++

Start from never having compiled anything and finish able to read, write and reason about C++: memory, lifetime, ownership, templates and the standard library.

123 lessons92 problem sets

Computer Science

Master C

The language the machine is easiest to see through. Pointers, memory you manage yourself, and what the compiler does and does not check for you.

98 lessons78 problem sets

Computer Science

Data Structures

Lists, trees, heaps and hash tables, implemented from scratch and graded against a test suite.

103 lessons3 problem sets

Start with the first lesson. It takes about six minutes.

Every lesson below is readable and every snippet runs without an account. Signing in is what remembers where you stopped.