Project completed for 'Elements of Software Construction,' taken in Spring 2013 at MIT.