| A basic objective of the field of computer
science is to take advantage of computers' ability to
quickly perform repetitive tasks. Here at UNC-A, Dr. Bruce
uses a Perl script written by Dr. Brock to grade Java
programming assignments from her Introduction to Algorithms
(CSCI 201) class. The program, which runs on a Unix
platform, iteratively copies source files from each
student's ftp directory into a working directory, compiles
and runs the programs, and consolidates the source code and
output into a single file to be printed and used for
grading.
Previously, the script could only handle console Java
applications. The program has been expanded to allow the
processing of static Java applet assignments, capturing an
image of the applet's output to be used in grading. A
report generated for each student containing their homework
applet's source code, the HTML file used to load the applet,
and a picture of the applet's output is displayed in an HTML
file which can be viewed and printed for grading.
Dr. Bruce expressed concern about the amount of paper
used during the grading process. All student HTML report
files reference an external cascading style sheet (CSS),
which provides for quick modification of display format.
Such simple modification allows the font size, for instance,
to be changed easily, which is an advantage over the
original Unix file report. Considering the number of CSCI
201 students and the volume of programming assignments, a
reduced text size could save a large quantity of paper over
time.
To capture the output of the applet, Xvfb, virtual frame
buffer X server, was used to create a software graphic
server, upon which Sun's Java appletviewer was then run. A
dump of the window running the appletviewer was created
using xwd, X Window System window dumping utility. The dump
was then converted to a portable pixmap via the conversion
application xwdtopnm, and the pixmap was converted to GIF
via the application ppmtogif. System calls, process
management, file creation and manipulation, and much error
handling was involved throughout this project. |