Source: https://www.sjsu.edu/cs/docs/pdfs/spring-2021-syllabi/Caires_CS100W_01_02_04_05_Syllabus_S21.pdf