CMPUT301 Assignment 1