Source: https://www.di.ens.fr/~fouque/enseignement/projet.pdf