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 project from a list of algorithms
Assignment:
[instructions]
Due: Thursday, June 6, 2019
