CS2106 Assignment 1