Introduction to Quantum Computer Programming

(with Cirq)

Course codes: AMATH900, AMATH495, QIC895

Enrollment:

To enroll in AMATH495 or AMATH900 obtain a permission number from Nadia Linares (nlinares@uwaterloo.ca).

To enroll in QIC895, obtain a permission number from Kaitlyn McDonell (kmcdonell@uwaterloo.ca).

Term: Winter 2020

Instructors: Achim Kempf (akempf@uwaterloo.ca) and Nadine Stritzelberger (nstritze@uwaterloo.ca)

Time: Mondays and Wednesdays, 4:00 - 5:30 pm

Room: MC 6460

First lecture: Monday, January 6th 2020, 4:00 - 5:30 pm in MC 6460. Please bring your laptop along!

Prerequisites: A first course in quantum mechanics. Alternatively, knowledge of these parts of the text (Quantum Computing: An Applied Approach) by Jack D. Hidary: Chapter 1 + Toolkit.

Course outline:


Given the accelerating progress in quantum computing hardware and the recent achievement of quantum supremacy, this special topics graduate reading course is an introduction to the programming of quantum computers. We will follow the recent text "Quantum Computing: An Applied Approach" by Jack D. Hidary (Springer, Oct. 2019) and we will therefore mostly work with Python-based Cirq. The intended audience are graduate and advanced undergraduate students in related fields such as applied mathematics, physics and computer science. Students are expected to give presentations during the term. Some general advice on communication skills and talk presentations can be found in this online booklet.

Contents:


  • Basics of quantum computing
  • Complexity theory
  • Quantum hardware
  • Development libraries for quantum computer programming (esp. Cirq)
  • Applications to quantum protocols and algorithms for near-term and for future error-corrected machines, from quantum machine learning and quantum chemistry to Shor’s algorithm.