University of Alberta CMPUT297 Assignment 3