# Quantum Computing Fundamentals

### Description

As the field of quantum computing continues to evolve and advance, there is a growing need for professionals with the knowledge and skills to tackle the complex challenges and opportunities it presents.

This comprehensive course is designed to provide participants with a thorough understanding of the fundamental principles and practical applications of quantum computing. Through a blend of theoretical and hands-on learning, participants will gain a deep appreciation for the potential of this cutting-edge technology and be equipped with the skills needed to make a real impact in the field.

Whether you are a researcher, engineer, or simply interested in this exciting and rapidly evolving field, this course offers a unique and valuable opportunity to gain the knowledge and skills needed to succeed in the quantum era.

### Participants attending this course will

- Gain the skills to accurately calculate the probabilities of quantum states
- Obtain the knowledge and tools necessary to effectively illustrate quantum bits
- Have the ability to write quantum circuits using the Qiskit language
- Become proficient in utilizing the Quantum Computer of IBM

### Outline

- Introduction to quantum computing
- Postulates of Quantum Mechanics
- Bloch sphere
- IBM Quantum
- Entanglement
- Quantum Gates
- No Cloning Theorem
- Quantum algorithms
- Programming in Qiskit

### Course information

#### Preparedness

Matrix multiplication, vectors, complex numbers

#### Exercises

Hands-on

#### Delivery methods

Onsite / Virtual classroom

### Related courses

### Table of contents

- Day 1
- Day 2
- Day 3

- Introduction to Quantum Computing
- Introduction of the course
- Motivations behind quantum computing
- What is it?
- Quantum history - Classical physics is not enough!
- Quantum Manifesto (EU)
- Quantum Flagship (EU)
- 2019: Quantum supremacy using a programmable superconducting processor
- IBM Quantum Experience
- Motivation
- But there are limitations

- Description of a Quantum Phenomenon
- Mach-Zehnder interferometer
- Double-slit experiment
- Elitzur–Vaidman bomb tester experiment
- Elitzur–Vaidman bomb tester experiment - ingredients
- Elitzur–Vaidman bomb tester experiment - outcomes
- Elitzur–Vaidman bomb tester experiment – lessons learned

- The Postulates of Quantum Mechanics
- Four postulates
- Quantum bits (qubits)
- 1st postulate in details - qubit
- Quantum bit (qubit)
- Quantum bit with real probability amplitudes
- Important qubits
- Quantum bit with complex probability amplitudes
- Qubits in practice
- Bloch Sphere Simulator

- Quantum registers (quregisters)
- 4th postulate in details - quantum register
- What is a tensor product?
- Matrix Multiplication
- Matrix Exponentiation
- How to calculate square of matrix A
- Transponent of a matrix
- Tensor product in practice - example
- Quantum registers

- Quantum gates
- 2nd postulate in details
- Unitary transformation
- Sidenote: mathematical background
- Sidenote: mathematical beckground - inner and outer product
- How does a quantum gate look like?

- Extracting information from quantum registers (Measurements)
- 3rd postulate in details
- 3rd postulate using ket notations
- Projective measurement
- How to calculate measurement operators?
- How to write the measurement operators?
- Completeness relation
- Projective measurement - practical notation
- 3rd postulate in case of projective measurement
- How measurement works?
- Measurement using computational basis states
- Repeated projective measurement
- What is randomness?
- How to create projective measurement?

- IBM Quantum
- Entanglement
- Decomposition exercise
- Entangled states
- Difference between product and entangled states
- How does it work?
- What does entanglement mean?
- Famous entanglement pairs
- How to produce entangled pairs?
- Changing the bases of an entangled pair

- Implementation examples for qubits
- Physical qubits
- Di Vincenzo criteria
- Superconducting qubits
- Pros and cons

- Trapped ions
- Pros and cons

- Photonic qubits
- Pros and cons

- Elements of classical digital technology
- Logical gates and circuits
- Classical digital system
- Inverter (NOT gate)
- Classical gates
- Boolean circuit
- Circuits

- Synchronous Sequential circuits
- Flip-flop
- Why is the clock important?
- Synchronous logic
- Classical register vs quantum register
- CPU, GPU, QPU

- Logical gates and circuits

- Quantum Gates
- One Qubit Gates
- Identity gate
- Pauli X gate, or bit-flip gate
- Pauli Z gate, or phase-flip gate
- Pauli Y gate
- Pauli gates and the Bloch sphere
- Phase rotator gate
- Hadamard gate

- Two (or more) Qubits Gates
- n-qubit Hadamard gate
- Controlled NOT gate (CNOT gate)
- Controlled Z gate (CZ gate)
- SWAP gate
- Toffoli gate ("controlled-controlled-not" gate)
- Toffoli gate and Hadamard gate
- Fredkin gate
- CNOT gate
- Bell state generator
- Generalized quantum entangler
- Remarks
- How to create entangled qubits physically? - An example

- One Qubit Gates
- Quantum Circuit Model
- Quantum Circuit: Overview
- The beam-splitter experiment
- The experiment with gates

- How to prepare a superposition?
- Preparing an arbitrary quantum state

- No cloning theorem
- No Cloning Theorem - Proof

- Quantum Algorithms
- Receipt of quantum algorithm design
- Initialization
- Quantum parallelism
- Amplitude amplification
- Measurement
- Classical post-processing
- Algorithms with polynomial speedup
- Polynomial time vs exponential time
- Polynomials with multiple exponents
- Properties of quantum algorithms with polynomial speedup

- Grover's algorithm
- Problem formulation
- Receipt of quantum algorithm design
- Quantum algorithm/circuit
- Amplitude amplification
- Measurement
- Geometrical interpretation
- Error probability
- Post-processing
- Computational complexity

- Quantum Algorithms
- Algorithms with superpolynomial speedup
- Polynomial time vs exponential time

- The Deutsch-Jozsa Algorithms
- Problem formulation
- Quantum algorithm/circuit
- Initialization
- Quantum parallelism
- Amplitude amplification
- Measurement
- Post-processing
- Computational complexity

- Quantum Fourier Transform
- Classical Fourier Transform
- Quantum Fourier Transform

- Phase estimation
- Problem formulation
- Quantum algorithm/circuit
- Initialization
- Quantum parallelism
- Amplitude amplification
- Measurement
- Post-processing
- Computational complexity
- Non-idealistic case

- Deutsch-Jozsa algorithm and phase estimation
- Connection between H and QFT

- Quantum Counting
- Problem formulation
- Application of phase estimation

- Shor's Algorithms
- Problem formulation
- Problem formulation – Symmetric key systems
- Problem formulation – Asymmetric key systems
- Problem formulation – the RSA algorithm
- Shor algorithm – breaking RSA classically
- Shor algorithm – order finding
- Shor algorithm – breaking RSA by quantum computing

- Quantum optimization
- Quantum optimization – existence testing
- Quantum optimization – relation testing
- Quantum optimization

- Algorithms with superpolynomial speedup
- Programming Quantum Computers
- The main approaches
- Qiskit
- Quiskit–Deutsch–Jozsa algorithm
- Quiskit - interactive quantum demos

- Q#
- Q# – Grover algorithm

- IBM Quantum
- Xanadu Quantum Computer

- Summary and outlook
- Post quantum cryptography
- Quantum communications