It is important to understand that everything involved with turning in your assignment is handled by software, including determining when an assignment is turned in late. It’s important that you follow the directions given below to make sure your assignment is not rejected or delayed. If, after reading and understanding this page, you have any questions about turning in your assignment, be sure to send your questions to me or bring them up in class.
You can turn-in your assignment in two ways: submit it or test it. If you submit your assignment, the code you submit will be the basis for your grade on the assignment. If you test your assignment, the code you test will be deleted after the test is completed. Testing your code is not submitting your code; you must explicitly submit your code at least once per assignment.
You may turn-in (submit or test) your assignment as many times as you want, up until the deadline for that assignment. After the deadline has passed, any further attempts to submit your assignment are rejected without penalty and your most recent assignment submitted is retained. If you have not submitted your assignment by the deadline, you may make a single submission with penalty after the deadline; any further attempts to submit after the deadline are rejected. You may test your assignment as many times as you want, whenever you want.
Your assignment must be turned-in from your Monmouth University account. The mailbox software uses various utilities to verify your identity (to the extent that your identity can be reliably verified with e-mail), and those utilities are usually inaccessible when e-mail is sent from outside the Monmouth domain. The mailbox software rejects any e-mail sent from an account it doesn’t recognize as belonging to a class member.
send-files
:
/export/home/class/mucs520/bin/send-files anowhere ano is the number of the assignment you're turning in (1 ≤ ano ≤ 6). You can find the assignment number at the top of every assignment page, as well as in the schedule link from which you found the assignment page.t
|s
[files]
Give the t
command-line argument to indicate you’re testing your
assignment; otherwise, give the s
command-line argument to indicate
you’re submitting your assignment. You must give one of t
or
s
, but not both (the bar character ‘|
’ indicates one or the
other, but not both).
files is an optional list of files. If a list of files is given on the
command line, send-files
will send all and only those files given. If no
list of files is given on the command line, send-files
will send all the
Java files it finds in the directory in which it was called. send-files
assumes any file ending in the extension .java
is a Java file.
When you list files on the command line, you should list only those file found in the current directory; you should not list files found in subdirectories or the parent directory of the current directory.
If you list no files on the command line, send-files
sends only the files
it finds in the current directory, it will not look in other directories for
files. Also, send-files
will send all files it finds, so make sure the
current directory contains only the files you want to send.
The five-minute response time only applies to your Monmouth University mailbox. If you forward your mail somewhere outside Monmouth, no response-time guarantees can be made, and it can take arbitrarily long to get your reply.
You can reduce the amount of typing you have to do when turning in an
assignment by defining an alias to the send-files
. If you’re
running ksh
or bash
as your shell,
add the following line to your $HOME/.profile
file:
alias send-files=/export/home/class/mucs520/bin/send-files
Typing alias send-files
will tell you if send-files
is defined as an
alias and, if it is, to what it is defined:
$ alias send-file send-file: alias not found $ alias send-files send-files=/export/home/class/mucs520/bin/send-files $
Once you’ve defined the send-files alias, you can type it instead of the full path name:
$ send-files 1 s Files sent: ProcessDescriptor.java ProcessQueue.java StorageBlocks.java group os.java $
If you’ve defined an alias, there’s no need to use ./
as a
prefix to execute it; in fact, if you use ./
ksh
or bash
won’t recognize the alias:
$ ./send-files 1 s /bin/ksh: ./send-files: not found $
If you want more information on aliases, or if you’re not running
ksh
or bash
as your shell, see the alias section of the man page for
your shell.
If you’re turning-in an assignment, it is unpacked and compiled, and the results are sent back to you as a response. If you’re testing an assignment, it is unpacked and compiled, the results are sent back to you as a response, and then your assignment is deleted.
You should receive a response within five minutes after sending your e-mail. If everything goes well, your response should look something like this:
From: rclayton@rockhopper.monmouth.edu Date: Wed, 22 Feb 2015 05:51:26 -0500 To: s0------@monmouth.edu Subject: Operating systems assignment 1 submit results. Content-Transfer-Encoding: 7bit $ date Wed Feb 22 05:51:03 EST 2015 $ ls DiskInterruptHandler.java ProcessDescriptor.java ProcessQueue.java StorageBlocks.java group os.java $ javac -Xlint -classpath \ /export/home/class/mucsos/pa1/pa1-120218.jar:. -implicit:none \ DiskInterruptHandler.java $ javac -Xlint -classpath \ /export/home/class/mucsos/pa1/pa1-120218.jar:. -implicit:none \ ProcessDescriptor.java $ javac -Xlint -classpath \ /export/home/class/mucsos/pa1/pa1-120218.jar:. -implicit:none \ ProcessQueue.java $ javac -Xlint -classpath \ /export/home/class/mucsos/pa1/pa1-120218.jar:. -implicit:none \ StorageBlocks.java $ javac -Xlint -classpath \ /export/home/class/mucsos/pa1/pa1-120218.jar:. -implicit:none os.java $ /usr/local/findbugs/bin/findbugs -textui \ -auxclasspath /export/home/class/mucsos/pa1/pa1-120218.jar *.class $ java -ea -cp /export/home/class/mucsos/pa1/pa1-120218.jar:. main os \ /export/home/class/mucsos/pa1/pa1-empty.dsk The system is halted. Total execution time: 10 ticks, idle time: 9 ticks (90%). $ -- Your turn-in and this reply have been dealt with entirely by software without human intervention. You should not assume any person other than yourself is aware of your turn-in or this reply; in particular, the person who appears to have sent you this reply is completely unaware both your e-mail and this reply.
Wait until you get the reply from the previous turn-in attempt before trying another turn-in attempt. Each turn-in attempt is handled independently from, and concurrently with, all other turn-in attempts. If you turn-in assignments two or more times without getting a reply from any of them, you’ll have two or more assignments competing to be accepted, which is probably not what you want.
For example, if you turn-in an assignment and realize you’ve made a mistake, you should wait until you get a reply from your first, incorrect turn-in before you try a second, correct turn-in. If you immediately turn-in your assignment again without waiting until you get a reply from your first turn-in, your two assignments will be competing to be accepted by the turn-in software, and there is no guarantee which assignment will be accepted.
Date: Thu, 30 Oct 2003 20:52:44 -0500 (EST) Subject: Submitted files From: s0------@monmouth.edu To: rclayton@monmouth.edu When I submitted my files today I first accidentally submitted files in the wrong directory. I then resubmitted with the correct files. I received the email for the first submission after I received the email for the second one. I would like to make sure that the second submission was the one that was officially submitted at the deadline.
Unfortunately, the first incorrect assignment was the one that the turn-in software accepted, causing this student to fail the assignment.
Turn-ins are destructive. Each assignment you turn-in unconditionally and completely replaces the previously turned-in assignment, if any. If you turn-in a broken assignment, it will be accepted and will replace the previously turned-in assignment.
Testing an assignment has no effect on the assignment that’s been submitted, if any.
Keep the reply. The reply from your turn-in is your receipt; keep it. If there’s any question about your assignment and you don’t have the most recent reply, you’re pretty much out of luck.
Don’t fool around with the deadline. The clocks on the various CS lab machines are not well synchronized, and the clock on the machine receiving your turn-in is the only one that counts. Even though the clock on your machine shows 1:58 p.m., you may have already missed the 2 p.m. deadline. Turn-in early and often.
The code you turn-in is the code that gets graded. You code is tested as turned-in; I will not patch, replace, or change any software turned-in to fix last-minute errors. I will not reset the deadline so you can submit an improved version of your code after the deadline. It is your responsibility to turn-in working code by the deadline.
If your assignment’s a lot wrong as the deadline approaches, chances are good it’ll still be a lot wrong when you eventually turn it in, which means not only will you get a low score, but you’ll also get whacked for the late points. This argues for tuning in your assignment on time and taking your chances with just a low score, rather than going with a guaranteed loss of 5 to 25 points on top of whatever low score you’ll probably get.
On the other hand, it depends on what’s wrong. Assignments that don’t even compile get a grade of no more than 50 (out of 100). Assignments that compile but don’t work usually get grades in the range 65-75 (out of 100). In this case it makes sense to take the two or three extra hours it would take to fix your assignment so it compiles; the points you lose for being late (assuming you can fix your assignment before midnight) should be covered by gain in points for submitting something that compiles.
The decision is trickier if your assignment works, but you just want to “fix a few simple things.” I have committed some of my worst programming atrocities when I tried to make a few, simple fixes to my code at the last minute. I have learned never to make changes at the last minute, no matter how simple. My recommendation is that you turn-in you assignment as it is. And if you cannot resist making changes at the last minute, make a copy and change the copy.
ano is not the number of times you’ve turned-in your assignment.
From: s0------@monmouth.edu To: rclayton@monmouth.edu Subject: Assignment 1 turn-in mistake. Date: Wed, 04 Feb 2004 09:46:19 -0500 Dear Prof Clayton, While sending my latest assignment 1 files yesterday, I entered the incorrect value for ano in the command. I thought ano should be the number of times I’ve submitted the assignment. I didn’t realize this was wrong until I checked my email yesterday night.
Checking above shows that
ano is the number of the assignment you're turning in (1 ≤ ano ≤ 6). You can find the assignment number at the top of every assignment page, as well as in the schedule link from which you found the assignment pageMake sure you understand what the ano command-line argument is. Make sure you test your understanding by turning-in several times before the deadline. Make sure you wait until you get a response from the turn-in software, make sure you read and understand the response, and make sure you keep the most recent response. Failure to follow these recommendations could have an unfortunate effect on your assignment grade, as it did for the student who’s e-mail is reproduced in this answer.