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:
- Linux is the foundation on which Android and Chrome OS are built.
- Many of the most popular websites & apps in the world run on top of Linux.
- macOS, and its children iOS & iPadOS, are all descended from UNIX.
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:
- If your computer is running macOS or another desktop UNIX or Linux, you probably already have a command line program called
ssh
installed. Simply open a Terminal, and type “ssh YOUR_CS_ACCOUNT@SOME_CS_SERVER
“ - If your computer is running Windows, you have two choices:
- Download the free PuTTY
- Install the Windows Subsystem for Linux (WSL), which includes a copy of the same
ssh
command line program as macOS and Linux, then follow the above instructions to usessh
- If you’re running ChromeOS, then you can use Google’s Secure Shell App, available for download from the Chrome Web Store.
- If you’re on a tablet or smartphone, search the Apple or Google Play store for “ssh client”; while we don’t endorse or recommend any specific ssh apps, some of us have used or heard good things about:
- If you don’t have a computer, or can’t install an ssh client on the computer you have, come to the Vertica Lounge (Volen 104) and use your CS Account to log into one of our public macOS workstations. Then follow the above instructions to open Terminal use the
ssh
command line program.
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:
- If your professor or TA gave you instructions for an assignment, follow those.
- If you just want to experiment with CS machines & your CS account, feel free!
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.