Introduction to Brandeis Computer Science Systems

Welcome to the Brandeis Computer Science Department! The programming assignments for most introductory-level Brandeis COSI courses are designed so that they can be done on student’s personal computers using freely downloadable software.

As you advance through your degree, however, you are likely to take one or more courses with assignments that are either easier to complete on department computers, or which you are required to complete on department computers.

This page contains information to explain the software we run on those computers, and how to log into them.

What are Linux & UNIX?

Every computer runs something called an “Operating System.” (“OS” for short.) You’re probably familiar with desktop/laptop OSes such as Microsoft Windows or Apple’s macOS, mobile OSes such as Android or iOS/iPadOS, or special-purpose OSes such as Chrome OS.

Around the world, Computer Science teaching & research tends to happen on an OS called “GNU/Linux,” or just “Linux” for short. This is because 100% of the code for GNU/Linux is freely available to read & change without cost, and because Linux is the intellectual descendant of an OS called “UNIX” which was long popular with Computer Scientists because of its underlying design (among other reasons).

In fact, you’ve probably used Linux or UNIX without realizing it:

The Brandeis Computer Science Department runs a version of GNU/Linux called “Red Hat Enterprise Linux.” We also run macOS, which is actually a registered version of UNIX.

What is a CS Account?

In order to log into Computer Science Department computers, you will need what we call a “Computer Science Account” or “CS Account.”

This is different from the Brandeis UNET account you may already have, with which you register for classes, log into your @brandeis.edu email account, and use other non-Computer Science resources at Brandeis.

To sign up for a Computer Science Account, visit the CS Account signup page.

What is a Command Line Interface (CLI)?

If you’ve used a computer before, including whatever device you’re using to read this web page, you’re probably familiar with something called a “Graphical User Interface” (GUI). A GUI lets you control a computer by clicking on icons & buttons, usually with a mouse/trackpad or via a touchscreen. It will usually also display windows, menus, etc… Microsoft Windows and Apple macOS are two examples of OSes with GUIs.

In contrast, most course work you’ll do on Computer Science machines will be via something called a “Command Line Interface” (CLI). A CLI lets you control a computer by typing commands into a text prompt. The success, failure, or results of these commands will then be presented as words printed to the same screen. eg:

Check to see which account you’re logged in as:

$ whoami 
guru
$

What time is it?:

$ date
Mon Jan 13 09:15:00 EST 2020
$

And so on…

While it’s possible to interact with a CLI directly on the computer you’re using - and GUI OSes like Windows and macOS even provide apps which let you access a CLI (the Windows CMD prompt, the macOS Terminal) - one of the advantages of CLI interfaces is that they make it easy to interact with remote computers.

This way, students, faculty, and teaching assistants can all do their work on the same machine or set of machines, no matter where they’re working from, to make sure they’re all using the same tools. (No need to worry “This works on my laptop, but when I hand it in, will it work on the TA/professor’s computer?”) Furthermore, assignments that require more resources than are found in the average student laptop can be run on remote servers with powerful multi-core CPUs, large/fast storage devices, high amounts of RAM, GPUs for Machine Learning, or other specialty equipment.

Note: A CLI can be a little harder to learn than a GUI but, once you’ve familiarized yourself with it, a CLI can give you a lot more power than a GUI. With CLIs it’s often easier to do complicated tasks faster, automate repetitive tasks to reduce the number of steps you need to do by hand, or run the same task on multiple computers at the same time.

What is ssh?

Computer Science machines are available for remote login & CLI use via a protocol called Secure SHell (ssh).

To access our Linux servers, you’ll need to use a program called an “ssh client,” of which there are several choices:

Now what?

Once you have CS Account, and have confirmed that you can log into one of our public workstations via ssh, where you go next depends on what you want to do:

Please remember to always abide by the Usage Policy. Violations of the Usage Policy, including attempts to view other people’s files, gain elevated system privileges (such as “Super User” or “root”) or to break into computers at Brandeis or elsewhere on the internet may result in loss of account privileges, university disciplinary action, or (if a crime has been committed) referral to law enforcement.

Happy hacking*!

*: We mean “hacking” in the original sense: Experimenting with technology to learn & have fun. Please don’t try to break into computers that don’t belong to you.