CSP586 Assignment 4