Fusion of Quantum Computing and Compiler Design
|Name||Bachelor / Master Practical Course|
|Module ID||IN0012 / IN2106|
|Organisation||TUM Department of Informatics|
|Module level||Bachelor / Master|
|Time||Mo 9:00 - 12:00 and Fr 9:00 - 12:00 (partially voluntary working time)|
|Comment||Note the Admission Requirements below|
In our research group we work on optimizing compiler structures for quantum computing. Due to physical properties, quantum computers bring along some restrictions when implementing programs for them. For example, a value in a variable cannot just be copied, hence it is not possible to assign the value from one variable to another. This would contradict the no-cloning theorem of quantum mechanics.
However, quantum computers can speed up certain computations such that they actually become tractable. One such application is the computation of the ground state energy of a molecule. For classical computers this problem becomes quickly infeasible with the size of the molecule. In contrast to that, quantum computers can solve this problem efficiently using the variational eigensolver algorithm.
More general, to simulate a quantum computer with a descent number of 500 qubits (the correspondent of a bit in a classical computer) on a classical computer, this classical computer would need more bits than the estimated number of atoms in the universe.
However, at the moment we are not there yet. Right now, quantum computers have to deal with a lot of noise and the number of qubits is very limited. Nevertheless, the research in constructing larger and larger quantum computers keeps evolving such that in a few years, we can expect actual quantum supremacy.
In this practical course, you can become part of this journey and help to lay the foundations for programming tools for quantum computers such that once quantum computers become broadly available, they can be used by programmers around the world. Our aim is to make the programming as user-friendly as possible such that the programmer does not need to be an expert in quantum mechanics to take advantage of a quantum computer.
Important: Even though we build compiler structures tailored for quantum computing there are plenty of tasks where you do not need a deep understanding how quantum computers work. They address more fundamental issues related to compiler design, such as parser generation.
Form of Instruction
The course starts with an introduction in the form of lectures on fundamentals in quantum computing, compiler design and the project management model Scrum. After an overview of the available tasks, they will be distributed among groups groups of 5 to 9 students. The practical work will be a central part of the course. Additionally, it may require independent research of relevant topics within quantum computation and compiler design. In intervals of presumably two weeks every group will present their results to the whole group.
The examination on the course consists of an account of the student's effort in the project, mainly as a time log, a written final report in the form of a home exam, and at least one oral contribution as part of the presentations on the state of the work during the course of the project. The course grade is an overall assessment of the three examinations parts and is set when both reports have been inspected.
For the course you must have passed the following courses (or equivalent): Linear Algebra for Informatics (MA0901), Introduction to Theory of Computation (IN0011), and Introduction to Software Engineering (IN0006). Additionally it is recommended that you have taken one of the following: Compiler Construction (IN2227), or Introduction to Quantum Computing (IN2381). Furthermore, you must have knowledge of a functional programming language preferably OCaml e.g. from Functional Programming and Verification (IN0003).
To be admitted to the course you must hand in documents providing proof of the required knowledge e.g. Transcript of Records, and a written report (one page) containing the following parts:
- Your name and your TUM mail address
- Your background
- Relevant knowledge that you bring into the project
- Your areas of interest with respect to the project
- Areas where you would like to challenge yourself
- One "fun fact" about yourself
Submit the proof of required knowledge and the written report as a pdf file via email to email@example.com until the end of the matching period. The subject of the mail must be "QCCD: Admission <your name>". The written reports will be available to all students admitted to the course and serve as a presentation of yourself.
The slides from the pre-course meeting can be downloaded here.
The corresponding Moodle course can be accessed here.