OverviewLast Updated: 2/11/2017
This year’s Java Competition Problem Statement will be taking a generalist approach. This means that a range of skills will be touched upon, without going into too much detail of any one in particular. A list of recommended tools and skills are available below to help prepare for what may be on the problem statement.
Your team may be made up of 1-2 students.
This contest will take place on Saturday, April 8, 2017 from 9:00 AM – 1:00 PM
Java, JUnit, Knowledge on how to package a .JAR and/or .WAR file using command line or IDE, Refactoring, Object Oriented Principles
- MVC (Model View Controller)
- Exception Handling
- UML (Unified Modeling Language)
- Documenting Code – ex.JavaDoc
- Unit Testing – JUnit 4
- Knowledge on how to package a .JAR and/or .WAR file using command line or IDE
- Object Oriented Principles (ex. encapsulation, inheritance, polymorphism)
- Ability to understand XML
Platform to be used by judges – The items listed below are what will be available on the judge’s machines for grading. The most current version of the Spring Tool Suite is the recommended development environment because it has Maven support built-in. Please install it on your machines prior to the competition. This will best assure that Judges are able to execute the solutions. Alternative IDE’s, servers, and tools may be used but at the teams’ risk of not being executable by judges.
Spring Tool Suite
- Download STS most recent version: http://spring.io/tools/sts/all
- Note: Both 64-bit versions and 32-bit versions are acceptable for use.
- None of the problems in the real project will rely on using the Spring framework.
JDK 8 (JDK must be downloaded prior to downloading and running Spring Tool Suite)
- Download JDK 1.8 here: http://www.oracle.com/technetwork/java/javase/downloads/index.html
- Note: If you downloaded 64-bit STS above, also download the 64-bit JDK
In previous years, we have asked participants to include their own dependencies, consuming precious competition time. The team feels that this has detracted from the coding competition and created unnecessary barriers to entry. This year, we are taking a new approach to dependency management using Apache Maven (http://maven.apache.org). Instead of needing to download dependencies and spending time setting up your development environment, Maven should now take care of dependencies for you. In order to ensure a smooth competition, we strongly encourage you to download a test project. If this project works, you will have no issues importing the real project the day of the competition. Download and try out our sample project today: Sample Project.zip.
***Helpful hint: Be sure you are connected to the internet prior to loading the website. The pom.xml file will requires internet access to pull from the resources from the maven repo. ***
Helpful documents to assist you in importing, exporting, and running JUnits with Spring Tool Suite:
If you cannot get Maven to work, download JUnit (https://github.com/junit-team/junit/wiki/Download-and-Install) and import it manually into your environment.
Teams will be given the problem statement at the beginning of the contest time. Time will be allowed to read the problem statement and ask any questions in a common session. Once the question & answer time has closed, no further questions will be answered. At the end of the contest period, each team will be asked to submit their solution for judging.
The use of references such as Java API’s, are allowed for the competition.
Teams are expected to have the necessary Tools and Jars preloaded on their machines prior to the competition.
- Completion of Required Functionality 100%
- Bonus – To be Described on Problem Statement 10%
In the event of a tie, Code Documentation and the use of Object Oriented Approach will distinguish differences.
Tips & Miscellaneous info
Presentation Layer Development – The problem statement may require some User Interface interaction between the application and the user. The ability to develop the UI as a Graphical User Interface using JSP’s/Servlets or Swing is preferred. But teams without GUI development experience will still be able to complete the Problem Statement if they have experience with user interaction through the Command Line.
Data Layer Development
- JDBC (SQL)
- Java File I/O
Frameworks – The following Frameworks will be allowed for the contest to simplify development. The Jars required to develop and execute these frameworks will not be provided by the contest. Teams must bring their own copies of the jars. The version of the Jars used must comply with the Platform Specifications that are supported for Grading.
- JSF (Java Server Faces)
- Spring MVC