Pritchitt, Elizabeth
 
Expanded Grading Program
Elizabeth Pritchitt
December 2002
Advisor: Dr. Rebecca Bruce

 


 

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.