Miscellaneous Information
Cornell Note-taking System
Here's the
Cornell Note-taking System referenced in class.
Submitting Assignments
In general, homework and projects will be submitted to the respective box in D2L (
https://elearn.mtsu.edu), unless otherwise specified.
When promoted, use your PipelineMT account credentials to gain access.
For homework assignments, late submissions
will be ignored.
If you re-submit a lab assignment, only the resubmission will be graded. This may
reduce the amount of points earned if the new submission is after one or more days late.
Resources for Mac Users
If you have a Mac and are looking for a way to run Windows (which, by the way is free via DreamSpark for CS students), here are some options:
- Run Windows with Boot Camp (included for free with recent OS X versions)
- Install a virtual machine (e.g., VirtualBox (Open Source Software)), then install Windows
- Purchase Parallels, then install Windows
Accessing herschel with just a terminal window
Mac or Linux Machine
One of the easiest ways to access
herschel from a Mac or Linux machine is using
ssh. In a terminal window on a Mac or a Linux system, type in something like:
ssh PIPELINE_ID@herschel.cs.mtsu.edu
Replace
PIPELINE_ID with your personal CS account name (which is the same as your pipeline ID).
ssh will prompt you for your password. Use your personal CS account password. Note, as a security measure, it will not display what you're typing.
If you want to have a window pull-up on your Mac or Linus machine (for example, a
Site window), then use
ssh -X .... This will forward the X windows (if you have an X-server running like
Xquartz).
When you're tired of typing in your password every time,
set-up ssh keys.
Windows Machine
To get a terminal window access on a machine running Windows, the most common tool to use is
PuTTY.
Accessing herschel with a graphical display
To access
herschel, and have a screen just as if you were sitting down at that computer, use
X2Go.
Dr. Untch put together some instructions on
how to install and configure X2Go to connect to ranger.
You can use these instructions, but apply them to
herschel.
For generic installation instructions, see the
X2Go Wiki.
Note, BEFORE the first time that you login with X2Go, you need to login once with
PuTTY or
ssh.
If you're running Mac OS X, then you'll need to install XQuartz first.
Follow the instructions in the the following video:
https://cs.mtsu.edu/~untch/share/Xquartz.mp4.
Also, if you're using running Mac OS X 10.8 or newer, then version 4.0.5.1 will not work, but
version 4.0.5.0 does work.
If you get an error message like "x2goclient" can't be opened because it is from an unidentified developer, you need to go to Finder, then the Applications folder and right-click on the X2Go icon.
Choose Open, then allow it to be opened.
You should only have to do this once.
If you're running Mac OS X 10.6 (Snow Leopard) or 10.7 (Lion), you'll need to use
version 3.99 instead.
Once you have X2Go installed, you'll need to use the following values to connect:
Host: herschel.cs.mtsu.edu
Login: (Your CS / Pipeline Username)
Session Type: XFCE
Transferring Files to/from herschel using a Mac or Linux Machine
On of the easiest ways to transfer files to and from
herschel is using
scp.
If you're using a Mac or a Linux system, open up the
Terminal application. To do this on a Mac, either search for Terminal with Spotlight, or use the Finder application. In Finder, open up the Applications folder, then the Utilities folder. Double-click on the Terminal application in that folder. Then, in a terminal window type in something like:
scp -r lab2-lastname/ PIPELINE_ID@herschel:~/coms6100/labs/.
The
-r flag specifies a recursive copy (meaning it will copy all specified files and directories and what's in those directories (and what's in those directories (and ...))). The syntax for the username and remote machine is just like it is for
ssh with "
:" after the hostname. Specify the directory that you want to transfer files to after the "
:". The example above indicates to copy
lab2-lastname/ on the local machine to the
coms6100/labs/ directory, in PIPELINE_ID's home directory on
herschel. The "
~/" means the home directory. The "
." at the end of the path tells
scp to use the same filename/directory name (in this case,
lab2-lastname).
If you want to transfer files
from herschel to your local machine, reverse the syntax:
scp -r PIPELINE_ID@herschel:~/coms6100/labs/lab2-lastname .
Transferring Files to/from herschel using a Windows Machine
If your local machine runs Windows, one free tool (of many) to transfer files to a remote machine is
WinSCP. To create a session to connect to
herschel, use
herschel.cs.mtsu.edu as the host name. Additionally, use your personal CS credentials (your pipeline ID and your CS account password).
Using diff
diff is a command-line utility on UNIX-based machines to compare two files.
Part of the grading process is automated by using
diff.
diff takes two filenames as arguments and displays the differences (if any) between the two files.
It treats the first file as the original and compares the second file to the first file.
Every time
diff detects that one or more
lines are different between the files, it will output the line number of the first file, a letter and the line number of the second file. The letter is one of the following:
- a: a line was added in the second file
- c: a line was changed
- d: a line was deleted in the second file
If
diff detects that a line was changed, it will output the line from the first file, followed by a line with just "
---", followed by the line from the second file. It appends "
<" and "
>" at the beginning of lines to indicate if the line is from the first or second file respectively.
As an example, let's assume that you have the following files:
diffExample1.txt |
|
diffExample2.txt |
aaa
bbb
ccc
ddd
eee
fff
ggg
|
|
aaa
bbb
ddd
e e
fff
ggg
hhh
|
Executing
diff diffExample1.txt diffExample2.txt
yields the following results:
3d2
< ccc
5c4
< eee
---
> e e
7a7
> hhh
In this example,
diff detected that line 3 in the first file, "
ccc" is not present in the second file (at line 2). Additionally, line 5 in the first file is similar to line 4 in the second file ("
5c4"). Finally, line 7 in the second file, "
hhh", is not found in the first file.
Again, if the two files are identical,
diff outputs nothing.
Optionally,
diff can take a
--side-by-side flag to display the results lined up next to each other. Using the same files above and the
--side-by-side flag yields the following results:
aaa aaa
bbb bbb
ccc <
ddd ddd
eee | e e
fff fff
ggg ggg
> hhh
Here, the first file is output on the left, then a column of either "
<", "
|", "
>" or nothing and then the contents of the second file. The "
<" and "
>" symbols in the middle column have the same meaning as above. The "
|" symbol in the middle column indicates that the two lines are similar, but not exact. If there's not a symbol in the middle column, then the line match perfectly. With the
--side-by-side flag, longs lines are truncated. To prevent this, use the
-W argument with a large number (
e.g.,
-W 170).