A four-week final project for course CS2110 Spring 2014 at UVa.