Kies de Nederlandse taal
Course module: 202001548
Introduction to Quantum Computing for Computer Scientists
Course info
Course module202001548
Credits (ECTS)5
Course typeCourse
Language of instructionEnglish
Contact persondr. A. Acun
Contactperson for the course
dr. A. Acun
dr. A. Acun
Examiner A. Rensink
Examiner V. Zaytsev
Academic year2021
Starting block
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes
At the end of the course the student is able to:
  • explain where quantum and classical computing differ from each other
  • program quantum circuits on gated quantum computers
  • program hybrid classical-quantum algorithms
  • optimize using quantum annealing
  • implementing the most widely known quantum algorithms (Deutsch-Jozsa, Grover, Simon, Shor)
  • asses if and when a quantum approach is suitable for a given problem
  • elaborate on the opportunities and threats of quantum computing and quantum technologies
  • direct (or design or develop) a quantum approach for common problems encountered in machine learning, optimization, or partial differential equations
  • articulate on speedups of quantum algorithms w.r.t. their classical counterparts
  • discuss the limitations of quantum hardware
Since the discovery of the transistor chipmakers increased the computational power in computers mostly by reducing the size of the transistors. The transistor size is reduced in such magnitude that quantum effects may occur and therefore inhibit computation as is desired. Then it also turns out that actually making use of quantum mechanics to do computation gives (tremendous) speedups and, perhaps, enables computations that would be impractical for classical computers.

During this course, an introduction to quantum mechanical principles will be given by a mathematical approach (linear algebra and graphs) instead of explaining by physics to make it more familiar to computer science students. These quantum mechanical principles are used for building the first quantum circuits as if a student learned how logical gates are applied in classical computing. Based on this knowledge the prime algorithms that sparked the field of quantum computing are addressed. The course is then extended with various applications of quantum algorithms, for example optimization and machine learning. Finally, a critical look is given at existing quantum algorithms.

The course is intended to give students more than sufficient information to start developing and assessing quantum projects. Therefore, the examination of the course is done both by theory and by practice. Graded homework sets are given throughout the course where theoretical questions are asked along with programming questions (making use of Jupyter Notebook). A final project is done in groups where real-world applications are assessed or developed by the groups. Students get to pick one of the projects or may come up with their own proposed project. A presentation, demonstration and a report are handed in and accounts to the final grade along with the graded homework sets. Projects from last year were quantum machine learning, quantum optimization, quantum simulation, quantum monte carlo simulations, post-quantum cryptography, quantum key distributions and how to leverage quantum projects in a social-business perspective.

Time and schedule
A student will invest probably:
  • 20 hours on all lectures
  • 30 hours on all non-graded exercises
  • 40 hours on graded homework sets
  • 40 hours on the project
From 29th of April until 24th of June: every Friday from 13:45-15:30 with the exception of 28th of May.

Lectures are both pre-recorded and are given live online. The recorded lectures can be found on Canvas on the day of the live lecture. The live lecture covers the same topics as the pre-recorded one, but more slowly and a bit more detailed. There is also room for interactive discussions during the live lecture. 

Depending on the appetite of the students and of the teacher, one or two lectures might be given on location, or perhaps the presentations and demonstrations of the projects.
Assumed previous knowledge
Basic Python programming skills
Familiarity with Numpy
Using Jupyter Notebooks
Desired: Linear Algebra (if not present, an elective lecture is provided)
Participating study
Master Computer Science
Required materials
Course materials are provided on Canvas. These are slides, papers, and Jupyter notebooks (with tutorials). Also, project descriptions and assignments (graded and non-graded) are put on Canvas.
Recommended materials
Instructional modes
Presence dutyYes



Presence dutyYes

Self study with assistance

Self study without assistance


Kies de Nederlandse taal