CS3213 homework 1