Notebooks and other stuff for a Quantum Course
This repository contains the materials of the course about Introduction to Quantum Programming that I teach under demand. Please, feel free to send me any comments or corrections so I can improve them. You can use them freely on your own courses (Please, try to cite it! )
These notebooks are based on ProjectQ and need the next Python packages installed:
- numpy
- matplotlib
- CIL
- scipy
It includes a set of Notebooks to learn some basics about Quantum Programming, with implementations of modern algorithms. Many of them are based on examples comming from ProjectQ and other sites or from publications. In each notebook, the references to the paper or to the original programs are included when needed.
Also, it includes a modification of the Quantum Simulator QUIRK to change the colors, so the main Quantum gates have the same colors that the IBM Q Experience Composer.
List of notebooks
- First ProjectQ program. This Notebook is based on the ProjectQ compiler tutorial. The exercise is an example of superdense coding.
- Executing QFT on IBM Q Experience from ProjectQ. A simple example about how to connect to IBM Quantum Experience from ProjectQ.
- Some basic algorithms using ProjectQ. A set of important operations or subroutines for Quantum Compuring and some technical details about ProjectQ.
- Deutsch-Jozsa algorithm. An example of Deutsch-Jozsa algorithm.
- Quantum Fourier Transform. A simple example about what QFT is and how to make it correctly in ProjectQ.
- Phase Estimation Algorithm. An example of phase estimation algorithm.
- Grover's algorithm. A simple example of Grover's algorithm
- Shor's algorithm. A simple example of Shor's algorithm.
- HHL algorithm. A simple example of HHL algorithm to solve a system of linear equations.
- HHL algorithm Cao. A simple example of HHL algorithm to solve a system of linear equations.
-
VQE algorithm. The most basic example of Variational Quantum Eigensolver for the
$H_2$ molecule. - QAOA algorithm for optimisation. Example of the QAOA algorithm using ProjectQ.
- Quantum Machine Learning Regression. Example of training a Quantum Machine Learning circuit to fit a parabola.