First course project for Stanford CS193p