Source: http://web.cse.ohio-state.edu/software/2231/web-sw2/syllabus.pdf