CSE331 Autumn 2011
Software Design and Implementation


Working at Home

Working at home (or in coffee shops, etc.) is convenient except that your computer is unlikely to have the software you need for CSE331 installed and properly configured as it is in the CSE labs. Installing and configuring all the software on your own machine is often a complicated and tedious task, largely because of the many variations in versions, environments, etc. We strongly suggest using the CSE lab machines (such as attu), and we will provide support if you have problems with your account. . If you wish to set up your own machine to permit you to do your CSE 331 work directly, this document sketches you how to do so. However, the CSE331 staff will not provide support (beyond these instructions) for setting up the CSE331 tools on your own machine; if you have trouble, you are on your own. (Some souls might want to explore the CSE-provided instructional home VM, which nearly replicates the attu environment.)


Get the Java Development Kit (JDK)

You want to download J2SE v6.0 JDK [TODO: LINK] from their web site. This is somewhat tricky because there are a lot of things on the download page with nearly the same name.

Go to http://java.sun.com/javase/downloads/index.jsp [TODO: LINK] and make sure that you follow the link labeled Download JDK.


Setup the JAVA_HOME Environment Variable

Create an environment variable called JAVA_HOME that points to the directory in which you installed the JDK. To get javadoc to work correctly, you also need to add the bin directory of JAVA_HOME to your PATH environment variable.

Windows. To set environment variables on Windows, select System from Control Panel, go to the Advanced tab and hit the Environment Variables button. Add a new variable to the System variables called JAVA_HOME. Its value will be the location of the SDK (which is most likely C:\Program Files\Java\jdk1.6.0_18). Then append %JAVA_HOME%\bin to your PATH environment variable under System variables. This will put the executables associated with the JDK in your path. On Windows, PATH elements are separated by semicolons, so you may have to add a semicolon to the end of your PATH variable before appending %JAVA_HOME%\bin.

Linux. To set environment variables in bash, add the following lines to your .bashrc file:

export JAVA_HOME wherever you installed the JDK
export PATH=$PATH:$JAVA_HOME/bin


Get Eclipse

In CSE331, we will use version 3.6 (Helios) of Eclipse.

Eclipse does not come with an installer, which confuses many people. Instead, download it, unzip it into a directory, and then run the executable in that directory to start Eclipse. There are some small bugs in Ant within Eclipse that manifest themselves if it is installed in a directory with spaces in its name, so instead of installing it into a directory such as

C:\eclipse

(avoiding directories such as "Documents and Settings" and "Program Files".)

Don't forget to configure your JDK.


Install Subversion (svn)

You don't need to do this until we have an assignment requiring svn.

Follow the official installation instructions here to install the Subclipse SVN Eclipse plugin. [Note: We may need to correct this link.]


Logging into attu with SSH

Linux. Click on Applications -> System Tools -> Terminal to start a command prompt (also, a terminal or a console). Run the following command, using your Linux CSENetID password:

ssh YourCSENetID@attu.cs.washington.edu

Windows. From a CSE instructional machine, double-click on the SSH attu shortcut on the Desktop. If the shortcut is not on your Desktop, go to: All Programs » UNIX Connectivity » SSH » SSH attu in the start menu. From home, install an SSH client such as PuTTY. Connect to attu.cs.washington.edu.

In either case, your username is your CSENetID, and your password is the same one you use to login to the Linux machines in the Allen Center software labs.

The first time you connect to attu from a given machine, you will receive a warning like this:

The authenticity of host 'attu.cs.washington.edu (128.208.1.139)' can't be established.

Along with the warning, the SSH client will display the RSA key fingerprint of the remote host so that you can verify the host's identity (verifying helps to prevent man-in-the-middle attacks). In our case, it is safe to say 'yes' to continue connecting. When you connect, SSH will cache the host key in order to automatically verify the remote host's identity in the future.

A good article about SSH host keys can be found at http://www.symantec.com/connect/articles/ssh-host-key-protection.