preface

 

I joined Microsoft Quantum and, by extension, the world of quantum computing in early 2017, just as the team started developing the quantum programming language that later became Q#. I spent a big part of the next eight years learning quantum computing myself and helping others do the same, both as part of my job at Microsoft and in the course I teach at Northeastern University. And, while doing this, I noticed several gaps in the way quantum computing was taught.

First, a lot of material on quantum computing focused on its mathematical aspects only. I am an applied mathematician by training, so I’m comfortable with math. But I’m a software engineer by trade, and I’m a lot more comfortable with algorithms when I can implement them and experiment with running them! My first project in quantum computing education, the Quantum Katas, focused on introducing the basics—quantum states and gates, measurements, and simple algorithms—through a series of programming problems that the learner would solve to internalize the theory.