Setting up your computing environment

Rather than deal with 40 different software configurations, I will assume we are all using the CS system, and I will use the CS system remotely in class. Here is what you need to be ready.


An account on the CS system

If you do not already have an account on the CS system, then run, don't walk, to accounts.cs.wm.edu where you can submit a request for one.

Do not wait to apply for an account! These requests require human review, so it may take several days for the account to appear.

Once you have your CS account you can access the system using the machines in the undergraduate labs in ISC 4, rooms ????


If you wish to work remotely…

You can also log into the CS system via the network. Being able to work remotely is a really useful skill to have, so I encourage you to learn it. Here is what you will need.


A terminal application

You will need a terminal window to access the CS system.

On Macs the terminal program resides at /Applications => Utilities => Terminal. The default shell on Macs is zsh, which is endlessly customizable.

For Windows I recommend Microsoft Terminal. Installing Terminal will also install SSH for you.


SSH

You will need SSH (Secure Shell) to access the CS system remotely. SSH uses public key cryptography to authenticate connections. Both Apple and Microsoft ship their products with the OpenSSH implementation of SSH.

If you have a Mac, you should have SSH already installed. It should at the command line in the terminal utility discussed above.

If you installed Microsoft Terminal, you should already be able to access SSH through it. Otherwise, here are installation instructions.

You should create public and private SSH keys to streamline remote access. SSH keys allow you to login and copy files remotely without needing to enter your password.

Notes on SSH keys

These instructions assume you have set up and are running ssh-agent, have modified configuration files as needed, &c.

Logging in from off-campus

The simplest way to access on-campus machines from off-campus is to use the College's virtual private network. Instructions on installing and using the VPN may be found here .

Alternatively, you can acessing on-campus machines using the College's bastion host. Here are instructions for using the bastion.


An editor

You will need to be able to edit remote files. One approach is to use an editor such as Emacs or vim running on the remote host that you can use in a terminal window.

If you choose to edit from a machine not on the CS network, you will need an editor capable of remote editing, such as

If you choose VS Code, it may appear slow to start up the first time you use it for remote editing. This is because it is building a several hundred MB directory ~/.vscode-server on the remote system. VS Code should be more sprightly on subsequent connections.

Also, watch out for malicious VS Code extensions .

Or maybe use Emacs or Vim?

"Real Programmers" by xkcd

Working on your local computer

Mac

Macs are actually Unix systems under the hood. You can install much of the *nix software development through Apple's Xcode. You may wish to install only the Xcode command line tools .

You can also have a more Linux-like experience if you install utilities via Homebrew.

Windows

Your best bet here is to install the Windows Subsystem for Linux (WSL). WSL is a full-fledged Linux that runs alongside the Windows OS. As such you can install the *nix software ecosystem.