CSCI 306 Assignment