CMSC 437 Introduction to Quantum Software Laboratory, Spring 2026

Course Description

This course is an introductory programming and software laboratory for quantum computing. Students will learn about current programming tools and the characteristics of quantum hardware. They will develop quantum application prototypes and tools to characterize and mitigate hardware limitations, and study state-of-the-art mitigation techniques for real-world devices.

Tentative topics include: quantum programming languages; quantum circuit construction; implementation of quantum protocols and algorithms; techniques to characterize quantum hardware; and selected advanced topics as time permits.

Learning Objectives

  • Become familiar with existing programming tools for quantum computers.

  • Translate theoretical quantum algorithms into practical implementations and observe the resulting efficiency overheads.

  • Understand the characteristics and limitations of quantum hardware and use tools to investigate and mitigate them.

  • Develop nontrivial quantum applications that run on realistic, imperfect hardware.

  • Learn low-level pulse/control programming and compare features across hardware platforms.

General Information

  • Lectures: M/W 3:30–4:20 pm (50 minutes each). Labs: F 3:00–4:40 pm (100 minutes)

  • Instructors: Prof. Xiaodi Wu (xiaodiwu@umd.edu); Prof. Runzhou Tao (rztao@umd.edu)

  • Teaching Assistants: Ethan Hickman (ethanh@umd.edu)

  • Syllabus: Syllabus

  • Evaluation: Class participation (1%), labs (77%), real-machine tests (10%), and project (12%). Details on the policy page.

Course Evaluation and Expectations

Students are expected to attend lectures and lab sessions, complete all labs, and submit source code for each assignment. The course includes a project on a topic of your choice. Students must follow the University’s Code of Academic Integrity as administered by the UMD Student Honor Council.

Examples of Quantum Programming Languages

  • Qiskit: An open-source framework by IBM (primarily Python) for creating, simulating, and running quantum circuits on IBM processors and simulators. Reference: Qiskit Official Site.

  • Cirq: A Python library by Google for writing, simulating, and running quantum circuits, emphasizing near-term algorithms and hardware integration. Reference: Cirq Official Site.

  • AWS Braket: A managed quantum computing service by Amazon that provides access to hardware from multiple providers and an SDK for building, simulating, and running quantum algorithms. Reference: AWS Braket Official Site.

  • PennyLane: A cross-platform Python library for quantum machine learning and differentiable quantum computing; it integrates with various simulators and hardware for hybrid quantum-classical computations. Reference: PennyLane Official Site.

We also maintain a collection of additional resources at the mini-library page.

Discussion and Course Tools

  • We use Piazza as the discussion forum. Piazza is FERPA-compliant and protects student privacy; it is not searchable by public search engines. Please register on Piazza using a valid email address.

  • We use ELMS and Gradescope for lab submissions, project uploads, and grade distribution.

  • This website is the central source for course information, syllabus, handouts, and references — please check it frequently.

Web Accessibility