UC San Diego SearchMenu

Bundle

A utility for turning in multi-file assignments


Information for instructors and TAs

Bundle is a frontend for the more basic Turnin Utility. The advantages of bundle compared to turnin are:

  • The student can submit an assignment consisting of multiple files with a very simple command. Typically the command would be something like "bundleP1".
  • The instructor specifies the list of files required and the student is notified if any are missing.
  • The student receives a warning if she is about to overwrite a previously submitted assignment.
  • By creating separate instances of bundle the instructor can arrange to receive more than one assignment from students in the same time frame. Submissions for projects are give distinguishing suffix labels, e.g.:
    jdoe.P1
    jdoe.P2
    

Bundle is a Perl script that is designed to be adapted by the instructor. After editing the Perl script to configure it for the class and the assignment, the instructor will need to install the script in such a way as to make it executable by student accounts. See the following section for set-up instructions.

Outline of Setup Procedure

  1. Create a "bin" directory for the class. One possible location is within the "public" directory in the class umbrella. (Examples are based on a hypothetical /home/solaris/ieng9/cs131f umbrella directory.)

    mkdir /home/solaris/ieng9/cs131f/public/bin
    
  2. Go to the bin directory:

    cd /home/solaris/ieng9/cs131f/bin
    
  3. Make a copy of the prototype bundle script:

    cp /software/common/lib/bundle.pl bundleP1
    

    Where "bundleP1" is the name that you choose for the command and is the command that students will run.

    Note

    We strongly recommend that you NOT name the copy "turnin" or any variant of that. Students may need to use the basic turnin command in other classes and it will be very confusing if these utilities with their different properties are not kept distinct in their minds.

    You can make additional copies of the bundle prototype (bundleP2, bundleP3, ...) if you want the students to be able to hand in various assignments (P1, P2, P3, ...) in the same time frame.

  4. Edit the bundleP1 script, configure the script for your class following the guide comments in the top part of the file. This step includes specifying the list of files needed for the (P1) assignment.

    Note, advanced configuration features such as the ability to specify a maximum file size for the submitted bundle and a time window during which a project may be turned in, are available through turnin project configuration files. See man turnin for details. Here is a small example of a configuration file that might be named turnin.dest/CONFIG.P1

    MAXFILESIZE=40kb
    TURNINSTART=98:1:6::12:00:00
    TURNINEND=98:5:26::20:05:00
    
  5. Set permissions on the bundle file and the bin directory so that the script will be executable by the world.

    chmod 755 bundleP1 ../bin
    
  6. Add the bin directory to the student's PATH. Where and how this is done depends on whether or not the class is OCE compatible, i.e. if most of the students use their OCE account for the class, then you will need to modify the class "prepfile". Otherwise modify the class "locallogin" file. The appropriate file (prepfile or locallogin) can be found in the "public" directory under the umbrella. Example file names:

    /home/solaris/ieng9/cs131f/public/prepfile (for OCE compatible)
    /home/solaris/ieng9/cs131f/public/locallogin (for non-OCE-compatible class)
    
  7. In the appropriate file (prepfile or locallogin) insert a command like the following to add the class bin directory to the student's path.

    set path = ( $path /home/solaris/ieng9/cs131f/public/bin )
    
  8. Finally, set up the turnin.dest directory

Giving Students Instructions for Using Bundle

After you, as the instructor (or TA), have set up one or more instances of the bundle script (bundleP1, bundleP2, ...) for your class, tell the students that they can hand in assignments as follows:

  • If it is an OCE class, do the prep command for the class, e.g.

    prep cs131f
    
  • Go to the directory that contains the files for the assignment.
  • Enter the command name that the instructor established, e.g.:
    bundleP1