Science · Level 5

5.1 Quantum Computing

Solve hard problems by computing with quantum mechanics.

Made in collaboration with

Microsoft

The Nature of Computation

Computing with Circuits

Quantum Bits

A Black Box Puzzle

Information and Bits

Qubit Playground

Gates Galore

Superpositions

The Bloch Sphere

A Universal Gate Set

Entanglement

Qubits with Q#

Unitary Transformations (Optional)

Entanglement Circuit

Quantum Cryptography

Quantum Communication

Superdense Coding

Quantum Teleportation

Superdense Coding with Q#

Problem Complexity

Quantum Parallelism

The Problem with Oracles

Bigger Problems

The Promised Bits

Counterfeit Coins Redux

Oracles with Q#

Inspired by Nature

Spin Systems

Modeling Quantum Spins with Q#

Simulating Magnets with Q#

The Knapsack Problem

Packing a Knapsack with Q#

The Hydrogen Molecule with Q#


Course description

Learn to build quantum algorithms from the ground up with a quantum computer simulated in your browser in this course, created in collaboration with quantum researchers and practitioners from Microsoft, X, and Caltech's IQIM. 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. Our focus is learning how to exploit the laws of quantum mechanics in order to compute. By the end, you'll know your way around the world of quantum information, have experimented with the ins and outs of quantum circuits, and have written your first 100 lines of quantum code — while remaining blissfully ignorant about detailed quantum physics.


Topics covered

  • Qubits
  • Quantum States
  • Superposition
  • Entanglement
  • Quantum Gates
  • NISQ Algorithms
  • Cryptography
  • Teleportation
  • Superdense Coding
  • Quantum Chemistry
  • ⏳Grover Search
  • ⏳Shor’s Algorithm

Prerequisites and next steps

A basic understanding of linear algebra with 2x2 matrices. Some familiarity with fundamental computer science principles would be useful, but is not required.


Prerequisites