Programming Assignment 2, Final, Nov. 20, 2014