CMPSC 431W Semester Project