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).
odin.cslabs.clarkson.edu
This is a Linux host (actually, a virtual machine) also maintained by COSI and administrated by Jeanna Matthews and the CS141 TAs. All students enrolled in the class should have an account on this; if it is not working for some reason, please contact one of the administrators, or anyone in SC336--who will probably know how to find an administrator. Odin's passwords must be changed manually; it is not part of Clarkson's domain (please ask if you'd like to know how to do this). Odin is accessible by its full name from anywhere on the public Internet (modulo restrictive firewalls), so you need not be on campus to take advantage of it.
polaris.clarkson.edu
This is a rather-outdated Linux host maintained by OIT. Being a university resource with access to far more than just CS141 material, OIT sets very restrictive permissions, and we have a very limited ability to administer it. In general, if you are having trouble with an account, you may contact Jeanna, who can get in contact with OIT on your behalf. 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 Odin

Odin is:

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

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

  1. ssh username@odin.cslabs.clarkson.edu, where username should be replaced with your Clarkson username, or assigned credential (consult Jeanna or the TAs).
  2. If the host asks Are you sure you want to continue connecting?, type out yes in full and tap Enter. Depending on your known_hosts file, it may ask you this more than once.
  3. When it asks you for password, if you have not set a password yet, use cspassword. (Otherwise, skip to step 7.) You will not see the characters you are typing, but you are typing them; this is a security feature.
  4. Assuming cspassword worked, it will probably ask you to change your password. When it says (current) UNIX password:, type cspassword and tap Enter.
  5. It will ask you for (new) UNIX password: and to repeat it. Type the password you want (twice), pressing Enter after each.
  6. Assuming all went well, it will say something to the effect of password change successful. It will then kick you out. You'll need to start from step 1, but follow the instructions for having a set password.
  7. If you have a set password, type it in when it asks you for username@odin.cslabs.clarkson.edu's password:. As in step 3, it will not display to you, but you are still typing it. Tap Enter when you're done.
  8. If all goes well, you should be at a shell prompt, nicely colored in green to distinguish it from other systems you might be on. To be sure, you should see @odin somewhere in your prompt. You may now start using commands as usual.
If you have any problems whatsoever with the above, please contact Jeanna or the TAs.

To copy files to Odin, as will often happen if you work on a machine other than Odin (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@odin.cslabs.clarkson.edu pair.