The EECS 381 Submission Program

In order to submit projects in EECS 381, you must use Unix (or Linux; Unix is used here as a synonym for Linux). You do not have to develop your programs with Unix (in fact, we encourage you to use one of the IDEs), but you do have to use Unix to submit your project.

Setting up your Unix account to use the EECS 381 submission program

In order to use the submission program, you must tell your shell where to find it. You only need to do this once.

  1. Login to a CAEN Unix machine

     
  2. Open your .cshrc file in a text editor
    Use pico, vi, emacs, nedit, or your favorite text editor. E.g. type "pico ~/.cshrc" at the shell prompt (machinename%). Your .cshrc file contains commands that are run every time you start a new shell.
     
  3. Add the EECS 381 afs bin directory to your path
    Copy this line to the end of your .cshrc file:
    set path = ($path /afs/umich.edu/class/eecs381/bin)

    This command tells your shell where to find the submit381 program.
     
  4. Logout, then login again
    Your new .cshrc file will run when you login.
Note: If your shell is not csh or tcsh, you will have to make changes to your shell initialization files. If you know how to change your shell, you can probably figure out how to make these changes yourself.

Using the EECS 381 submission program

Follow this procedure every time you turn in a project.

  1. Copy your project source (.h, .c or .cpp) file(s) to your Unix (AFS) directory
    You can use SFTP, SCP, an upload/download utility, or access AFS directly. Your source file(s) must have the exact filenames that are specified, with the same case. Depending on your upload method, you may need to ensure that your files are converted to Unix line-ending format from whatever your development platform format is.
     
  2. Login to a CAEN Unix machine

     
  3. Make sure your source files are in your current directory and have the specified names

     
  4. Verify that your program compiles and runs correctly in a Unix environment
    Why waste a submission if you could have found out that your program had a compilation error before you submitted it? It is also a good idea to run your program using the sample inputs and outputs - this is a good way to detect the common error of relying on undefined platform-specific behavior.
     
  5. Run the submit381 program
    At the shell prompt, type
    submit381 <project-number> <source-file-names>

    e.g.
    submit381 1 P1.cpp

    submit381 0 hello.cpp hello.h

    submit381 0 *.h, *.c

    Important:You can use shell wildcards to make typing the submit command easier and less error-prone - a file won't get left out. Just be sure your current directory has only the files that you plan to submit, because the wildcard will send all matching files in your current directory:
    submit381 4 *.cpp *.h

    Remember that Unix is case-sensitive so "hello.cpp" != "Hello.cpp".
Note: You can type "submit381" without arguments to see a reminder of how to use it.

The EECS 381 submission program also has a query feature. This allows you to get your total score and bonus level from your last submission if you haven't yet submitted today, but the query does not count as a submission. Only the total score is provided, not the test-by-test results.

Here's the concept: The autograder allows you to submit your code as many times per day as you want, but only gives you feedback on the first two. Say you are finishing early, and want the bonus. You submit your code twice, fixing bugs after getting each feedback, and then submit your code one more time before midnight. If your last fix was good, you have a good score and the early submission bonus. But what if your last fix broke your program and actually got a lower score? But if you submit again tomorrow to get the feedback, you will lose the early bonus!

What to do? Tomorrow (or after midnight today) you can query the autograder to find out if your total score is what you expected, or if some disaster happened, whereupon you will have to fix and resubmit your code - and you will still have two submissions with feedback. The syntax for the query is:

The autograder will email your total score and bonus proportion for the last submission received, if you have not previously submitted today.