|
Introduction
Automatic collection of assignments is enabled with three commands: csclass, csstudents, and csrun. The last of these
(csrun) is customized by you for each assignment.
csrun
You will need to edit the csrun script to indicate the name of the file(s) you wish to collect from each student's
class directory. You can copy this file from /home/cs/csrun. You should rename it in your directory to indicate the
assignment (e.g. cs202lab2). You will also indicate whether these are program files that should be compiled and executed.
At the beginning of the csrun script are the following lines:
compiler=g++
result=
subdir=lab1
limit=500
maxtime=6
progs='lab1.cpp word.cpp'
other='word.h table.h'
If you don't wish to compile and execute the collected files, the compiler variable should be set to null (i.e. no
characters after the equal sign). The result variable is initially set to null, indicating that all output from the
program goes to standard output (cout) or to standard error (cerr). If an output file is generated by the student's
program, set result equal to the name of that file.
If students were told to put the solution into a subdirectory of their class directory, indicate the name of the
subdirectory as subdir. If no subdirectory is used, set the subdir variable to null. The output files generated by student
programs initially are limited to 500 lines of output. If you want to change this limit, just change the value of the
lines parameter. Likewise, the program can run for no more than 6 seconds. If you want to change this, modify the value of
the maxtime parameter.
If there are programs to be compiled, list the names within the apostrophes following the word progs. If there are other
files to be collected, files that aren't compiled, list those names in other.
If you only wish to collect files, and not attempt compilation or execution, then list the file(s) to be collected as
other. You might also need to set subdir. All other parameters should be set to null.
csclass
This command is used to collect assignments from individual students at an indicated day and time. You must first have
edited the corresponding action script (csrun) as specified previously. Your current directory should be the directory
containing the action script (which generally will be your home directory). You should create a subdirectory within your
home directory or class directory to contain the collected files and output. Create this directory with a command of the
form
mkdir cs202p1
You are then ready to execute the command
csclass
You will then see the following dialog:
What is the class directory (e.g. cs202smith)?
Enter the name of your class directory. You will then be asked
What is the shell script name?
This will be csrun or another name if you have renamed the file for this run. Next you see
Destination directory for log files?
Enter the name of the directory you created to hold the output. The next question is
Collection time (e.g. now, 15:30)?
Enter now if you want the collection to begin immediately. Otherwise, enter a time using military time with a colon (as
shown here). If you indicated now, execution begins immediately. If you entered a time, you see the following
question:
Collection day (e.g. today, Friday)?
Enter either today or the day of the week that the assignments should be collected. Your assignments will be collected
on the indicated day and time.
csstudents
The csstudents process is very similar to csclass with two major differences: (1) you list the username of each student
whose work is to be collected, and (2) the collection is always done immediately and not at some future time. This might
be used, for example, if late work is being accepted from some students or if there was some problem when the collection
was done for the entire class. It can also be used to test your csrun script. The following questions appear when you run
csstudents:
What is the class directory (e.g. cs202smith)?
What is the shell script name?
Destination directory for log files?
Press Enter if there are no more students.
What is the student's username?
The first three questions are answered as in csclass. Continue entering student usernames and pressing Enter until all
have been entered. Pressing the Enter key in response to the last question will terminate the list of students whose
work is to be collected.
dropclass
When a student is no longer enrolled in a class, there is no need to continue to collect assignments from that student.
However, the submit scripts described above will collect work from every student having a class directory, whether or not
that student is still enrolled in the class. The dropclass command allows the student or the instructor to specify that
the student's work should no longer be collected automatically for that class.
Any student can exclude himself/herself from automatic assignment collection for a class by executing the command
dropclass directoryname
The instructor can drop any student by executing a command of the form
dropclass directoryname username
The dropclass command doesn't move the files from the class library to the student's home directory, nor does
it actually delete the directory. It simply sets a flag that instructs csclass to skip that student.
Processing log files
After all of the files have been collected, the directory you specified will contain a log file for each student as well
as a directory with all of the collected files. If you want to print the log files, just go to the directory and print the
files. For example, to print the log files on the CS Grad Assistants printer, you could enter these commands:
cd cs202p1
galpr *.log
Suggestion
Rather than printing all of these log files, you could grade the files by examining them online. Comments could be put
into a text document for the student, which can be saved in the student's class directory, or printed and returned.
The log file itself could be copied to the student's class directory. This approach saves quite a bit of paper and
prevents printing out files that students already have copies of in their class directories.
|