Project 1 of CSC540 at North Carolina State University.  Fall 2013.