Resources


Recognizing that not everyone has immediate access to a Unix system to do work and submit assignments, the following resources are available for your academic use:

Hosts

The Internet Teaching Laboratory
A computer lab (frequently just called the ITL) in Science Center 334. All of the machines usually run Linux by default, but can be booted into Windows if need be; if you'd like to switch, just reboot the machine, and follow the instructions on the menu. The ITL is formally maintained by the volunteers in COSI, so if you're experiencing any problems (or just need help), feel free to cross the divider into Science Center 336 and ask anyone there. The ITL is open for as long as someone is in SC336, which is often very late into the night. Note that the ITL machines, while accessible from the public Internet, serve ssh on non-standard ports (to prevent automated scanning attacks), and it is generally discouraged to ssh into them to work on them (but you may ask if you'd like).
polaris.clarkson.edu
A Linux host maintained by OIT. Polaris always uses the same password as your student email, moodle login, PeopleSoft login, etc.; changing your password will have an almost immediate effect on your Polaris login. Polaris is also accessible from the Internet (again, ignoring firewalls).

Peers

These are people and organizations that you may ask for some help with the course:

Jeanna Matthews
The instructor of the course this semester; consult her office hours or send her an email (her Clarkson username is "jnm"). She does not directly coordinate the labs for the most part (the TAs do), but she is more than qualified to help with commands and/or syntax, and can usually find someone who can fix things or act as an authority.
Teaching Assistants
These are subjugate instructors of Jeanna, and usually also matriculated students. They will be directly overseeing the labs; feel free to ask them for help regarding them.
Clarkson Open Source Institute
The result of a large merge, COSI is a volunteer student organization found in Science Center 336 that is not affiliated with CUSA, but nonetheless recognized by the Computer Science department. Their members maintain a number of public services without pecuniary interest, including the ITL, Odin, and other non-course related services such as a software mirror, a backup (under username "newmanre") of the Internet Archive, the networking in both SC334 and SC336, and a number of graduate student projects. Just about anyone you meet in here will be more than willing to help you with an assignment or lab, or at least know someone that can.
Office of Information Technology
OIT is the IT department of the university. Their responsibilities are far more vast than anyone single class, so they tend to be somewhat busy; nonetheless, they have relatively impressive turn-around times for technical issues, on the order of a few hours to a day or two. They are the sole maintainers of Polaris, so you should contact them regarding issues with signing in (not regarding course material, and in some cases, Jeanna's permission may be required anyway, so you might as well just ask her). In general, they are also a fair resource for any technical problems or issues stemming from the use of most other computers on campus, and are frequently kind enough to also look into issues with or recommendations for personal computers, in my experience.

Windows Programs

Windows is the only popular operating system which does not have a solid heritage in Unix; it derives a number of its behaviors from DOS (itself from CP/M, which competed with Unix back in the day). Most importantly, most of the commands won't work in any of Windows' "command prompts", including PowerShell. Volunteer programmers have, nonetheless, developed some applications which will allow you to use the remote hosts anyway, essentially superseding the use of ssh and scp:

PuTTY — www.putty.org
A software client for ssh, with a GUI, for Windows. The GUI is rather imposing and shows many esoteric features (most all of which can also be used from the command line), but you generally only need to worry about entering a domain name or IP address and clicking "Connect", after which it will prompt you for a username and a password. It will then open a terminal emulator that will allow you to work on the remote host.
WinSCP - winscp.net
A software client superficially similar to scp, but with a GUI and far more flexibility at easily selecting files and directories, and keeps a connection open so as to avoid having to authenticate multiple times. (scp has long been known to be deficient in this endeavor; the program more correctly resembles sftp).

Online IDEs

These online services can help you develop and create code. Note, however, that I can't guarantee that any of the results which you produce on one are repeatable, nor would, say, a link to a paste count as a submission. Of course, if you save the file, transfer it to Odin, and confirm that it compiles there, you can fairly quickly turn it in from there.

CodeChef IDE — https://www.codechef.com/ide
A fairly quick and easy to use online IDE with syntax highlighting and a comprehensive template that will suffice for most of our assignments.

Using Polaris

Polaris is:

The latter is, significantly, why it it so important to know how to use Polaris.

For a more in-depth explanation, please consult ssh and man ssh. For the impatient:

  1. ssh username@polaris.clarkson.edu, where username should be replaced with your Clarkson username.
  2. If the host asks Are you sure you want to continue connecting?, type out yes in full and tap Enter.
  3. When it asks you for password, enter your Clarkson password. You will not see the characters you are typing, but you are typing them; this is a security feature.
If you have any problems whatsoever with the above, please contact Jeanna or the TAs.

To copy files to Polaris lab assignments folder (/afs/ad.clarkson.edu/class/cs141/students/username/labx), as will often happen if you work on a machine other than Polaris (such as your personal computer), you have a couple options:

The syntax for scp is not significantly different from ssh, and I recommend going to the command reference (or referring to the man pages for more information, but, again, for the impatient: specify a remote source or destination by appending a colon (:) and path to your username@polaris.clarkson.edu pair.

Example: uploading main.cpp for the Lab 7.
scp main.cpp username@polaris.clarkson.edu:/afs/ad.clarkson.edu/class/cs141/students/username/lab7/

Use the change directory (cd) command to navigate to that directory and verify that you copied it to the right place:
cd /afs/ad.clarkson.edu/class/cs141/students/username/lab7/
ls

You should see your file here.