Hybrid Quantum Programming (HQP)
Course content
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
The course progresses from teaching (lectures with exercises) to
student seminar
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)
Research articles and excerpts from books, distributed electronically.
See Absalon for a list of course literature.
The course is open to Master's degree students from computer
science, quantum information science, mathematics, physics or
similar programs. Introductions to the computer science,
mathematics and theoretical physics background relevant to the
course is given in the lectures at the beginning of the course.
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.
A precursor of the course was developed within the course
Advanced Topics in Programming
Languages (ATPL).
- ECTS
- 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 assessment
See Learning Outcome
Single subject courses (day)
- Category
- Hours
- Lectures
- 12
- Preparation
- 12
- Exercises
- 24
- Project work
- 96
- Seminar
- 48
- Exam Preparation
- 13
- Exam
- 1
- English
- 206
Kursusinformation
- Language
- English
- Course number
- NDAK26003U
- ECTS
- 7,5 ECTS
- Programme level
- Full Degree Master
- Duration
-
1 block
- Placement
- Block 2
- Schedulegroup
-
A
- Capacity
- No limitation – unless you register in the late-registration
period (BSc and MSc) or as a
credit or single subject student. - Studyboard
- Study Board of Mathematics and Computer Science
Contracting department
- Department of Computer Science
Contracting faculty
- Faculty of Science
Course Coordinators
- Fritz Henglein (8-6d6a736c716a6e7345696e33707a336970)
- Michael Kirkedal Thomsen (10-7435727079726c6b6873476b7035727c356b72)
- James Emil Avery (5-637867747b42666b306d7730666d)
Er du BA- eller KA-studerende?
Kursusinformation for indskrevne studerende