Carnegie Mellon University · Mini-1 · Fall 2026

17-617: Programming Quantum Computers

Daniel Justice

MeetingsTuesdays and Thursdays · 5:00–6:20 PM Eastern
Location3SC 265 · In person; remote access available

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.

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 — Brian Goldsmith: Fault-Tolerant Quantum Computing and Resource Estimation
Day 13: Quantum Phase Estimation