Working at Home

Contents:

The options for where to work

There are five main options for where to do your work. You can use multiple of these options! Doing so generally requires you to make multiple clones of your repository.

  1. You can do your work in the Allen Center labs. With this option, there is no software to install and you can proceed directly to learning how to use version control, IntelliJ, etc.
  2. You can do all your work by logging into attu (a Linux computer cluster) and using it remotely. Again, there is no software to install. This combines the convenience of your own computer with the department installation of Linux. You have access to the same account and files as when working in the Allen Center labs. Logging in to attu is not a good way to run a graphical application such as IntelliJ.
  3. You can remotely access a CSE Windows machine using Remote Desktop. This combines the convenience of your own computer with the department installation of Windows.
  4. You can use the department's home virtual machine on your own computer following the department's instructions. This puts a copy of the lab's Linux installation on your own computer, even if your computer does not otherwise have Linux. This combines the convenience of your own computer with the department installation of Linux.

    The Linux Home VM has almost the same software as CSE-managed computers. You will need to install IntelliJ IDEA yourself (the license is free for students).

  5. You can install tools on your own computer.
    • Java: Download Oracle's J2SE v11.0 JDK from the Java SE Downloads web site. Don't download the JRE (Java Runtime Environment), which lets you run Java programs, but does not provide the tools for Java development. Don't download JDK 8, 9, 10, or 12. Even if you have installed other (older or newer) versions of Java on your machine, you should install the latest Java 11 JDK for this quarter.

      You may have issues on Mac with the Java 11 JDK not being used even after having installed it. You can check by running java -version in your Terminal. To fix this, run export JAVA_HOME=$(/usr/libexec/java_home -v 1.11) and then check the version again. This is only a temporary fix for that particular instance of the command line. To fix it permanently, add the export statement to the bottom of your ~/.bashrc.

    • git: follow the standard instructions for installing it on your operating system. If you use Windows, be sure to install the git bash shell as well.
    • IntelliJ IDEA: As a student, you can get a free education account and can download either version of IntelliJ IDEA for free. You may need to customize IntelliJ.

    If you are having trouble (for example, you cannot figure out how to install programs on your computer), then we recommend you use one of the other options.

    Most, but not all, CSE 331 tools work on Windows. If you discover one that does not, please let the CSE 331 staff know so that we can fix it! While you are waiting for the fix, perform that step on a Unix (Linux or MacOS) machine such as attu.

    Disclaimer about using your own tools:

    Many students find working directly on their own computer most convenient. You may use whatever tools you like to develop your code. The only thing the staff cares about is that your code works on attu.

    The CSE 331 staff provides technical support only for using IntelliJ or the command line, on UW CSE machines. For other setups, we will try to help to the extent feasible. However, it can be difficult to predict and debug every installation/configuration problem, and we are not familiar with every operating system, text editor, or possible interaction between programs. We will prioritize helping students homework, grading assignments, etc. over debugging the configuration on your own machine.

    Most students have little trouble setting up their environment. If you spend 2 or more hours trying to debug a problem with your environment, we strongly suggest that you stop and use one of the other options for getting your work done.

Logging in to attu with SSH

attu is the name of an Instructional Workstation (IWS) Linux machine. You will occasionally need to log into this machine. How you log into attu depends on whether you are starting from a Unix machine or a Windows machine.

SSH on Unix (including Linux and MacOS)

  1. Obtain a command prompt (a.k.a. a terminal or console). You can do so by clicking on Applications -> System Tools -> Terminal.
  2. At the command prompt, run the following command:
      ssh YourCSENetID@attu.cs.washington.edu
    

    Use the same password you use to login to the Linux machines in the Allen Center software labs.

    Note for those who are new to the command line: When you try to type passwords in the command line, you may be alarmed that you can't see any text entered. To protect your password your typing simply isn't being shown. Just type your password as normal and press enter.

If you are using the Linux machines in an Allen Center software lab, you can alternatively use a shorter version of the command:

  ssh attu

This works because the username defaults to the username you are currently logged in with and the target domain defaults to the domain of the machine you are connecting from.

SSH on Windows

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.

Server Authentication Warning

The first time you connecting to attu from a given machine, you will receive a server authenticity 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 if you wish. 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.

File Transfer: SCP

If you only want to transfer files between your CSE account and your home machine, you can use scp ("secure copy"). For CSE 331, you should rarely, if ever, need to manually transfer files. All your code and other homework materials will be in a Git repository, allowing you to automatically and safely synchronize your work across machines. We provide information about scp as a reference for your general knowledge.

On a Unix (Linux or MacOS) machine, you can run scp at the command line. Run man scp for documentation on this command. If you prefer a graphical interface or if you are using Windows, you can install a file transfer program such as WinSCP. Most of the directions above for establishing a remote connection via ssh also apply to scp.