Cmput301 assignment 1