The world of quantum computing can be difficult to absorb at first, partly due to the unintuitive nature of quantum mechanics and partly due to the heavy mathematical language used to express it.
In this workshop I’ve tried to convey the power and beauty of quantum computing in a way that programmers can understand. While shying away from complex maths I've also tried to avoid the tendency of many popular articles and introduce just enough maths and physics to get to grips with the subject without simplifiying to the point of absurdity.
Using practical exercises it moves from an intuitive understanding of the concepts through to the fundamental quantum algorithms.
Each section is organised into an explanation with the minimum maths followed by one or more programming exercises which introduce the mathematics and reenforce it with practical use. Each exercise builds on the last culminating in a basic working quantum computer simulator.
A reasonably high level of programming skills is assumed. If you want to learn programming then this is not the place. Also, some familiarity with linear algebras (basically matrices and vectors) will also be useful in some sections.
Exercises will be guided using tests, that is, I provide feature or unit tests and the challenge is to write the code to pass the tests. Hints will be given in Java so the ability to at least read Java will be useful.
This is the course that I wanted to do. Hopefully it’s of some use to someone else.
- Extending the classical bit
- Gates
- God does play dice
Exercises: representing the qubit, quantum randomness simulation
(Concepts: qubit, unitary state vector, unitary operator)
- The rules for composing two qubits
- Two qubit gates
- Conditional NOT
- Entanglement
- Partial measurement
Exercises: superdense coding, teleportation
(Concepts: tensor product of states and operators, entanglement)
- Composing several unitary gates (2^n)
- Oracles
Exercises: recursive tensor product, Grover's Search
- Factoring a composite integer (Shor's Algorithm)
- Quantum computing SDKs and real quantum computers
- Implications for the future
Michael Nielson's YouTube course - Quantum Computing for the Determined
Microsoft's Q# - What is Quantum Computing?
Craig Gidney's Quirk online quantum circuit simulator and blog.
Creative Commons Attribution-ShareAlike 4.0 International License.