This course is the basic introduction in the concepts and techniques that are needed to build a quantum accelerator. It is called a quantum accelerator as the device should be capable of performing one particular function needed for a particular application. What is important is that we are basing our understanding on quantum bits, also called QUBITS.

The layers of the full stack quantum accelerator consist of the following:

- Quantum application: what is the overall logic that the application needs to perform a paricular function?
- Quantum library: what algorithms are already available or will be developed that can be used in the quantum accelerator logic ?
- Quantum programming language: the language that was produced is OpenQL and for which the basic concepts will be explained. OpenQL can produce 2 kinds of outputs. The first is called cQASM, which stands for common Quantum Assembly and can be executec by the quantum simulator that we have developed. The second version translates the cQASM logic in the eQASM version, where the 'e' stands for executable Quantum assembly. There are still a lot of quantum technologies trying to become the dominant quantum technology. For each technology, we have to generate a specific eQASM version.
- Quantum Operating System: just like any modern computer, we also need an operating system that controls the entire hardware and qubit information flowing through the complete system.
- Quantum micro-architecture: just like any accelerator, we will also need to have a micro-system that executes any OS instruction or the application instruction.
- Quantum Simulator: as there are not enough good physical qubits available, we execute any implementation of any of the layers described here on the quantum simulator. That contains both the micro-architecture as well as the quantum gates needed for the application.
Período: 1ºSemestre