Course syllabus

Course Syllabus: Quantum Computing for Computer Scientists

Instructors: Stefano Markidis, Pratibha Hegde, Ivy Peng

Course Overview
This course introduces computer scientists to the exciting field of quantum computing. The course focuses on providing a practical understanding of quantum physics, technology, and programming. Students will learn to program quantum computers using Python and explore the fundamental concepts of quantum computing. The course covers quantum gates, circuits, programming primitives, and quantum applications and culminates in a final project.

Course Intended Learning Outcomes

After passing the course, we will be able to:

  • Describe complex numbers and complex vector spaces for quantum computing
  • Describe superposition of states, non-locality effects, and probabilistic laws
  • Compare the advantages and disadvantages of classical data processing with quantum computing
  • Generalize the concept of bit, classical gate, and registers to qubit, quantum gates, and quantum registers
  • List, formulate, and describe key algorithms in quantum computing
  • Describe hardware that can realize quantum calculations in order to design quantum algorithms and programs that can run on current and next-generation quantum computers.

Course Outline

image.png

Module I: Introduction to Quantum Computing
- History and evolution of quantum computing
- Basic mathematical foundations: Complex numbers, Hermitian and Unitary matrices
- Quantum bit (qubit) and its properties
- Quantum computing technologies and programming languages

Module II: Quantum Gates & Circuits
- Introduction to quantum gates and their operations
- Single-qubit and multi-qubit gates
- Building quantum circuits
- Bell Circuit, Phase-Kick, Swap test, and more

Module III: Quantum Programming Primitives
- Quantum arithmetic and conditional logic
- Amplitude amplification and Quantum Fourier Transform
- Quantum error correction and error mitigation techniques
- Quantum simulations and algorithms

Module IV: Quantum Applications
- Quantum search algorithms
- Shor’s algorithm for integer factorization
- Quantum encoding and error correction
- Quantum simulations and applications in various domains

Module V: Final Project
- Choose from project topics
- Implement and present a quantum computing project
- Collaborative group projects
- Final report and in-class presentation

Course Activities
- Online pre-recorded lectures (Compulsory)
- In-person “overview” lectures (Recommended)
- Quizzes (Individual, 100% score required)
- Programming Assignments (Group work, Grade: Pass/Fail)
- Final project (Group work, Graded: A-F)

image.png

Programming Language
- Python
- Local on your machine or using Google Colab notebooks

Course Textbooks
- Yanofsky, Noson S., and Mirco A. Mannucci. Quantum Computing for Computer Scientists.
- J.D. Hidary. Quantum Computing: An Applied Approach.
- Kaiser, Sarah C., and Christopher Granade. Learn Quantum Computing with Python and Q#: A Hands-On Approach.
- Johnston, Eric R., Nic Harrigan, and Mercedes Gimeno-Segovia. Programming Quantum Computers.

Please note that this syllabus provides a general overview of the course content and structure. Details may vary based on the actual course implementation.