Home   Teaching  PHY605  Announcement/Update  AcademicCalendar

PHY 605 Quantum Programming

(Spring 2026) Days/Time: MW 09:30-10:50AM; Location: (changed to) ESS 177
3 credits, Letter graded (A, A-, B+, etc.)
This course will meet twice a week for 80 minutes per meeting.
Instructor:  Tzu-Chieh Wei  <tzu-chieh.wei[at]stonybrook[dot]edu> and Nathanan Tantivasadakarn <nathanan.tantivasadakarn[at]stonybrook[dot]edu>
Office hours: by appointment
TA:  (The Department did not assign a TA to this course)

Course description :
The field of quantum information and computation has evolved to a stage where there are quantum devices that can be programmed and various tasks and algorithms can be tested on these devices. This course introduces various quantum programming frameworks. It aims to provide a more practical approach of learning quantum computing by programming, via softwares developed using Python. Important basic quantum algorithms will be reviewed and learned by programming them and simulating their action. Moreover, an emphasis will be paid to the so-called Variational Quantum Eigensolver that has already been used on many problems, from molecular energies and optimization to financial applications and quantum machine learning. Some illustration of quantum programming will be done on IBM's transmon-type cloud quantum computers. Beyond the circuit-based quantum computers, programming quantum annealers will provide an alternative approach to solve a wide family of optimization problems.

Prerequisite: PHY 568 Quantum Information Science (or other related courses, such as CSE 550 Quantum Computing and Applications) or permission by the instructor

This course is part of the curriculum in our Master's Program in Quantum Information Science and Technology (also here); see alo other courses PHY631 Quantum Information Physical Systems and Materials offered concurrently this semester.

Last year's PHY605 website is located here.

For undergraduates: This course may be taken by upper-level undergraduates, who still need to complete the prerequsite. It needs the permission and the signature of the instructor in order to register for this course; permission form can be downloaded here.

Course objectives/Student learning outcomes:
Students who have completed this course
 • will be able to explain quantum computation of the standard circuit approach and analyze how basic quantum algorithms work
 • will be able to write Python codes to program these quantum algorithms and design ones based on existing algorithms
 • will be able to apply various quantum algorithms for applications, such as optimization problems and scientific problems

Textbooks and resources:
There is no required textbook. But there are recommended textbooks :
Quantum Computation and Quantum Information, M. Nielsen and I. Chuang (Cambridge University Press)
Learn Quantum Computation using Qiskit (free digital textbook) [update: which is not longer maintained by IBM, now at Github]
IBM Quantum Learning (website with various resources)
IBM Quantum Documentation
PennyLane
QuTiP
Further bibliographic resources will be provided as the course progresses.

Python programming: there are many courses, books, tutorials, videos, code examples; see the list in BeginnersGuide/Programmers - Python Wiki. Only basic understanding and programming experience of Python is needed in the beginning. We learn by reading and modifying other people's codes. It is also useful to know how to use iPython/Jupyter notebooks. If you really need a book, I recommend a very compact book "Python (2nd Edition): Learn Python in One Day and Learn It Well," by Jamie Chan, available on Amazon at a very reasonable price (e.g. Kindle version is $3.99). There is also a companion workbook: "Python Workbook: Learn Python in one day and Learn It Well." (Kindle version is $1.99.)
Another recommended free on-lne book is Python Programming and Numerical Methods - A Guide for Engineers and Scientists
Codes from the book: Scientific Python by J Robert Johansson
Tutorials at: Python Tutorial
Learn QM with QuTiP: a paper

Assessment and Grading: Grades: (tentative) Course grades on a 100 point scale are: A (93-100); A- (90-92); B+ (87-89); B (83-86); B- (80-82); C+ (77-79); C (73-76); C- (70-72); F (69 or lower)

Homework 50% (need to submit the solutions in Brightspace), In-class presentation or midterm exam 20%, Final project 30%
The homework grading is based on the level of correctness and clarity of logical steps demonstrated in students’ solutions or whether the codes can be run successfully. Final project grading is based on the content, key concepts, organization, coding, analysis of results, and documentation.

Topics to be covered and tentative syllabus
(This is a tentative syllabus. Exam dates and homework due dates may change. The choice of topics may not exactly follow this tentative syllabus.)

Updated: a collection of 24 recorded videos from Sprng 2025 are available on YouTube

Tentative Syllabus (subject to change)

(week 1)  Overview of this course and review of linear algebra, basics of quantum mechanics, flash review of Python and the use of Jupyter Notebook, installation of Qiskit. Deutsch algorithm and IBM Quantum Composer, example Qiskit code  

(week 2)  More quantum gates and circuit model of quantum computation; Qiskit tutorial on gates and circuits. Bernstein-Vazirani and Simon's algorithms (and their implementation) quantum teleportation, quantum algorithms including Deutsch, Deutsch-Josza, Simons, Vazirani-Berstein. IBM Quantum Composer.
(week 3) Grover's quantum search algorithm and its programming and The variational quantum eigensolver (VQE) and its programming; qiskit_algorithm package and Session in Qiskit
(week 4) Operator class in Qiskit and transpilation (pass manager and predefined stages)
(week 5) Primitives: Sampler and Estimator; example codes
(week 6) Further tutorials from IBM Q Learning; classical control flows in Qiskit (if_test, switch, while_loop, for_loop); dynamic circuits
(week 7) Quantum Error Correction and Mitigations; Topological Codes

(week 8) Introduction to PennyLane: basics and fundamentals
(week 9) 
More on PennyLane

(week 10) Students present Lab codes of QGSS2025; 
(week 11) Students present Lab codes of QGSS2025;
(week 12)  More applications of VQE (qiskit_algorithm); more from qiskit-machine-learning & from qiskit-nature;

(week 13) Introduction to QuTiP; More on QuTip
(week 14) Student Presentation


There was a big jump of IBM's Qiskit from version 0.46 to version 1.x in 2024. The current version as of mid Dec 2025 is v2.2 Many earlier codes (including last year's) need to be modified to suit Qiskit v2.2. Still basic features such as circuits and gates remain largely stable. There has also been advocates from IBM on the "utility era", where they encourage running circuits and tasks that involve a large number of qubits, e.g., over 100, and they retired all small machines. Existing devices all have num_qubits > 100. W plan to cover Qiskit, PennyLane, as well as QuTiP.


Students will need to install Python and Qiskit on their own laptops (unfortuantely, IBM retired their web-based Quantum Lab in May 2024). We will go over installation and students should bring their laptops to class and we will have time in class to play with Jupyter notebooks.

[update/actual progress]

(week 1) [1/26 (Snow day, class cancelled),1/28]

(week 2) [2/2, 2/4]

(week 3) [2/9, 2/11]

(week 4) [2/16, 2/18]

(week 5) [2/23, 2/25]

(week 6) [3/2, 3/4]

(week 7) [3/9, 3/11]

(week spring recess) [3/16-3/22] Spring Recess: No classes 

(week 8) [3/23, 3/25]

(week 9) [3/30, 4/1]

(week 10) [4/6, 4/8]

(week 11) [4/13, 4/15]

(week 12) [4/20, 4/22]

(week 13) [4/27, 4/29]

(week 14) [5/4, 5/6]

(Final project: TBA)


Academic Integrity Statement
Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Faculty is required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty please refer to the academic judiciary website at http://www.stonybrook.edu/commcms/academic_integrity/index.html

Critical Incident Management
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.