CS 269Q: 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. 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.

Prerequisites and programming languages

A physics and quantum mechanics background is not required, but students will need an understanding of linear algebra at the level of the intro courses (e.g. Math 51). Moreover, students will need some familiarity with computer programming. CS 107 (Computer Organization & Systems) or equivalent is strongly recommended.

Textbook and Readings

Quantum Computation and Quantum Information: 10th Anniversary Edition by Michael A. Nielsen and Isaac L. Chuang
Publisher: Cambridge University Press
Referred to as Mike & Ike

Course readings will also include several other freely available online sources listed in the syllabus page.


  • There will be a weekly section on Fridays.
  • Attendance at the sections is optional, but highly recommended.

Homework Assignments

  • There will be one written problem set, three programming projects and one final programming project.
  • You may collaborate when solving the written assignments, however when writing up the solutions you must do so on your own. If you collaborate, please list the names of your collaborators on your assignment.
  • Programming projects may be done in pairs or alone. The final project may be done alone or in groups of two or three.
  • Halfway through the course a 1 page design document for your choice of final project will be due.
  • You must submit all homeworks and projects electronically. Submission instructions will be provided.
  • Extensions:  Each student has a total of 72 extension hours throughout the quarter. This automatic extension can be spent in units of 24 hours on any of the assignments and projects. Please mark the submission time for any late assignment.
  • Homework and projects will be due at 11:59pm on the specified deadline.


There will not be a final or midterm exam. Your final programming project will be your final evaluation.


Final placement in the class will be determined by the following formula:

0.15 H + 0.6 P + 0.25 FP

  • H is your score on the first written homework assignment.
  • P is the weighted average grade on the three programming projects.
  • FP is the score on your final project.