Handin
From Socs Info Wiki
This document describes how to setup and use the handin(1) file submission program. The Setup portion of this document is intended only for Professors and/or Teaching Assistants. The Usage portion of this document is intended primarily for Students.
Setup
The Professor or Teaching Assistant setting up handin for assignment submission should perform the following commands. For the purpose of the example, let's suppose that we're setting up handin for the course COMP-535 (in the account cs535). Note that prior to executing these commands, you will have to ssh into the account. To gain ssh access to the account, follow the steps in the shared account info page.
ssh cs535@linux.cs.mcgill.ca
Create the handin directory
mkdir handin
Create the main config file
touch handin/.config
Format of file is:
a assignment a assignment year.mn.dy hr:mi:sc year.mn.dy hr:mi:sc
Allow users to add assignemnt 1, only one submission will be allowed no expiry date set
echo "a ass01" > handin/.config mkdir handin/ass01 chmod 700 handin/ass01
Allow users to add assignment 2, multiple submissions allowed until expiry date reached, after first date student informed that their assignment is late
echo "a ass02 2009.09.20 00:00:00 2009.07.02 10:59:00" >> handin/.config mkdir handin/ass01 chmod 700 handin/ass01
Be aware of the following:
- The handin directory and all it subdirectories cannot be world writable.
- The handin directory and all it subdirectories must be owned by the owner of the home directory.
- All directories of the handin facility have mode 700..
- The handin facility can be accessed by students from our Linux workstations.
Usage
First login to one of our Linux workstations. Second find out what subdirectories exist for the course. You need to know this inorder to be able to submit files for a given assignment. The output below tells us that "assn1", "assn2", and "assn3" are available. Further to this example, let's assume that students are submitting assignment 1, so the corresponding subdirectory must be ass01.
[linux] [~] handin -l cs644 assn1 2009.08.12 00:00:00 2009.08.20 00:00:00 assn2 assn3
Create a course and assignment subdirectory structure in your home directory:
mkdir ~/cs644 mkdir ~/cs644/assn1
Place your assignment files in that directory.
Next, submit assignment assn1, the file named ``file1.c'', ``file1.h''.
[linux] [~] handin cs644 assn1
Student user ID: student
Now: Wed Aug 19 11:19:27 2009
Due: Wed Aug 12 00:00:00 2009
Blocked: Thu Aug 20 00:00:00 2009
NOTE: The assignment due date has passed.
You have passed all validation steps.
PLEASE READ THIS STATEMENT CAREFULLY AND ENSURE THAT YOU UNDERSTAND IT BEFORE
SUBMITTING YOUR WORK.
By submitting these files, I indicate that I am fully aware of the rules and
consequences of plagiarism, as set forth by the Department of Computer Science
and the McGill University. I hereby certify that the work in the
submitted file(s) was performed *only* by me (the owner of the account used to
submit this work), except as acknowledged in the work submitted.
Are you sure you want to continue? (y/n) y
.........Your assignment is being retrieved.
Please be patient.
./
./file1.c
./file1.h
Checking for TA handin script /home/course/cs644/bin/handin ...
None ...
*** Handin process completed. ***
[linux] [~]
Finally, verify whether the files were submitted successfully to subdirectory assn1.
[linux] [~] handin -c cs644 assn1 Student user ID: student /home/course/cs644/handin/assn1/student: total 44 drwx------ 2 cs644 4096 Aug 19 11:19 . drwxr-xr-x 3 cs644 4096 Aug 19 11:19 .. -rw------- 1 cs644 0 Aug 19 11:19 DateSTAMP.LATE -rw------- 1 cs644 2012 Aug 19 11:17 file1.c -rw------- 1 cs644 30792 Aug 19 11:18 file1.h
If a file is resubmitted, it is overwritten and associated with a new timestamp.

