Programming Assignment 3 for CS 445