Programming Quantum Computers – CSC 5930/9010

This course will provide a broad foundation in quantum computing through hands-on exercises and programming. Students will use what they already know about classical computers (i.e., the ones we’re all using today) as a bridge to understanding how quantum computers work, from hardware to code. The strange and surprising world of qubits (quantum bits) will be explored from a computer science perspective, along with the core concepts of superposition, entanglement, and interference. Quantum algorithms that rely on these core concepts will be analyzed and implemented using industry-grade programming languages from IBM (Qiskit) and Microsoft (Q#). We’ll see what NISQ (Noisy Intermediate-Scale Quantum) computers can do in the near-term, and we’ll look ahead to the exciting applications of fault-tolerant quantum computers in the future, while separating hype from real progress. The goal of this practical approach is to prepare students to join the quantum workforce and to pursue new opportunities in this rapidly evolving field.

Prerequisites for 5930-001: (CSC 1052 or (ECE 2620 and ECE 2621)) and CSC 1300 and MAT 2400
Prerequisites for 9010-001: Programming experience in one language