"Nature isn’t classical [...] and if you want to make a simulation of nature, you'd better make it quantum mechanical [...]" - Richard Feynman
Classical computers seem to have essential difficulties in simulating quantum mechanical systems. This leads to the question if computers based on the principals of quantum mechanics could be used to overcome this problem. From a computer science perspective, the question immediately extends to: What problems can be solved more efficiently on a quantum computer than on a classical computer? Such a device would not only differ drastically from our classical computers on a technological level, but it also demands for analyzing new formal models of computation. Along this line, a variety of classical computer science domains found their quantum counterpart within recent decades, such as quantum complexity theory, quantum algorithm design, quantum information theory or quantum encoding/encryption.
This course gives an introduction to quantum computation from a computer science perspective, including (but not necessarily limited to) the different domains of quantum computer science mentioned above. We will delve into a model of computation that heavily differs from most other models studied in computer science, but at the same time will become more and more relevant in the upcoming decades. While the results are often counterintuitive, we will see that most aspects of quantum computation actually follow rather simple and elegant mathematical descriptions. By the end of the course, you should have a broad overview on the different domains of quantum computing that enables you to independently deepen you knowledge based on more advanced literature or even recent research work.
Related courses: For a more applied approach to quantum computing, we recomment the course Quantum Programming by the System Analysis and Modeling research group for complementing our theoretical introduction.