Projects

Project Descriptions

Project Development

Projects in this course will be developed using the Eclipse Integrated Development Environment (IDE). 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, use the “Eclipse IDE for Java Developers” (NOT “Eclipse IDE for Java EE Developers”). The Eclipse IDE requires the installation of a Java Runtime Environment (JRE) or Java Development Kit (JDK) in order to run. Both Eclipse and the JavaSE JDK can be downloaded and installed free of charge — see the Downloads section of the Resources page for download links.

We will spend some time in one of the labs gettting acquainted with Eclipse, but you would do well to spend time using Eclipse on your own.

Project Policies

Each project description will designate the project as OPEN or CLOSED as defined below.

OPEN Projects

  1. You should try as much as possible to complete the project by yourself.
  2. You may get assistance from anyone — TAs, instructors, fellow students, relatives, friends, etc.
  3. You must document all outside help you get as part of your file header comment.

This DOES NOT mean

  1. That you may copy anyone else's code,
  2. Have someone else write your code for you, or
  3. Submit someone else's code as your own.

CLOSED Projects

  1. You should try as much as possible to complete the project by yourself.
  2. You may get assistance only from the TAs, CS Help Center staff, or instructors.
  3. You must document all outside help you get as part of your file header comment.

You MAY NOT

  1. Copy anyone else's code,
  2. Have someone else write your code for you,
  3. Submit someone else's code as your own,
  4. Look at someone else's code, or
  5. Have someone else's code in your possession at any time.

Program Compilation

The UMBC UNIX system runs several different versions of UNIX. The systems known as linuxl.gl.umbc.edu, linux2.gl.umbc.edu, & linux3.gl.umbc.edu all run a version of UNIX called Linux. The systems known as solaris.gl.umbc.edu and irix.gl.umbc.edu run other versions of UNIX called Solaris and Irix.

The project graders will use one of linux1, linux2, or linux3 to compile and test your program. Therefore, ALL PROJECTS must compile and execute on linux1, linux2, or linux3.

If you have been developing your code on some other machine (most likely a personal laptop/desktop), you must first get your files onto the campus network file system. This will then make them directly accessible from almost any of the university's machines (the lab machines, the GL servers, etc.) You will also need some way to work on one of the GL servers. The easiest way is to go to one of the labs; however, we also tell you how to do this remotely, below.

The process is very different, depending on whether you are using a Unix-based machine (this includes Linux boxes & Macs), or a Windows system. We will discuss Macs and Linux first, since they already have the necessary applications built-in.

Connecting to UMBC from a Personal Mac or Linux Computer

On Mac and Linux boxes, first open up a terminal window (you can find it in the Utilities folder on a Mac, and you Linux hackers would be insulted if I told you how to do it).

To open up a virtual terminal session to the GL systems so that you can do things like manage your files and run Java there, just type:

ssh username@gl.umbc.edu

After entering your password when prompted, you will be logged into the GL system. You are now set to run submit or javac or anything else you want.

Transfering Files to UMBC from a Personal Mac or Linux Computer

To transfer files, you will use the scp program. You should un this from a fresh terminal window: you should NOT do this from a terminal window that is already ssh-ed into a GL machine.

Bring up a terminal window, cd into the local directory with the files you want to transfer, then type:

scp myFile1 myFile2 myFile3 … username@gl.umbc.edu:202files

This command will copy the files to a directory called 202files.

Connecting to UMBC from a Windows Computer

If you are using a Windows system, you will need to download a virtual terminal program like TeraTerm or PuTTY, as well as an SFTP/SCP client program (download links for these applications can be found in the Downloads section of the Resources page). Once they are installed, you can first launch TeraTerm/PuTTY and request a connection to gl.umbc.edu; this will give you a virtual terminal interface in which you can run programs on the GL machine, including submit and javac.

Transfering Files to UMBC from a Windows Computer

You can also install WinSCP, which will give you a drag-and-drop interface to transfer files to any remote system including UMBC. You can simply connect to gl.umbc.edu using your UMBC username/password.

Compiling on the Linux Servers

All students must use the java compiler and JVM found in the directory /usr/local/bin.

To check which compiler and JVM you are using, run the command: which javac

If the result is /usr/local/bin/javac then you're good to go. If the result is /usr/bin/javac then follow the steps below.

  1. Open your .cshrc file (found in your home directory — note the leading dot) with a text editor such as Xemacs or pico.
  2. Add the following lines at the bottom of your file:
    alias javac /usr/local/bin/javac
    alias java /usr/local/bin/java
  3. Save your .cshrc file and exit the editor.
  4. Run the command source .cshrc (again, note the leading dot).
  5. Run the command which javac. The result should be javac: aliased to /usr/local/bin/javac
  6. Run the command which java. The result should be java: aliased to /usr/local/bin/java

If you develop your projects on your own computer, be sure that you are using javac version 1.6.x, also known as Java 6 or JavaSE 6. You can verify the version you are using by running the java -version and javac -version commands.

NOTE, WARNING, ALERT: If the project is text-based, you can compile and execute your program from your PC at home or from any OIT lab. HOWEVER… if the project is GUI-based, you MUST run your program from a Linux machine in an OIT lab in order to test it on GL. You WILL NOT be able to execute a GUI-based project from your PC at home.

Project Submission

Project Grading