Cmput 301 assignment 1