Source: http://www.iro.umontreal.ca/~mckenzie/Enseignement/planIFT2125.a2015.pdf