Quantum Computer Programming
Spring 2019
Quantum computing is an emerging computational paradigm with vast potential. This course is an introduction to modern quantum programming for students who want to work with quantum computing technologies and learn about new paradigms of computation. A physics / quantum mechanics background is not required. The course covers the model of quantum computation, quantum programming languages, hybrid quantum/classical programming, quantum algorithms, quantum error correction, and applications. The course is hands on using open source Python packages for working with publicly available quantum processors.
Prerequisites: linear algebra and programming at the undergraduate level.
Administrative
Course syllabus (and readings)
Course overview (grading, textbooks, coursework, exams)
CS269Q Lectures:  Tuesday, Thursday: 10:3011:50, McCullough 115 
Sections:  Friday 2:30  3:20pm at 320109. 
CA mailing list:  cs269q@cs 
Homeworks and Projects
Homework #1:
[pdf]
Due: Monday, Apr. 15, 2019, via Gradescope (code: 9NY6KX)


Project #1: Benchmarking a quantum computer.
Assignment:
[instructions]
[starter code]
Due: Monday, Apr. 29, 2019, via Gradescope


Project #2: Hybrid quantum algorithms.
Assignment:
[instructions]
[starter code]
Due: Wednesday, May 8, 2019, via Gradescope. Note Problems 1 & 2 are to be submitted separately from Problem 3.


Final Project Design: 1 page design document for your final project.
Assignment:
[instructions]
Due: Friday, May 17, 2019


Project #3: Quantum machine learning and quantum compilation.
Assignment:
[instructions]
[starter code]
Due: Monday, May 20, 2019


Project #4: Final projects
Assignment:
[instructions]
Due: Thursday, June 6, 2019

Final Project Showcase
Some examples of student final projects from the 2019 course: qdb: Inserted Tomography for Breakpoint Debugging in pyQuil by Ellis Hoag, Michael Zhu, and Sean Decker
 Shor's Algorithm in PyQuil by Alec Brickner
 The Effect of Noise on Quantum Secret Sharing by Emma Dauterman and Zoe Bohn
 Solving the Traveling Salesman Problem Using QAOA by Daniel Henry and Sofia Josefina Lago Dudas
 Comparing and Implementing Dierent Quantum Secret Sharing Schemes by Yousef Hindy and PieterJan Stas
 Finding Ground State Energy of Molecules with Variational Quantum Eigensolver by Mingyu Kang and Jaebum Lee
 Quantum Secret Sharing in Practice by Keanu Spies
 Rational Quantum Secret Sharing by Manan Rai, Jerry Zhilin Jiang, and Andrew Tierno
 Quantum Secret Sharing by Franklin Jia, Marc Robert Wong, and Ruchir Rastogi
 A QAOA solution to the traveling salesman problem using pyQuil by Matthew Radzihovsky, Joey Murphy, Mason Swofford
 Implementation and analysis of stabilizer codes in pyQuil by Shubham Chandak, Jay Mardia and Meltem Tolunay
 Quantum Secret Sharing by Katharine Woo and Harry Sha
 Quantum Secret Sharing: A Discussion and Implementation by Benjamin Fearon, Alex Rickman, and Frank Zheng
 Grover's algorithm for 3SAT by Nathan Dalal and Hubert Teo
 Implementation of Shor's algorithm in pyQuil by William Burton