Source: https://www.site.uottawa.ca/~turcotte/teaching/iti-1521/syllabus/index.pdf