The Nature of Computation
Get a sense for what quantum computing is, and what it isn't. Hint: it's not magic.
Learn to build quantum algorithms from the ground up with a quantum computer simulated in your browser.
Quantum computing is an endeavor that's been promised to upend everything from codebreaking, to drug development, to machine learning. With so much hype, it's easy to get lost marveling at the possibilities, without grasping what quantum computing actually is.
Track down the origin of the quantum speed-up, then get acquainted with the qubit and its glorious choreography.
Get a sense for what quantum computing is, and what it isn't. Hint: it's not magic.
A primer on gated-based computation with classical bits.
An introduction to the qubit, the basic unit of quantum information.
Meet quantum parallelism and use it to find a fast solution to a classic puzzle.
Manipulate quantum states with gates, and build a universal quantum computer.
The power of quantum computing isn't in information storage, it's in information processing.
A primer on qubits, quantum states, and transforming qubits with gates.
A tour of the 1-qubit gates we'll be using in the course.
A deep dive on superposition and basis states.
Learn how to visualize all 1-qubit transformations geometrically.
How many gates do we need to prepare any possible 1-qubit state?
In most quantum states, it's impossible to think one qubit at a time.
Learn how to build quantum circuits using the quantum programming language Q#.
Mathematical underpinnings for unitary operators (optional material).
Assemble quantum circuits for cryptography, super-dense information storage and quantum teleportation.
Learn how to build entanglement with a quantum circuit.
Our first practical application, learn how entanglement is used (today) for absolutely secure communication.
Can we use entanglement to send messages faster than light?
Is it possible to send two classical bits in one qubit?
Teleportation manifest. Learn how to send quantum states without sending any qubits.
Program the superdense coding procedure using Q#, and then transform it into teleportation.
Use quantum circuits to tackle classical problems and find out when a speed-up is possible.
Quantum computing promises to transform our hardest problems into tractable ones. But what’s a hard problem?
People say that quantum computing can try every answer simultaneously. It can't. Here's what they mean.
Oracle machines distill computer science problems to their essence, and let us clearly see quantum speedups.
Extract an answer from an oracle, and catch a first glimpse of exponential quantum speedups.
Get primed for real-world oracle problems by solving the Bernstein-Vazirani problem.
Can you solve the quantum counterfeit coin problem in a single attempt?
Program quantum oracles and queries with Q#, and use them to solve problems.
Use quantum operations to solve optimization problems and simulate physical systems.
In the near term, quantum computers won't run Shor's, they'll be small and run algorithms inspired by nature.
Explore the Rosetta stone for encoding computational optimization problems in the language of qubits.
Program spin systems in Microsoft's Q#, a language built to control real, near-term quantum computers.
Build spin models for magnetic matter in Q# and use quantum optimization to unlock their behavior.
Acquaint yourself with a classic problem: maximizing the value of stolen loot. Then translate it to qubits.
Here, you'll embed computational problems in spin systems and get a glimpse of entanglement's power.
The first breakthroughs of quantum computing will likely be simulating the medicines and catalysts of tomorrow.