nl en

Quantum Algorithms


Admission requirements

Assumed prior knowledge

To be able to follow the course, the students should have basic knowledge of mathematics and computer science. More specifically the course will strongly rely on:

  • working knowledge of basic linear algebra, including matrix manipulations;

  • working with complex numbers;

  • basics of algorithms and computational complexity theory.

Understanding of basics of computability theory (or mathematical theories of computation, e.g. Turing machines, μ-recursive functions, lambda calculus) is beneficial. No previous knowledge in physics, quantum mechanics or quantum information is required.


Quantum computing is a relatively novel model of computation which has served as a hot buzz word in science writing for years. It is often singled out as one of the upcoming technologies which will revolutionize our world. Despite all the popularity and research efforts, the power quantum computing is still widely misunderstood and misrepresented. Moreover, very often it is claimed that for a genuine understanding of quantum computing one requires expertise in quantum physics; in this course you will see that this is not the case.
In this course you will learn:

  • what quantum computing is,

  • how quantum algorithms work, and

  • what quantum computers are actually useful for.

Throughout the course you will also have the possibility to write programs for a quantum computer and, conditions permitting, run your programs on a real quantum computer. The emphasis of the course is on quantum algorithm theory. This course will include formal analyses of quantum algorithms, proofs of correctness and separations, and is recommended for students with affinities towards mathematics and theoretical aspects of computer science.

Course objectives

The objective of this course is to provide the students with a clear overview of the basics of theoretical quantum computing , quantum algorithms and insights into the key applications of quantum computers.
At the end of the course, the successful student will:

  • know what quantum computing is, and how to simulate (small) quantum computations;

  • know the basic results regarding the computational power of quantum computers (complexity theory);

  • know examples of basic quantum algorithms and applications;

  • have a basic overview of modern trends in quantum computing, specifically progress in applications for near-term (shallow) quantum computers.

  • know how to apply basic quantum algorithms.

Interested students will also have hands-on experience in programming of basic quantum programs.


The most recent timetable can be found at the Computer Science (MSc) student website.

Mode of instruction

  • Lectures

  • Tutorials

Course load

Total hours of study: 168 hrs. (= 6 EC)
Lectures: 26:00 hrs.
Tutorials: 26:00 hrs.
Projects and assignments: 116:00 hrs.

Assessment method

Students will be evaluated by means of take-home assignments (50%) and mini projects (50%).

The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.

Reading list

  • Nielsen and Chuang, Quantum computation and quantum information.

  • Links to extensive on-line literature to be provided during lectures.


  • You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses.


Lecturer: dr. V. Dunjko
Course announcements and additional materials will be provided on this website.