CS303 Assignment