The Projects:

Project Assigned Due
Project 0: The Story Game Tues, Sept 10 Tues, Sept 17
Project 1: Square Lists Tues, Sept 17 Tues, Oct 1
Project 2: Lazy Binary Search Trees Tues, Oct 8 Tues, Oct 22
Project 3: Quartile Heaps Tues, Oct 22 Tues, Nov 5
Project 4: Perfect Hashing Tues, Nov 12 Tues, Nov 26
Project 5: Concurrent Heaps Tues, Dec 3 Tues, Dec 10

Project Development

As long as your projects compile and run on the GL servers (linux1 or linux2) you are free to use whatever development tools you want. However, we recommend that you use the Eclipse Integrated Development Environment (IDE), which is widely used in industry. Eclipse is designed to assist you when writing Java applications. Eclipse is available on the PCs located in the OIT labs. If you prefer to work on your own PC, the ‘Eclipse IDE for Java Developers” may be downloaded free of charge from The current version of Eclipse is called Juno. Note that Eclipse requires that you have installed the Java Runtime Environment (JRE) or Java Development Kit (JDK) on your PC. The current version of Java is Java 7 and can be downloaded from Oracle.

Program Compilation

The TAs will use either linux1 or linux2 to compile and test your program. Therefore, ALL PROJECTS must compile and execute on linux1 and linux2. In theory, the Java slogan of “write once, run anywhere” will apply, but where project grades are involved the more appropriate slogan is “better safe than sorry”.

Note that the GL Linux servers are running the latest release of Java 7. If you develop your projects on your own PC, be sure that you are using at least Java 5 — Java 6 or Java 7 are recommended.

Using Ant

Ant is a tool for compiling large Java-based projects. The scripts that compile and execute your projects will use Ant, so you must be sure that your code can be compiled using Ant as well. The version of Ant in /usr/bin will be used by the scripts.

When you turn in your projects, you must include a file named build.xml. (Here is a sample build file to get you started: build.xml.) This file tells Ant how to, among other things, compile your code. This file MUST be customized for each project. You should check that build.xml works correctly by running the following commands in the root directory of your project tree:

ant compile

To remove class files and backup files (those ending in ~), use this command line:

ant clean

To execute your program, use this command line:

ant run
If your program uses command line arguments, use the -Dargs switch with the command line arguments in quotes separated by whitespace. For example
ant -Dargs="arg1 arg2 arg3" run

To create javadoc for your project, use this command line:

ant doc

A directory named doc will be created in the directory containing build.xml, and you can browse your javadoc by opening index.html in the doc directory.

Standards and Style

All projects should adhere to the Java coding standards found in the course coding standards document unless otherwise directed. Each project will be evaluated on these guidelines. Failure to follow these criteria will result in a lower project score.

Project Submission and Policies

Projects will be submitted for grading using the shared directories on GL. (See Project Submission.) All projects will be submitted as .java files. Java requires that each class be found in its own .java file.

Do familiarize yourself with these course policies: