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! )
Some notebooks are based on ProjectQ and need the next Python packages installed:
- numpy
- matplotlib
- CIL
- scipy
Under the directory qiskit, some of the notebooks are now available on Qiskit.
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 ProjectQ 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.--NOT WORKING
- 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.
- (NEW)Find_Edge. An example of using Quantum Paralelism to calculate the edges of one image
- 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.
- (NEW)Phase_estimation-Hamiltonian. An example of a phase estimation algorithm for an Hermitian Matrix to show how the eigenvalues are calcualted in parallel. Usefull to understand HHL algorithm later.
- 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.
List of Qiskit notebooks
- (NEW)Dense Coding. A first example of Dense Coding algorithm programmed on qiskit (in Collaboration with J. Mas, from University of Santiago de Compostela).
- (NEW)Deutsch-Jozsa algorithm. An example of Deutsch-Jozsa algorithm.
- (NEW)Eigenvalues Hermitian Matrix. An example of a phase estimation algorithm for an Hermitian Matrix to show how the eigenvalues are calcualted in parallel. Usefull to understand HHL algorithm later.
- (NEW)Find_Edge. An example of using Quantum Paralelism to calculate the edges of one image
- (NEW)Phase Estimation. An example of phase estimation algorithm.
- (NEW)Quantum Fourier Transform. A simple example about what QFT.