csi4107_assignment2