Miscellaneous Information


Links:

Cornell Note-taking System

Here's the Cornell Note-taking System referenced in class.

Installing CodeLite on Your Own Computer

Dr. Cen Li put together instructions for installing CodeLite on your own computer:

Submitting Assignments

For this class, some assignments and all projects will be submitted exclusively using an automated system. You can either use handin in a terminal window on ranger.cs.mtsu.edu or the web interface at https://cs.mtsu.edu/cgi-bin/gus/gus.py. There are a couple of different ways to use it. First, just typing in handin will display the assignments that the systems knows about. Second, typing in handin with just an assignment id (for example, handin project1) displays information about the specified assignment (before or after it's been submitted). Finally, handin can be used to submit assignments by specifying the required filename(s). For example, handin project1 project1.py. Upon successfully submitting an assignment or project, you should see something like the following displayed at the bottom of your terminal window:
SUCCESS: project1 submitted.
handin command finished.
The first time you use the handin command, you will get a message of the form:
NOTE: Please enter your course account's password when prompted.
(Use your instructor-supplied course account password.)
Authentication realm:  076fc91e-5327-0410-80b2-9ad2079b72aa
Password for 'c82245XX':
Enter your course account password (the same one that was handed out in class) as indicated. (Don't be alarmed that nothing seems to be being entered; your password will not be shown on the screen as you type it, not even as a row of asterisks. It is going in, however!) This will be the only time you will need to provide this information for handin; the information is stored for future uses. If successful, this handin command will deposit a copy of the specified files in an electronic repository.

Status of Assignments

The status of the assignment can be queried by running:
handin assignmentID
(for example, handin ola3).

Retrieving Graded Projects

The status of the assignment can be queried by running: handin assignmentID (for example, handin project1). Once an assignment is marked "graded", you can get the graded PDF for that assignment. You can get the graded assignment either through a terminal window or via a web browser. To retrieve the graded assignment via a terminal window, on one of the ranger machines, type: handback assignmentID (for example, handback project08, or handback project09). Alternatively, you can retrieve graded assignments through the web-based submission site, https://cs.mtsu.edu/cgi-bin/gus/gus.py. This should save a PDF file in the current directory. The PDF is encrypted with your original CS account password. To view the PDF of one of the ranger machines, see the Viewing PDFs on ranger section. Login in with your C-Number and original CS account password. Choose the appropriate assignment from the dropdown box. Make sure "Status/Retrieval" is selected, and click on the "Perform Action" button. Near the bottom of the page, next to "Click to retrieve/view:", click on the link. This should download the appropriate PDF. Again, the PDF is encrypted with your original CS account password.

Viewing PDFs on ranger

PDFs (for example, graded projects) can be viewed by either:
  1. In a terminal window, typing in acroread filename.pdf (for example, acroread project08.c8224500.Carroll.Hyrum.pdf)
  2. Opening up File Manager, navigating to the file, then double clicking on it. You can open File Manager by going to the menu entry Applications, then selecting File Manager or be double-clicking on the home icon on the Desktop
To view a graded project, the PDF is password-protected with your original account password (that cryptic letter number combination).

Tutoring Lab

The Computer Science department provides tutors for this course (starting the second or third week of the semester). They are located in KOM 363. What can they do? This statement from our department chair gives you some idea of how they can help:
"It is important to note that the tutors are not there to do your programs for you. They are there to help you understand concepts or help you debug code you've already written or an algorithm you've already designed. Please take advantage of tutoring early in the semester to understand the concepts. Also remember to start your programs early instead of waiting to the last minute so the tutors are not inundated all at once. Hope you have a wonderful semester."
Chrisila Pettey, PhD
Professor and Chair
For available hours, refer to the following schedule:

Accessing ranger with just a terminal window

Mac or Linux Machine

One of the easiest ways to access ranger 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  C_NUMBER@ranger0.cs.mtsu.edu
Replace C_NUMBER with your C-Number (something like c10022XX). ssh will prompt you for your password. Use the cryptic password that goes with your C-Number account. 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 linux machine (for example, a Scite 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 ranger with a graphical display

To access ranger, and have a screen just like the one you'd have in the lab, use X2Go. Dr. Untch put together some instructions on how to install and configure X2Go to connect to ranger. For generic installation instructions, see the X2Go Wiki. For instructions specific to connecting to MTSU CS machines, see the following tutorial. 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: ranger1.cs.mtsu.edu
Login: c80940?? (your C-number account username)
Session Type: XFCE

Transferring Files to/from ranger using a Mac or Linux Machine

One of the easiest ways to transfer files to and from ranger0, 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  project2-lastname/  C_NUMBER@ranger0.cs.mtsu.edu:~/csci2170/projects/.
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 project2-lastname/ on the local machine to the csci2170/projects/ directory, in C_NUMBER's home directory on ranger. The "~/" means the home directory. The "." at the end of the path tells scp to use the same filename/directory name (in this case, project2-lastname).

If scp gives you a warning about RSA identity, you can enter "yes". It should then ask for your password. When you type it in, it will not display what you type. This is a security feature so that other people that are watching you can not know how long your password is. Don't forget to press the enter key after typing in your password.
If it's successful, it should list the file(s) that you specified with a 100% on right side.

If you want to transfer files from ranger to your local machine, reverse the syntax:
scp  -r  C_NUMBER@ranger0.cs.mtsu.edu:~/csci2170/projects/project2-lastname  .
When you're tired of typing in your password every time, set-up ssh keys.

Transferring Files to/from ranger using a Windows Machine

If your local machine runs Windows, one free tool (of many) to transfer files to a remote machine is WinSCP. For File Protocol chose SCP. To create a session to connect to ranger, use ranger0.cs.mtsu.edu as the host name. Additionally, use the cryptic password that goes with your C-Number.

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: 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).

Last Modified: