A course project for Java Programming Language (2014 Spring).