First Version of the Programming Assignment 2 Solution