I recently hosted a quantum computing hackathon! "Hands-On Quantum Computing – How to use a real Quantum Computer" at FutureLondon.org - thanks to Joseph Reeve. About 20 people attended, mostly software engineers. It was great fun.
Here are some highlights and what I learned from the experience.
- Most people aren't aware that real quantum computers exist and that you can access them for free in the IBM cloud. The free tier is limited to 10 minutes a month, but that's more than enough to run "hello world" programs. As of now, quantum computers with up to 133 qubits are available.
- Any introduction to quantum computing that goes beyond "a bit can be zero or one, but a qubit can be both zero and one at the same time" requires a lot of background knowledge. But where to start? Heisenberg's Uncertainty Principle, wave-particle duality, wave function collapse? It's a lot to cover in one session. I found that explaining some of the concepts using the Stern-Gerlach and double slit experiments was great for building intuition.
- One can approach almost any concept in multiple ways. For example, we can talk about superposition in mathematical terms, how to implement it in code (eg using Qiskit or tket), or in terms of physical reality (eg using a lamp and some linear polarisation filters). Each time you hear the same thing explained differently, it increases the chance of you grokking it.
Participants wrote simple circuits in a notebook and submitted them to a cloud quantum computer. The natural question, which got asked a lot, was: "what actually happens inside the quantum computer when I submit a job?" Given the different kinds of quantum computing hardware (superconducting, ion-trap, photonic, etc), this rabbit hole is deep. Even if you're like me and are mainly interested in quantum software, having a working knowledge of the most common technologies is probably a good idea!
- Participants completed the practical bit of the hackathon (submitting simple circuits, like a random bit generator or circuits implementing Bell States to the quantum computer and measuring the outcomes) really quickly. There is a natural progression from here starting with Deutsch's Algorithm to Deutsch-Jozsa, Grover's and finally Shor's Algorithm in terms of both (1) complexity of the algorithm and (2) the advantage quantum computers have over classical computers. We only briefly mentioned them during the two-hour introductory session. If I did it again, I’d give participants more time to just play around with basic quantum gates and observe their effect on the Bloch sphere.
- The truth is that current quantum computers, although on an exciting trajectory, are still noisy and have low qubit counts. We're only just starting to see them perform meaningful work. I should probably have communicated this earlier on in the session to manage expectations. Nevertheless, we achieved the main goal: going from 0 to using a real quantum computer in one evening!