Quantum Programming Tutorial #0: Intro
Hey guys, this is Mac Heads 101, and today I'm going to be introducing the quantum programming series, which I plan to make throughout the next couple of months.
Now, this series will basically show how to use a programming language called QCL to write and test programs written for a quantum computer. If you're unfamiliar with what a quantum computer is, essentially it's a computer that uses quantum principles to calculate things much faster than a regular computer could.
There are certain things that quantum computers can do faster, and there are certain things that they can't necessarily do faster. But the idea of this series is we're going to explore how a quantum computer is different from a regular computer and how to write efficient algorithms for a quantum computer.
At the moment, IBM Research and various other research labs are working to actually construct the first physical quantum computers. However, no physical quantum computer has been built besides very small machines, which are somewhat useless because regular computers are actually still powerful enough to emulate them.
In the near future, I can see quantum computers being produced that a regular computer couldn't emulate. These quantum computers have enormous potential, and it's important to be able to understand how to program for them and how to think in terms of quantum algorithms.
So, I'm just going to talk briefly about some of the advantages of quantum computing. One of the biggest ones, which essentially was a big driver for the quantum computing research industry as a whole, was the invention of Shor's algorithm. This is an algorithm for a quantum computer that allows it to factor a ridiculously large number in a pretty small amount of time.
The reason that this is important is that currently, if you, for instance, in your browser, use HTTPS to go to some website, then you're ensured that your traffic is encrypted, so it's secure. All that needs to be done in order to crack that encryption and actually see what you're doing and totally invade your privacy is that someone needs to be able to factor a very large number to break that public key encryption that your browser is using.
Currently, regular computers basically can't do that without spending a ridiculously long amount of time. However, a quantum computer, as I just mentioned, can use Shor's algorithm and actually factor that number pretty quickly, immediately breaking your encryption. So, quantum computing has that benefit over regular computers that we know of: an algorithm for a quantum computer that can factor a number very quickly. That's just one among many of the advantages of quantum computing.
In order to understand Shor's algorithm, which we will get to in the series, what you need to understand is how various quantum principles work and how interference works. I'm going to have to explain a lot of math principles along the way, which will be necessary, but one of my goals for this series will be that even if you're not amazing at math, or you're not amazing at programming, or you're not amazing at either one, you're just interested in quantum computing or cryptography or security, or whatever it is that you're interested in, I'm going to be trying to guide everybody through the process of learning quantum programming.
I'm going to be explaining quantum principles that are required to write good quantum programs. To do this, at some points, I'm going to be showing you bits of calculus and bits of linear algebra. I'm going to explain various programming techniques, and QCL is a pretty good language; it's similar to C in syntax.
So, if you're familiar with programming in a C-like or Java-like language, you'll be familiar with the QCL syntax. That'll be fantastic for those of you who are good at programming, but even for those of you who aren't, I'm going to be explaining all the principles in a lot of depth.
My ultimate goal with this series is that quantum computing is a new concept that not very many people understand, and I just want to make everyone who watches this series at least get an idea of its potential and how it can be utilized. I think that this will make for a much brighter future once this new series of quantum computers maybe hits the market in 10 or 15 years, and we'll have people who actually understand how to create quantum algorithms and do cool things with them.
In my next tutorial, which I hope to be making in the next couple of days, I'm going to be showing you how to install QCL on a Mac. I won't include something on how to install it on Windows because I'm not sure it's ever actually been tested on Windows, but I know for a fact that the developer who wrote it created it for Linux and Mac. I've managed to install it on my Mac pretty easily, and I'm going to be showing you how to do that in the next video.
So, just stay tuned and look forward to that. In the link in the description, I'm going to have some reading that you can do. It won't be necessary for the series, but it's interesting to read about the various quantum principles. There's an introduction to quantum computing that I learned from originally, and I'm going to include some links on linear algebra lectures in case you're interested in learning linear algebra for this tutorial series because we certainly are going to be using some linear algebra principles even if I don't use linear algebra directly.
So, I hope you look forward to the series as much as I do. Thanks for watching Mac Heads 101. Subscribe, and goodbye!