Part of the 4TU.Federation
Centre for
Engineering Education

Think Q: Quantum Programming Education for Engineers

Teaching practical quantum programming for forward compatible engineers.
Project added: 08/05/2020

Project introduction and background information

Quantum computing is an emerging technology that has the potential to change the way we will be solving computational problems in the future, in the best of all cases, exponentially faster. 

Although practical quantum computers are still very rare, education of the forward compatible engineer that is aware of the potential and able to apply quantum computing has to start today. This requires knowledge of quantum computing principles and practical experience in writing quantum computer programs for solving practical engineering problems.

"Think Q: Quantum Programming Education for Engineers’ aims at teaching the basics of quantum computing and skills in quantum programming to students of the engineering disciplines using a solution-oriented hands-on approach that makes the subject more accessible, also for non-quantum experts.

Objective and expected outcomes

The main objective of this project is to teach students of the engineering disciplines how to use quantum computers to solve computational problems from their discipline in the (near-)future. This includes education of the basic principles of quantum computing that form the theoretical fundament of quantum computers’ superpowers, and teaching of quantum computer programming skills.

Getting started with practical quantum computing is difficult since it is based on a completely different mindset: To start with, quantum algorithms are typically probabilistic and the traditional concept of a computer consisting of memory to hold the data and a processor to perform logical operations is not applicable. Moreover, today’s quantum hardware and the available quantum software development tools are very much premature. Writing a quantum computer program today comes close to coding an IBM 701 machine with the aid of punched cards in the 1950’s.

To make quantum computing more attractive and accessible to non-quantum experts, we have created the LibKet [1] (pronounce lib-ket) library that provides ready-to-use quantum algorithms and building blocks that can be easily combined like Lego® bricks to create quantum computer programs. With a few lines of code, these programs can be run on many of today’s quantum computer simulators and hardware platforms from within LibKet to facilitate practical quantum computing experience [2,3].

An educational tutorial will be developed in a cloud-based learning platform that will allow engineering students to explore the possibilities of quantum computing for practical applications coming from their respective field of interest [4].

Results and learnings

This innovation helps to educate future engineers in applying quantum computing technologies to solve domain-specific applications in a relatively “easy” way.

By using the outcome of the LibKet project, quantum computer programming is made attractive and accessible for non-quantum experts and thus more fun for students of the engineering disciplines. LibKet can be accessed from the programming languages C, C++, and Python and it is designed with flexibility in mind. With a few lines of program code, quantum algorithms can be written and run on many of today’s quantum computer simulators and hardware platforms in the cloud.


The project has been tested in practise during the SIAM CSE21 conference, during a 3.5h mini-tutorial[2] for scientists from the field of Computational Science and Engineering. Based on the experience gained, we started the LibKet Learn textbook[3] which will unify the stand-alone Jupyter notebook tutorials into a full-fledged course for self-study.

So please keep your eye on this innovation, updates will follow!  

[1] (LibKet source code)

[2]  (LibKet tutorials)

[3]  (LibKet Learn textbook)

[4] M. Möller and M. Schalkers. LibKet: A Cross-Platform Programming Framework for Quantum-Accelerated Scientific Computing.