CS252, Spring 2024

Resources

Reference Material

Tutoring

Software Downloads

Don’t install all of this at the start of the semester – some of it is optional.
Wait until the Lecture Notes tell you that you need a package. In many cases, you will be told that you can choose one of various alternatives, in which case the Lecture Notes will describe the advantages and disadvantages of each.

All software listed here is free unless explicitly stated otherwise. In several cases, I have noted that the software is “portable”, meaning that you can install it onto a flash drive and then run it on other Windows machines without first installing it on those machines. (This is useful if you are going to be working on computers at your job, at a library, at a friend’s house, etc).

VPN

Most CS Department services are hidden behind a VPN. You will need to install and run the VPN software on your PC to access those services.

Connections to the VPN will time out periodically. Typically you will need to re-connect once or twice a day or after rebooting your PC.

  • You do this by clicking on the Global Protect icon in the notification area of the Windows task bar or the macOS menu bar.
  • Two-factor authentication is used on the VPN logins. If you try to log in to the VPN and it seems to hang for a long time, check your cell phone for a notice that it is awaiting a confirmation of your identity.

If you get a message indicating that a CS machine cannot be found on the Internet, check your VPN status before giving up or sending a complaint!

Secure Shell (ssh) clients

SFTP:

Command-Line (text-based) clients

GUI-Based clients

Both WinSCP and Filezilla are solid programs and the choice between them is largely a matter of personal preference.

IDEs

An Integrated Development Environment (IDE) merges an editor with a user interface providing access to compilers & debuggers and other software development tools. In this course, most of the IDEs you will be introduced to will be installed on the Department’s Linux servers and you will X server software (below) to interact with them.

The exception to that general rule is VSCode, which can be used for remote development. For this, VSCode needs to be installed on your own PC.

X servers

For access from off-campus, I strongly recommend that you use an accelerated X package (X2Go). For programs with complicated interfaces, it can run 10 times faster than ordinary X servers.

Important: The server/client terminology can be a bit confusing.

  • You are installing an X server on your PC.
    • If your PC is running Linux, you already have this.
  • If you use X2Go, you install an X2Go client on your PC.
  • If your PC runs Windows, the X2Go client includes an X server.
  • If your PC runs macOS (OS/X), you need to install an X server separately, then the X2Go client will work that.
  • If your PC runs Linux, you already have an X server. The X2Go client will work that.

Accelerated X

X2Go is an enhanced version of the X protocol and is the recommended way to make X connections to our servers.

Ordinary X

When working from off-campus, I do not recommend an ordinary, unaccelerated X connection.

When you are on-campus, particularly if you are seated in a CS Dept lab or using ODU Wifi, a straight X client can be a reasonable choice.

XQuartz

Unix Emulation

Linux

If you want to go even farther than just emulating Unix, consider getting a full Linux operating system. Linux is actually far less demanding on your CPU and memory than an equivalent Windows installation, so it’s a great way to rejuvenate that old PC that isn’t quite up to Windows 8 (or even Windows 7).

If you’re curious and just want to give it a try, there are a number of Live CD packages that put an entire Linux installation on a single CD, allowing you to boot Linux from the CD without touching your Windows installation on the hard drive.