The Computer Science Department has not historically assumed student access to
personal computing resources. Nonetheless, students largely have their own
Windows or MacOS machines and often want to work on those machines remotely.
This page collects some of the most useful software resources for remote work in CS.
Java Development
Windows Java and Eclipse Installation
Download and install the "Java SE 8u241" for your platform here. Note where this Java Development Kit (JDK) is installed on your system.
After the JDK installation is complete, download and install the Eclipse IDE.
Change your Eclipse default version of Java to conform with Java SE 8u241 as
recommended above by following these instructions, but with a goal to have Eclipse use the _older_ Java 8.
Under Windows → Preferences → Click arrow to the left of "Java" to expand it.
Click "Installed JREs". If your Java 1.8 (a.k.a. Java 8) JRE is not listed, click the "Add..." button, "Next", "Directory..." to the right of "JRE home:", and navigate to where your Java 1.8 jre directory is (e.g. C:\Program Files\Java\jre1.8.0_241) and once that folder is selected, click the "Select Folder" button.
Check the box the the left of your Java 1.8 JRE. Click the "Apply" button.
To the left under "Java", click "Build Path" → Click "Projects" radio button, Apply button, OK button. (This avoids separate "bin" and "src" subfolders in your Java projects.)
To the left under "Java", Click "Compiler" and select "1.8" in the dropdown menu to the right of "Compiler compliance level:".
Click the "Apply and Close" button.
Create a new project via File → New → Java Project. Enter a lowercase simple project name (e.g. "cs111"). Under "JRE", select "Use an execution environment JRE:" and select "JavaSE-1.8" from the right dropdown menu.
When creating new Java class files, right-click your project, click "New" → "Class". Remember that the "Package" field should be blank
in the New Class wizard so as to use the default package in Java.
If you're using JavaFX GUI programming elements (e.g. CS 112), you may need to do more to configure your project setup.
If you are getting an "Access Restriction" error in your personal installation of Eclipse, one can solve it as follows with Java SE 8u241:
Right-click on the project and bring up the project properties dialog.
Select "Build Path" in the left pane, and select the "Libraries" tab.
You will see a "JRE System Library" entry.
Expand that entry, and you will see an "Access Rules" subentry:
Select the "Access Rules" entry and click "Edit". Click "Add".
Under "Resolution", choose "Accessible", and under "Rule Pattern", enter javafx/**:
Click OK to exit all the dialogs.
This setting will allow access to all the classes in any packages beginning javafx., but will preserve the rule on the ext folder for all other classes. (source)
(While not strictly necessary, this tool will help pseudorandomly distribute people across machines.
Having everyone on cs1 wouldn't be good and humans are bad random number generators.)
Windows SSH
Install MobaXterm Home Edition (Free), Installer Edition. NOTE: Any downloaded .zip file needs to be extracted (right click → Extract all...) to a folder, within which you will find the installer executable. You cannot install from a folder view of the .zip file itself.
Start a new remote session with the upper-left "Session" button or press Ctrl+Shift+N.
If it's not already selected, press the "SSH" selection in the upper left.
Under "Basic SSH settings", enter the host and port information recommended above,
check the box for "Specify username", enter your Gettysburg username.
Click the OK button. This will open an ssh connection and start your login
process within a BASH shell where you will enter your password. This is very
much like working in your terminal window in the lab. From here you can enter
commands like "eclipse &", "cd eclipse-workspace", etc.
(Side note: Modern Windows computers come with a Windows Linux Subsystem, so one can install an Ubuntu app to get a terminal window (article, installation video 1, installation video 2) and enter an ssh command like Linux/Mac users. However, MobaXterm is easier to install, offers a local terminal window plus easy one-click ssh and drag-and-drop secure file transfer (SFTP below), so we recommend that instead.)
Once you've set up a Windows SSH as described above, you'll also have a secure file
transfer protocol (SFTP) session set up automatically with a graphical user
interface (GUI) to the left of your SSH terminal window.
You can simply drag and drop files to and from the file navigator in that window.
Gettysburg College currently recommends the use of Zoom
for instructor, student, and class online interaction. Your professor can supply
the meeting code for your access. Give yourself time to download and install
the Zoom Client for Meetings software from the site before your first meeting.
Should you have an extreme scenario where you're having difficult installing
and running this software, there are software tools for sharing your screen
and allowing remote control of your computer. Only use this software with a
trusted individual. The permission you grant is temporary and under your
control.
TeamViewer - multiplatform support for remote control of your computer
Remote Text Editing
Sometimes, it's handy to directly edit a text file through a terminal window.
Clif Presser has a CS Workstation Editing page for that.
Like Clif, I prefer emacs as an editor. If you'd like to take the time to learn emacs, the Swiss army
knife of Unix editors here are some resources:
Run emacs with the command "emacs <filename> &". If you wish
to work remotely with emacs in a terminal window only (no additional
windows), use the command "emacs -nw <filename>". The <filename>
is optional.
Within emacs, you can take a tutorial with Control-h t (C-h
t), or reference a manual with C-h m.
If you're looking for a very simple text editor that should be available on most Unix/Linux installations, consider nano. Here is a cheatsheet, and a video demonstration of remote programming with nano.
Chromebook Help
Here are some links that should be helpful for working remotely with a Chromebook: