CMPUT 301 assigment