CZ1003 Assignment 2