Course Description
Embark on an exciting journey into the cutting-edge world of quantum computing with this advanced course offered by UChicagoX. "Quantum Computer Systems Design" is a comprehensive exploration of the fundamental principles and practical applications of quantum computing systems. This course is designed to equip you with the knowledge and skills necessary to understand, program, and optimize quantum computers using IBM's Qiskit software tools.
What Students Will Learn
- Master the basic design principles of modern quantum computer systems
- Gain hands-on experience with IBM Qiskit software tools
- Develop proficiency in writing and executing quantum programs using Python
- Understand quantum computing fundamentals, including the Bloch Sphere and Feynman Path Sum
- Explore medium-size algorithms for NISQ (near-term intermediate scale quantum) computers
- Learn about quantum processor microarchitecture, including classical and quantum control
- Dive into quantum program compilation and qubit memory management
- Apply classical software techniques to improve quantum hardware reliability and performance
- Develop a holistic understanding of quantum system design and the interplay between software and hardware
Prerequisites
- Completion of "Introduction to Quantum Computing for Everyone" (Parts 1 and 2)
- Familiarity with Module I (Intro to Quantum Computation and Programming)
- Understanding of Module II (Principles of Quantum Architecture)
- Basic knowledge of linear algebra and computer science concepts
- Proficiency in Python programming
Course Content
- Introduction to systems research in quantum computing
- Fundamental rules in quantum computing, Bloch Sphere, Feynman Path Sum
- Sequential and parallel execution of quantum gates
- EPR pair, no-cloning theorem, quantum teleportation
- Medium-size algorithms for NISQ computers
- Quantum processor microarchitecture: classical and quantum control
- Quantum program compilation and qubit memory management
- Full-stack quantum software design principles
- Quantum system inefficiencies and optimization techniques
- Application of classical software techniques to quantum systems
Who This Course Is For
This advanced course is ideal for computer science professionals, researchers, and students who are passionate about pushing the boundaries of computing. It's perfect for those who have a strong foundation in quantum computing basics and want to delve deeper into the practical aspects of quantum system design and optimization.
Real-World Applications
The skills acquired in this course are highly valuable in the rapidly growing field of quantum computing. Graduates will be well-positioned to:
- Contribute to cutting-edge quantum computing research and development
- Design and optimize quantum algorithms for various applications
- Work on quantum software development projects
- Pursue careers in quantum technology companies or research institutions
- Apply quantum computing concepts to solve complex problems in fields such as cryptography, drug discovery, and financial modeling
Syllabus
Textbooks:
- (Required) Quantum Computer Systems (QCS). Ding and Chong.
- (Open) Learn Quantum Computation using Qiskit. IBM Qiskit.
- (Optional) Quantum Computation and Quantum Information (QCQI). Nielsen and Chuang.
Schedule:
Module 1 (Intro to Quantum Computation and Programming)
- Lec 00 - Quantum Computing Systems – Current State-of-Play
- Lec 01 - From bits to qubits
- Lec 02 - QASM and logic gate decomposition
- Lec 03 - Basic quantum programs
Module 2 (Principles of Quantum Architecture)
- Lec 04 - Program compilation and synthesis
- Lec 05 - Program compilation and synthesis II
- Lec 06 - Gate scheduling and parallelism
- Lec 07 - Qubit mapping and memory management
Module 3 (Working with Noisy Systems)
- Lec 08 - NISQ algorithms
- Lec 19 - Noisy quantum systems
- Lec 10 - Noise-aware quantum compiling