Programming Assignment 2 and 3