CS3213 Homework 2