|
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 5000 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.
|