Setting up submit
command for assignment submission
Students can use the
submit
command to submit their homework. The students' submissions will be copied to the
handin
folder in the course account. This page describes how to set up
submit
for an assignment.
The steps below use
csNNN
and
aX
as examples. Replace
csNNN
with your course number, and
aX
with the actual assignment number.
Step 1: SSH into the
csNNN
account on linux.student.cs.uwaterloo.ca. If you don't have access to the
csNNN
course account, ask your
ISC or
CSCF. To check that you're in the
csNNN
account, run
whoami
command. It should print
csNNN
.
Step 2: You may have to back up student submissions from previous terms first.
At the command prompt in
csNNN
account, run:
ls /u/csNNN/handin/
This will list the contents of the
handin
folder. If you see
aX
listed, back up the
aX
folder first.
aX
might contain submissions from a previous term. You can back up
aX
by moving the
aX
folder somewhere else with
mv
command.
Step 3: Run:
mkdir -p /u/csNNN/handin/aX
This creates a folder called
aX
inside the
handin
folder.
Step 4: Run:
cd /u/csNNN/handin/aX
to go to the newly created
aX
folder.
Step 5: Run:
nano .subfiles
Make sure to include the period before "subfiles". This command will open a text editor called nano to edit/create the
.subfiles
file. If you prefer a different text editor (ex. vim or emacs), you can use that instead.
Step 6: Type the files that students are expected to submit, one file per line. For example, if students are expected to submit exactly two files named a1.pdf and a1.sql, you should type in:
a1.pdf
a1.sql
You can use wildcards to match anything. For example, to match "a1." followed by anything, type in
a1.*
Step 7: Save the file as
.subfiles
. If you're using nano, do this by pressing Ctrl+x. A prompt will appear at the bottom to confirm you want to save the file. Press y for yes, then press Enter to use the filename
.subfiles
.
Step 8: To check that the
.subfiles
file was created properly, run:
cat /u/csNNN/handin/aX/.subfiles
This will display the contents of
.subfiles
. Check that it's correct (ie all the files students are expected to submit are listed, one per line).
Step 9: Run:
cd /u/csNNN; /u/isg/bin/deadline aX o
After the
aX
, there's a space, and then a lower case letter "o". This command opens the assignment up for submission.
Step 10: Now we'll double check that submission is open. In a new Terminal window, log in as yourself on linux.student.cs.uwaterloo.ca.
Run:
submit csNNN -L
You should see
aX
listed and is "on time"
Run:
submit csNNN aX -L
You should see the files that students are expected to submit listed.
Step 11: Now we'll create a Linux "at" job that will prevent students from submitting to
aX
after the assignment is due. Students will have to submit to
aX_late
, which will be listed when students run
submit csNNN -L
.
Run:
cd /u/csNNN
Then run:
echo '/u/isg/bin/makelateclone aX aX_late' | at 5:00PM 06/23/2017
The character before "at" is the pipeline (usually near the Enter key on your keyboard). Replace the time and date with the assignment's due date.
Step 12: To check that the previous step was done correctly, run:
atq
You should see something like:
job 3 at Fri Jun 23 17:00:00 2017
Make sure the date and time is correct (it should be the due date of the assignment, which you entered in the previous step).
Run:
at -c 3
Replace 3 with the number after "job" when you ran
atq
. You'll see a bunch of output, but at the bottom it should say:
/u/isg/bin/makelateclone aX aX_late