Assignment Submission Instructions

All assignments for this class will be submitted electronically from turing/hopper using the e-mail system indirectly.

The most important point to be made here is DO NOT SEND YOUR PROGRAMS DIRECTLY WITH E-MAIL. With as many students as there are in the class, direct e-mail submission leads to chaos. There are too many options. "Should all files be placed in one e-mail or in separate e-mails? Should they go as attachments or in the body of the e-mail? Can I use the e-mail program with my browser at home? Which address do I send my programs to and what do I do if I forget it?"

You get the picture. There are too many ways that things can go wrong.

To make this process easier on you and on the TA, custom programs have been created specifically for submitting course assignments. This page details how to set up your account on turing/hopper in order to use the submission programs.

Assignment Directories

You will find it extremely annoying if you do not organize your work by creating a new directory for all the files associated with each assignment.

For each programming assignment, you will likely be instructed to copy one or more files from your instructor's directory on hopper.cs.niu.edu as a starting point. The first couple of assignments will typically guide you through the Unix instructions required to do this. Most people get the general idea quickly.

Before Submission

Prior to submitting an assignment, you will need to remove any executable or object code files in your assignment directory using the rm command. Binary files can cause problems with the submission script, so it will refuse to submit your assignment until all of the binary files in your assignment directory have been removed.

Acceptable files include source code (.cpp) files, header (.h) files, makefiles (typically named makefile) and links to input data files (created using the ln command as part of setup for the assignment). Anything else will usually need to be removed.

Be very careful using the rm command. If you accidentally remove the wrong file and you don't have a backup of it stored somewhere else, you may end up having to recreate it. There is no "undelete" command in Unix.

If you have a makefile, running "make clean" will usually be sufficient to remove anything that should not be submitted.

Submission

In order to submit an assignment, you should be in the parent directory that contains the directory for your assignment files. To submit the assignment type mailprog.XXX (where XXX is the number of the course within which you are enrolled) followed by the name of the directory containing the assignment files. For example, if you put your files for assignemnt 1 into a drectory named a1 for CSCI 463 then you would type:

   mailprog.463 a1

The mailprog.XXX program will examine your assignment directory and ask you to remove executable and object files if any exist. It will also ask you to remove any data files and core files (often created when a program crashes and useful for serious debugging). If there are no prohibited files, it will ask you for the program number. This is just the assignment number (1, 2, 3, etc.). For example, if you're submitting your files for Assignment 1, you should type 1. It doesn't matter whether this is your first attempt to submit the files or your fifth attempt; you still need to type 1.

It will then wrap up all the files in your assignment directory, compress them, and e-mail them to your TA and your instructor in a consistent format. An additional copy of the e-mail will be sent to your mail account on turing/hopper as a verification.

The following is a sample session assuming a directory named Assign1. The user in this example is an imaginary student with z-ID z1234567 enrolled in Section 1. Text typed by the user is shown in blue.

z1234567@turing:~$ cd csci463
z1234567@turing:~/csci463$ ls
Assign1
z1234567@turing:~/csci463$ mailprog.463 Assign1

**********************************************************************
* WARNING : Do NOT use this program to mail notes to your Instructor *
*           Doing so may result in the loss of your program !!       *
**********************************************************************

Enter assignment number for your assignment: 1

*********************************************************
* Section 1: McMahon / Imandi, Kamma       TTh 12:30 pm *
* Section 2: Winans  / Faizaan, Kuo        TTh 11:00 am *
*********************************************************

Enter your section number: 1
shar: Saving /tmp/mailprog.26572 (text)
z1234567@turing:~/csci463$

Checking Your Copy

The mailprog.XXX program does not destroy or alter any files in your assignment directory. But it does send you a copy of what it sends to the TA and instructor. This copy is sent to you Unix mailbox. If you do not receive the copy, chances are good that your assignment didn't make it to the TA or instructor either.

You can check your Unix mailbox for a successful submission using the command mail. This command can be run from any directory. To exit out of the mail program, type q (for "quit").

Here's another sample session for our imaginary student with z-ID z1234567 showing the results of a successful submission. Once again, text typed by the user is shown in blue.

z1234567@turing:~/csci463$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/z1234567": 1 message 1 new
>N  1 z1234567@turing.cs  Thu Sep 12 14:17  168/5478  HW: CSCI 463 : Program 1 Section 1
& x
z1234567@turing:~/csci463$

As you can see from the text above, there is a new message (message #1) indicating that Program 1 was submitted by z1234567 to the Section 1 TAs and instructor on Thursday, January 31st at 2:17 pm.

Submission messages like this will remain in your Unix mailbox until you delete them. However, it's best to just leave them there until the assignment is graded, since they serve as a record of your submission attempts. If something unusual happens and the TA or instructor doesn't receive your submission, you will still have a copy.

Once your assignment has been graded to your satisfaction, you can delete any submission messages associated with it from your Unix mailbox to free up disk space. To delete a message in the mail program, type d followed immediately by the message number (for example, d1, d2, etc.) NOTE: If you WANT to delete or otherwise edit the contents of your mailbox, you will need to use the q command (as opposed to the x command shown above) in order to 'save your changes.'

It would be a good idea to read the manual page for the mail command like this: man mail. For that matter, it might be a good idea to read the manual page for the man command itself like this: man man

There's generally no reason for a student to bother looking at the actual body of a submission message - it's an unreadable block of text encoded with the Uuencode algorithm wrapped in a self-extracting shell archive. Unless you're a Unix guru, it's not going to make much sense.

Multiple Submissions

You can submit an assignment as many times as you wish. The electronic submission system will only keep your last three submissions. The last one is what the TA will grade unless you specifically contact them and ask them to do otherwise.

Last modified: 2022-01-18 11:17:58 CST