code for programming assignment 2