NUS CP3101B Assignment 1