Assignment 1 for CMPUT 301 winter 2014