NDAK26003U Hybrid Quantum Programming (HQP)
This course provides an introduction to state-of-the-art
research on
*hybrid quantum-classical programming (HQP)*. Due to inherent
limitations of quantum computers, addressing challenging real-world
problems using quantum computers - now and in the future - will
require a hybrid approach that combines massively parallel
classical high-performance computing (HPC) on big data, with the
delegation of classically intractable subproblems on relatively
small data sets to quantum computers.
The course consists of introductory lectures, student seminar presentations, invited talks, and a (mini-)project phase. The lectures cover
- introductions to functional programming and to quantum computing
- introductions to quantum programming languages and calculi
- inherent limitations of quantum computers and the need for combining quantum and classical high-performance computing
- quantum programming with symbolic tensor product representations
- Clifford algebras and stabilizers for quantum circuit simulation- high-level quantum-classical programming
The mini-projects cover topics on "post-NISQ" programming with logical (qu)bits and higher-level (quantum) data structures, such as
- hardware-agnostic high-level programming combining quantum algorithms and classical data-parallel algorithms;
- high-performance classical simulation of quantum computations;
- intermediate languages for expressing, optimizing and approximating quantum computations;
- code generation that targets a mix of quantum computers and GPUs.
The course focuses on portably expressing, optimizing, compiling, analyzing, and running (including simulating) arbitrary quantum-classical algorithms on mixed quantum and classical hardware. It complements other courses, such as on specific quantum algorithms, physically realizing logical qubits by quantum error correction, designing and building quantum hardware.
The course acquaints students with performing and communicating independent research in project form. The course consists of lectures and subsequent group-based (2-4 persons) mini-projects including seminar presentations.
The mini-projects may consist of theoretical investigations,
software construction, or a combination of these. Master's
thesis projects will be offered in continuation of the course. The
specific research topics proposed for the mini-projects reflect
up-to-date research on quantum-classical programming as well as
student and faculty interests.
Knowledge of
- functional programming techniques for defining and interpreting quantum programming languages
- select quantum programming languages and calculi
- the roles of quantum and classical computers for efficient computing- state vector, symbolic tensor and stabilizer representations for quantum simulation
Skills to
- Discuss properties such as correctness and performance and define what they mean in the context of quantum-classical programming
- Apply functional programming and algebraic implementation techniques to quantum programming
- Read, assess and communicate research papers
- Prepare and give a research presentation
Competences to
- Identify opportunities quantum-classical program applications and seperation
- Select a suitable programming language abstractions dialect to implement hybrid quantum-classical problems
- Develop a given project proposal into a project plan, execute it, and present the results
Research articles and excerpts from books, distributed electronically.
See Absalon for a list of course literature.
Experience with programming using a high-level programming language such as Haskell or Python is highly recommended.
The following are courses that can, optionally, be taken concurrently with HQP:
Data Parallel Programming (UCPH)
Quantum Error Correction (UCPH)
These courses are optional, not required.
presentations and finally a group mini-project, which is the basis for the oral exam:
▪ Lecture phase: lectures and exercises, formation of project groups (3 weeks)
▪ Seminar phase: seminar presentations by project groups (3 weeks)
▪ Project phase: project work by project groups (3 weeks)
Languages (ATPL).
- Category
- Hours
- Lectures
- 12
- Preparation
- 12
- Exercises
- 24
- Project work
- 96
- Seminar
- 48
- Exam Preparation
- 13
- Exam
- 1
- Total
- 206
- Credit
- 7,5 ECTS
- Type of assessment
- Oral exam on basis of previous submission, 30 min
- Type of assessment details
- Individual oral examination without preparation.
During the course the students will carry out a group-based mini-project resulting in a
co-authored report.
Format: An individual presentation of select parts of a group report (i.e. mini-project
report) followed by individual examination in the course topics (see topics and learning
objectives) with special emphasis on the
subject of the report the student has co-authored. - Aid
- Only certain aids allowed (see description below)
For the project and written report: All aids allowed.
For the oral exam: only slides (on a computer), the project report and source code are
permitted. - Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
Several internal examiners
- Re-exam
Same as the ordinary exam.
If a student has not previously handed in a mini-project report this can be handed in as an individual mini-project report no later than 2 weeks before the reexamination date.
Criteria for exam assesment
See Learning Outcome
Course information
- Language
- English
- Course code
- NDAK26003U
- Credit
- 7,5 ECTS
- Level
- Full Degree Master
- Duration
- 1 block
- Placement
- Block 2
- Schedule
- A
- Course capacity
- No limitation – unless you register in the late-registration
period (BSc and MSc) or as a
credit or single subject student.
Study board
- Study Board of Mathematics and Computer Science
Contracting department
- Department of Computer Science
Contracting faculty
- Faculty of Science
Course Coordinators
- Fritz Henglein (8-7b78817a7f787c8153777c417e8841777e)
- Michael Kirkedal Thomsen (10-6f306d6b746d6766636e42666b306d7730666d)
- James Emil Avery (5-71867582895074793e7b853e747b)