Reversible Computing

Reversible computing is the study of computation that never destroys information — machines whose every step can be run backwards. It is where computer science meets thermodynamics: by Landauer's principle, erasing a bit has an unavoidable energy price, and forgetting nothing is the only road to computing with (in principle) no energy cost at all. The same ideas turn out to be the classical skeleton of quantum computing, the theory behind time-travel debuggers, and the checkpointing trick that trains today's largest neural networks.

This master's-level course builds the subject from thermodynamic first principles to the research frontier: the physics of information, classical reversible gates and circuit synthesis, reversible Turing machines and their space–time bargains, reversible cellular automata and the billiard-ball computer, adiabatic circuits that recycle their own charge, programming languages that run equally well backwards, the bridge to quantum circuits, and the ultimate physical limits of computation. It assumes fluency with digital logic, the theory of computation and statistical mechanics, and pairs naturally with the Quantum Computing course.

Module 0 — Background

Module 1 — Thermodynamics of computation

Module 2 — Reversible logic gates

Module 3 — Reversible circuit synthesis

Module 4 — Reversible models of computation

Module 5 — Reversible cellular automata

Module 6 — Adiabatic circuits and reversible architecture

Module 7 — Reversible programming

Module 8 — The quantum connection

Module 9 — Physical limits of computation

Module 10 — Frontiers

Begin → What Is Reversible Computing?

The people

The subject's story runs through a remarkable cast: Leó Szilárd, whose one-molecule engine first tied information to energy; Rolf Landauer, who priced forgetting; Charles Bennett, who proved computing can be free and exorcised Maxwell's demon; Edward Fredkin and Tommaso Toffoli, who built logic from billiard balls; and Richard Feynman, who told the world there is no minimum energy for computation.