Quantum Computing

This is the home page for Quantum Computing. Despite two course numbers, there is only one section, meeting TR 12:30-1:45PM in RMB 309. Undergraduate students should register for EE599-001. Graduate students should register for EE699-010. Here is the one-page poster overviewing the course.

Although many course materials will be posted here, the course Canvas site will be the primary place for course announcements. You are expected to use Canvas and materials linked here. The best way to schedule office meetings, physical or virtual, is via email with "QC" in the Subject line.

The course is designed as a hardware elective for CPE majors that is also very accessible to CS and EE majors. It covers programming of quantum systems and some fundamental quantum algorithms, but is taught from a computer engineering point of view: how hardware implementing operations on entangled superpostions is integrated into a usable computer system. The emphasis is on system design and operation, not the quantum phenomena themselves. Thus, the goal of the course is to provide students with a better understanding of what quantum computers can and cannot do, quantum gates and basic algorithms used, how quantum computing systems are architected as computational accelerators, and how quantum-inspired methods can be employed without using quantum phenomena.

The only prerequisites for this course are a basic understanding of digital logic, as conveyed by CPE282 or EE280, and familiarity with programming in some langauge (e.g., C/C++, Python, or Verilog). The particular programming environments used for simulations will be explained in the course. The course does not assume students have significant computer architecture background. For example, students who have earned engineering standing in CS, EE, or CPE are well qualified.

This is a new course in its first offering Spring 2026, so it is still under development. Content may even be adjusted somewhat during the Spring to better suit the particular mix of students in the class. The tentative course content is:

  1. Course overview and introduction. Moore's law. The relationship between parallel and quantum computing. What is a quantum computer? Why do we care? Quantum computers as attached accelerators.
  2. Review of classical digital logic gates. Introduction to reversible logic. Ancilla. Logic optimization with and without fanout.
  3. Quantum superposition, entanglement, and measurement. Notations and models including the Bloch sphere, unitary matrix formulations, and wave models. Probability amplitude. The quantum circuit model and quantum gates.
  4. Quantum circuits and algorithms, the use of interference. Quantum superiority and RCS (Random Circuit Sampling). Algorithms including Deutsch-Jozsa, Grover's search, Simon's problem, QFT (Quantum Fourier Transform), and Shor's factoring algorithm.
  5. Quantum annealing.
  6. NISQ (Noisy Intermediate Scale Quantum) computer implementations. Superconducting, trapped ion, photonics, spins, etc. Qubit implementations. Qubit layout and operation scheduling issues. Error correction.
  7. Quantum-inspired methods. Randomized and probabilistic algorithms. Alternative representations for entangled superpositions: PBP (Parallel Bit Pattern computing, developed here at UK).
  8. The architecture of a computer system with an attached quantum coprocessor. Quantum programming above the Qubit level.
  9. Where is quantum going? Cryptography, machine learning, networking and teleportation. Scaling.

The main goals are that students will be able to:

Grading will be based on several homeworks/projects (total 50%) plus in-person midterm exam (20%) and final (30%). The projects will be using simulation tools that will be explained in the lectures throughout the course; currently, the most likely tools to use would be Verilog and Python+Qiskit. Students taking the course for graduate credit (including all registered for EE699-010) will have somewhat larger projects than undergrads.


Course Staff

Professor Hank Dietz would normally be in the Davis Marksbury Building; see his home page for complete contact info. Regular office hour times are listed there. He has an "open-door" policy that whenever his door is open and he's not busy with someone else, he's available -- and yup, there really is a slow-update live camera in his office so you can check. The best method to contact him is to email hankd@engr.uky.edu using "QC" in the subject line for anything related to this course. If appropriate, individual Zoom meetings also can be scheduled via email.

About The Instructor

Professor Dietz is the James F. Hardymon Chair in Networking and the Director of Undergraduate Studies for Computer Engineering. He has been working and publishing in the quantum and quantum-inspired computing field since 2017. Relative to quantum computing, he likes to describe himself as "an A+ in the computing aspects and a C- in the physics" -- the opposite emphasis compared to most people in the field. Dietz has a long history in parallel supercomputing, and his research group built the world's first Linux PC cluster supercomputer in 1994. Unfortunately, that technology has led to the proliferation of huge supercomputers that consume embarrassing amounts of power. Thus, his interest in quantum computing is primarily driven by a desire to dramatically reduce power consumed per unit of computation. Dietz has built several compilers targeting quantum computers, as well as multiple quantum computation simulators for them to target, and has been developing a new quantum-inspired computing model called PBP (Parallel Bit Pattern) computing.


Quantum Computing