Writing Mallard Questions and Material


Overview of writing Mallard material

This document in intended to provide an introduction to and reference for writing Mallard questions. It provides the basic information necessary for you to start writing your own material.

Mallard gives question authors great power and flexibility, while maintaining an easy-to-use format. Mallard accomplishes this by using a simple question format that allows authors to use externally defined "modules" (called input types) to generate and correct questions. Question authors do not need to design these input types, but if they desire it, the flexibility is there.

In order to write Mallard questions and develop quizzes, you must have a Mallard account with developer or course director access.

The first thing to clarify is the term question. In Mallard, a question is not necessarily a single queston, but can be a collection of multiple versions. This is particularly useful if you want to provide variety in student quizzes. When you create a quiz, you can tell Mallard to choose one version (or a number of versions) of a given question. You may wish to consider grouping different questions together as multiple versions of a single question if any of the following is true:

A question can be created in one of two ways: it can be created online or it can be uploaded. In either case, you will be asked to specify its filename- i.e.; its Mallard question ID. All Mallard filenames (names for questions, course materials, quizzes, images, etc.) must begin with a letter and consist of only letters, numbers, and underscores ("_"). Note that since blank spaces are not allowed, the underscore is typically used in place of a blank.

It is advisable to avoid using a naming scheme that reflects your course structure. For example HW23_P1 is a bad question ID, because it contains information about the current placement of the question in ithe course structure, instead of useful information about the question content. If you later decide to change the homework organization or use the question in another course, your question ID might need to be changed.

What are the basic components of a question file?

What are the basic question types?

The basic, most widely used question types are the following:

How can I get random values to appear in my questions?

When writing questions with the Arith type, which use numeric values, it is possible to have the question generate random values for the problem within a certain author-specified range, and then create answers to match these. To do so you will need to use the following tags:

How can I provide conditional feedback in my questions?

Conditional feedback is content (which may include HTML text, links to other pages or pop-up windows, and even material containing further questions!) which appears on the graded question page only when the student's answer fulfills certain conditions. Conditional feedback is commonly used to provide a hint tailored to the student's particular wrong answer only when that answer is supplied.

The conditions under which to display the optional content are given inside <if>, <elseif> and <else> tags. The content is given following the tag specifying this condition, and the entire section of conditional feedback is ended with the </if> tag. All of these tags should be located inside the <answer> </answer> block.

The <if>, <elseif> and <else> clauses work just as they do in a high level programming language. If the condition in the <if> tag is satisfied, the content following it (until the next <elseif>, <else> or </if> tag) is printed to the screen. If it is not, any number of <elseif> conditions are examined, one at a time, in an exclusive manner. If one of these is satisfied, the content following it is printed to the screen. Finally, if none of the above are satisfied, the content following a final <else> tag (and before the ending </if> tag) will be printed to the screen.
Note that it is allowed to have only an <if> tag, or an <if> tag followed by one or more <elseif> tags with no <else> tag. The conditional feedback area is always terminated with a final </if> tag.

Prototypes of the tags are given below:

Allowable relational operators are the same for all variables and comparison values:


Comments? Questions? General harassment? Mail it to maiko@wocket.csl.uiuc.edu