Problem
You want to decide which grading plug-in to select to process one of your assignments.
Solution
This recipe assumes that you have already created an assignment, and that you have already added one or more plug-ins to the grading scheme for it (see CreateAnAssignment).
Remember that each submission is processed by a pipeline of one or more grading plug-in(s) that are applied in order.
Follow the instructions in CreateAnAssignment to get to your assignment's properties page.
Under the properties for all instances of this assignment, the grading scheme includes a list of steps in the processing pipeline. Each step is a separate plug-in.
When you click the "Add" button to add another step, you will be able to choose which plug-in you would like to add to your assignment. You will see a list of all published plug-ins on the server, plus any personal plug-ins that you have installed.
A published plug-in is one that is available for all instructors to use. A plug-in that has not been published is only accessible to the individual who installed it (and any administrators).
The plug-in that you choose will depend on the kind of assignment you want to set up. Some of the available plug-ins are described below.
The JavaTddPlugin provides all-in-one services for grading Java assignments where students write their own tests. It takes care of compilation, testing, and feedback generation, and does not require any other plug-ins.
The CppTddPlugin provides all-in-one services for grading C++ assignments (compiled using g++) where students write their own tests using CxxTest. It takes care of compilation, testing, and feedback generation, and does not require any other plug-ins.
The CppStdioPlugin provides all-in-one services for grading C++ assignments (compiled using g++) that produce programs that take input from stdin and produce output on stdout. It supports student-written tests that amount to stdin files to be piped into the program; there is no expected output, but the actual results are shown to the student in generated feedback. It also supports instructor-provided reference input files that are also piped through the student's program, with results only visible to graders and instructors. This plug-in takes care of compilation, execution, and feedback generation, and does not require any other plug-ins.
The PascalCompilerPlugin identifies and compiles a single Pascal source file in a student's submission. This plug-in cannot be used on its own--it simply generates an executable, together with any logged compiler output, for use by other plug-ins. It is usually used in combination with the TextTddPlugin and the GenericTddFeedbackPlugin.
The TextTddPlugin handles pseudo-TDD-style testing of an executable program that reads input from stdin and produces output on stdout. This plug-in reads test input and expected output from a test definition file (which is plain text). It pipes the input from all the test cases through the program, collects the output from stdout, and compares it against the expected output in the test cases. This plug-in cannot be used on its own--it just runs tests, collects results, and generates summaries.
The GenericTddFeedbackPlugin handles feedback gathering and generation for various other plug-ins that do not perform their own feedback formatting. It gathers logged output left by earlier plug-ins and generates a nice HTML summary report, together with pretty-printed HTML code views for languages other than Java or C++.
The DrSchemeTddPlugin handles TDD-style grading of Scheme code written using DrScheme, containing embedded unit test cases in the style of that tool. This plug-in does not generate its own feedback, and is usually used in combination with the GenericTddFeedbackPlugin.
The PrologTddPlugin handles TDD-style grading of Prolog code written using plain-text test case descriptions. This plug-in does not generate its own feedback, and is usually used in combination with the GenericTddFeedbackPlugin.
Once you have added one or more plug-ins, you can click the edit icon next to that step to ConfigurePluginSettings.
Discussion
Documentation for most published plug-ins is provided in this cookbook.
Which plug-ins are available may depend on your server's configuration. For example, the PrologTddPlugin will probably be unavailable when Prolog is not installed on the server. ContactYourAdministrator if you wish to use a plug-in that is not available and have questions.
You can InstallaNewPlugin if one is available.
You can WriteaPlugin of your own if none is available for your task.
See Also
CreateAnAssignment
ConfigurePluginSettings
InstallaNewPlugin
WriteaPlugin
SetPluginGlobalProperties
JavaTddPlugin
CppTddPlugin
CppStdioPlugin
PascalCompilerPlugin
TextTddPlugin
GenericTddFeedbackPlugin
SchemeTddPlugin
PrologTddPlugin
Contributors
-- StephenEdwards 2006-08-13 23:21:00
Comments