17-617: Programming Quantum Computers

Tuesdays and Thursdays (5:00pm to 6:20pm @ 3SC 265)
Daniel Justice

Want to learn quantum computing without taking a physics course?

17-617 Programming Quantum Computers is a hands-on introduction to quantum computing for students with a programming background. This is not a survey course: you will program quantum computers.

Prerequisites: Python, Jupyter Notebooks, and basic linear algebra. No prior quantum mechanics is required.

During this mini, we will build and run quantum circuits while working through topics including quantum teleportation, BB84, quantum arithmetic, Grover’s search algorithm, the Quantum Fourier Transform, Shor’s algorithm, and quantum phase estimation.

Along the way, we will look at both the ideas behind these algorithms and what happens when we try to run them on today’s quantum simulators and hardware.

Not sure if the course is for you? Come to the first class and try it.

Canvas
Zoom
Piazza: TBD
O’Reilly Quantum Simulator

Location

Class room is at 3SC 265. The class is in person, and I encourage you to come to class. Students may also join remotely using the Zoom link above.

Course Goals

Students will learn to build, reason about, and run universal gate quantum programs using contemporary tools. By the end of the mini, students will be comfortable implementing several foundational quantum algorithms on simulators and current quantum hardware, and evaluating the gap between textbook algorithms and real machines.

Materials

Course materials, assignments, and announcements will be posted here and/or on Canvas.

Main Book:

Extra Reading:

Grading

90% Homeworks/Quizzes, 10% Participation.

Quizzes

Each week a quiz will be given. The worst one will not be counted.

Prerequisites

Python, Jupyter Notebooks, Linear Algebra

Students will not need an understanding of quantum mechanics.

Note: The syllabus is subject to occasional change. This is especially the case in the latter half of the semester once your professors have become comfortable with the group’s overall skill level. Adequate notice will be given.

Basic course structure

Due to this being a mini, we will do our best to skirt into a new topic each and every day.

Schedule

Day 1: Introduction
Day 2: Qubits
Day 3: Multiple Qubits
Day 4: Quantum Teleportation
Day 5: BB84
Day 6: Quantum Arithmetic and Logic
Day 7: Universal Gates
Day 8: Amplitude Amplification
Day 9: Quantum Search
Day 10: QFT: Quantum Fourier Transform
Day 11: Shor’s Factoring Algorithm
Day 12: Guest Lecture
Day 13: Quantum Phase Estimation