McGill University School of Computer Science
McGill University School of Computer Science
Views
You are here: Handin

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.