programming assignment 3 for CS 455