CISP 430 Assignment 4