Universtiy of Waterloo Course Notes