Please see the CS350 web page
http://www.student.cs.uwaterloo.ca/~cs350