CS 3343/3341
Analysis of Algorithms
Fall 2012
  Submission of Recitations  


Paperless Course: I am using a system of electronic submission of recitations, to make do with less paper in this course. All work for recitations will be submitted electronically, graded, and returned by email. You must have an account on the CS network.


Submission method:
  1. I will not be using Blackboard in this course.

  2. Instead each recitation must be submitted using a program of mine on the CS network. Specifically, log into one of the Linux machines,using your own account, or else ssh to one of the elk machines (see item 2 below). Create your recitation materials as a text file, named say rec1.txt, although you can choose any file name in any directory that you wish. Open a terminal window, and execute the following from the directory containing this file:

    % ~wagner/bin/cs3343r1 < rec1.txt

    where % is the Unix prompt. The above is for Recitation 1, and similarly, use cs3343r2 for Recitation 2, cs3343r3 for Recitation 3, etc.

    If you wish, you may try out the system using an imaginary Recitation 0, a file rec0.txt and the submissions command ~wagner/bin/cs3343r0 < rec0.txt . This will let you see how the system works. This is not for credit, but the initial deadline is 27 Aug 2012, already in the past, so full-credit submission is not possible. The part-credit deadline is 31 Aug 2012, so you could meet this. Of course these deadlines don't matter.

    Below is an interactive session illustrating the correct submission of Recitation 0. Here a (non-existent) student named "Ned Wagner" is submitting a file "rec0.txt" from the student account "nwagner". The purple text is what Ned Wagner types in. This assumes he has already prepared a file "rec0.txt" for submission, and that he is in the directory where this file resides. The orange text are comments, not typed in, and not appearing at all in the session.

    % cat rec0.txt   # showing the file rec0.txt
    Wagner, Ned, CS 3343, Recitation 0.
    What you have made me see is as plain as the sky, but I never saw it before.
    Yet it has happened every day.  One goes into the forest to pick food and
    already the thought of one fruit rather than another has grown up in one's
    mind. Then, it may be, one finds a different fruit and not the fruit one
    thought of.  One joy was expected and another is given.  But this I had never
    noticed before -- that the very moment of the finding there is in the mind a
    kind of thrusting back, or setting aside. The picture of the fruit you have
    _not_ found is still, for a moment, before you.  And if you wished -- if it
    were possible to wish -- you could keep it there.  You could send your soul
    after the good you had expected, instead of turning it to the good you had got.
    You could refuse the real good;  you could make the real fruit taste insipid
    by thinking of the other.
    -- C.S. Lewis, Perelandra, 1944
    % whoami   # showing your account name
    nwagner
    % ~wagner/bin/cs3343r0 < rec0.txt   # submitting recitation
    # this is the reply from my program
    CS 3343, Analysis of Algorithms, Spring 2012
    Processing Recitation Number 0
    Submission  Date/Time: Tue Jan  3 21:09:25 2012
    Full Credit Date/Time: Mon Jan 16 23:59:59 2012
    Part Credit Date/Time: Fri Jan 20 23:59:59 2012
    Received and archived for FULL CREDIT
    475 bytes and 9 lines received.
    The received file has been emailed to you for confirmation.
    % mailx   # read mail (old-fashioned mail utility)
    "/var/mail//nrwagner": 1 message 1 new
    >N  1 Ned Wagner St Tue Jan  3 21:09   34/1319 
    ? 1   # message number 1, the email my program sent you
    Message  1:
    From nwagner@cs.utsa.edu  Tue Jan  3 21:09:26 2012
    Return-Path: <nwagner@cs.utsa.edu>
    X-Original-To: nwagner@cs.utsa.edu
    Delivered-To: nwagner@cs.utsa.edu
    From: "Ned Wagner Student Account" <nwagner@cs.utsa.edu>
    Date: Tue, 03 Jan 2012 21:09:25 -0600
    To: nwagner@cs.utsa.edu
    User-Agent: Heirloom mailx 12.4pre 6/29/08
    Content-Type: text/plain; charset=us-ascii
    Status: R
    
    Submitted by: nwagner@cs.utsa.edu
    Course: CS 3343, Spring 2012, Recitation 0
    Time Received: Tue Jan  3 21:09:25 2012
    Credit: FULL
    
    Wagner, Ned, CS 3343, Recitation 0.
    What you have made me see is as plain as the sky, but I never saw it before.
     . . .  (same as above)  . . .
    -- C.S. Lewis, Perelandra, 1944
    ? d    # delete mail message
    ? q    # quit mailx
    %
    

    Two other logs of test runs showing submissions for: PART (75%) CREDIT, or for: NO CREDIT.

  3. If you are running on one of the Windows machines, you may need to transfer to a machine that can access the CS system. Open a terminal window and connect to the regular Linux network using the Secure Shell (ssh) with the command:

    where % is the Unix prompt, username is your account name, and elk04 can to be replaced by one of the other CS client machines, such as elk01 to elk07.

    I have prepared a page illustrating the use of ssh from a remote Linux or Mac machine: remote access using ssh.

    At this point you can submit as in item 1 above, but you may still need to go through a step to get the file you want to access into the CS network. The same page above, remote transfers using sftp, also shows how to use sftp, the secure file transfer program, to transfer files to (and from) UTSA.

    There is yet another way to get a file rec0.txt, currrently in the Windows environment at UTSA, into the Linux environment at UTSA. Just save rec0.txt somewhere on the "Z" drive of the Windows machine. (This only for Windows at UTSA)

  4. Each submission must be a single text file (.txt ).   Absolutely no WORD, HTML, PostScript, Zip, or PDF files (no .doc, no .html, no .ps, no .zip, no .pdf files), or any other formatted or binary file. (It is just too confusing to try to cope with all the different forms that documents can take.)

  5. If you would normally want to submit several files, just concatenate them into one file. On Unix systems, you can use something like:

    Normally, however, you would want to do the concatenation inside an editor, identifying each separate file and providing some kind of line of characters separating different parts.

    I recognize that it will sometimes be annoying to write answers to recitation requirements as a text file, particularly for mathematical formula. You should not worry about making these answers particularly neat.

  6. Each recitation has a full credit due date and time (usually Monday at midnight during the week after the recitation). After that there is a 75% credit due date and time (usually Friday at midnight during the week after the recitation). Following the second deadline, the recitation is not good for any credit.

    I intend to be strict about these deadlines. If some special problem comes up, that is what the 75% fallback credit is for, and if a special problem keeps you from meeting the second deadline, you just shouldn't have cut it that close, and it is only one out of 14 recitations. In the end, you should send something to meet the deadlines even if it is not complete.

  7. Unless explicitly stated otherwise, programs must always be followed by the results of a run.

  8. Grading comments will be inserted using ALL CAPS, so you should not use these in your submission.

  9. Submissions for a recitation should not contain extraneous or excessive material, but should be limited to the recitation requirements.

  10. It is permissible to submit the recitation in time for the first deadline, and then to submit a better version in time for the second deadline. Your grade in this case will be the better of the two grades for the two submissions. In case of multiple submissions for the same deadline, only the latest will be graded, although all will be archived.

  11. In an emergency, for example if you can connect to the Internet but cannot manage to do an ssh to one of the CS machines (which may very well happen sometimes), you may email your recitation directly to me at:

    Please try to do this as seldom as possible. The same deadlines will apply, based on the timestamp on the email. If there is some long delay between sending an email and its receipt, I'll deal with that in a fair way. Please do not send any attachments at all, particularly not WORD attachments. (Just paste your rec?.txt file in along with your message.)

  12. Fallback plans: If this whole submissions process fails for some technical reason (for example, if there are problems with the CS facilities or with my software), I will fall back to email submissions, or even (shudder!) to submissions on sheets of actual physical paper. (Submission through Blackboard is not an option.)


Security of the submission process: I wanted a system for submitting and retaining recitations that would be simple, secure, under my own complete control, and not requiring root access on any machine. The method I ended up with relies for its security on the secrecy of the file names. These files reside in directories that are not world readable, but the file can be read by anyone who knows its name. Thus security depends on the secrecy of (long, random) file names. Dr. Maynard said that this method stinks, because information like the names of files often leaks out from an OS. He's right.

Especially because this system is not unbreakable, you will be in big trouble if you crack it and use the cracking to cheat. However, if you want to study the security of the system (or try to break it), the C source code for this system is here.


Revision date: 2012-08-28. (Please use ISO 8601, the International Standard.)