CS407 Assignment 1