Programming assignment 1