Comp307 Assignment 1