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