Embedded Answers (Cloze) question type

Jump to: navigation, search

Note: You are currently viewing documentation for Moodle 2.0. Up-to-date documentation for the latest stable version is available here: Embedded Answers (Cloze) question type.


Embedded answers (Cloze) questions consist of a passage of text (in Moodle format) that has various answers embedded within it, including multiple choice, short answers and numerical answers.

There is currently no graphical interface to create these questions - you need to specify the question format using the text box or by importing them from external files.

Lots of people suggest that Hot Potatoes software is the easiest way to create Embedded answer (Cloze) questions. Once you have created your questions on your PC, you can then import them into Moodle's quiz module.


Question set-up

  1. Select the question category
  2. Give the question a descriptive name - this allows you to identify it in the question bank.
  3. Enter the passage of text (in Moodle format - see Format below) into the 'question text' field.
  4. Select an image to display if you want to add a picture to the question. For the student, it appears immediately above the question text.
  5. Set the 'default question grade' (i.e. the maximum number of marks for this question).
  6. Set the 'Penalty factor' (see Penalty factor below).
  7. If you wish, add general feedback. This is text that appears to the student after he/she has answered the question.
  8. The editor has been modified and allows you to test if your syntax is good. The different questions elements decoded will be displayed and syntax errors pinpoint. However, it cannot check if the question decoded is two questions in one because of an error syntax.
  9. Click Save changes to add the question to the category.

Penalty factor

The 'penalty factor' only applies when the question is used in a quiz using adaptive mode - i.e. where the student is allowed multiple attempts at a question even within the same attempt at the quiz. If the penalty factor is more than 0, then the student will lose that proportion of the maximum grade upon each successive attempt. For example, if the default question grade is 10, and the penalty factor is 0.2, then each successive attempt after the first one will incur a penalty of 0.2 x 10 = 2 points.

Question rendering

The question answer INPUT HTML ELEMENT ( Short and Numerical) or SELECT HTML ELEMENT (multichoice) are normally displayed in-line with the text.

The size of INPUT HTML ELEMENT ( Short and Numerical) will be adjustable to the length of the longest answer (good or bad) + a random number (0 to 15% total length).(Pierre Pichet 15:37, 26 January 2008 (CST))

The size will adjust to the length of the student response when displayed in the grading and feedback process.

The size of the SELECT HTML ELEMENT (multichoice) adjusts itself automatically to the longest answer.

Format

Questions consist of a passage of text (in Moodle format) that has various sub-questions embedded within it, including

  • short answers (SHORTANSWER or SA or MW), case is unimportant,
  • short answers (SHORTANSWER_C or SAC or MWC), case must match,
  • numerical answers (NUMERICAL or NM),
  • multiple choice (MULTICHOICE or MC), represented as a dropdown menu in-line in the text
  • multiple choice (MULTICHOICE_V or MCV), represented a vertical column of radio buttons, or
  • multiple choice (MULTICHOICE_H or MCH), represented as a horizontal row of radio-buttons.

The structure of each cloze sub-question is identical:

{ start the cloze sub-question with a bracket (AltGr+7)
1 define a grade for each cloze by a number (optional). This used for calculation of question grading.
:SHORTANSWER: define the type of cloze sub-question. Definition is bounded by ':'.
~ is a seperator between answer options
= marks a correct answer
# marks the beginning of an (optional) feedback message
} close the cloze sub-question at the end with a bracket (AltGr+0)

Now a very simple example:

{1:SHORTANSWER:=Berlin} is the capital of Germany.

For full details of the format for embedded-answers questions, see the detailed syntax explanation below.

NB: Be careful when copying a cloze type question into the WYSIWYG HTML editor, as line breaks tend to get added, which destroys the question.

If the correct answer contains } # ~ / " or \ you will have to escape them by putting a \ in front of each such character. The { shouldn't be escaped, this can be vital in getting TeX expressions to work. In the feedback ~ and } must be escaped otherwise it will be interpreted as the next answer or end of the short answer section respectively. Quotation signs: " can lead to trouble anyhow in both places. Use the HTML entity: & quot; (without the space between & and quot;). If you want to have Mathematical symbols there can be problems with the \ used in TeX expressions. One alternative can be to use unicode characters.

See the notes further down about numerical embedded question!

Examples

Example 1

The following text creates a simple embedded-answers question:

Match the following cities with the correct state:
* San Francisco: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Tucson: {1:MULTICHOICE:California#Wrong~%100%Arizona#OK}
* Los Angeles: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Phoenix: {1:MULTICHOICE:%0%California#Wrong~=Arizona#OK}
The capital of France is {1:SHORTANSWER:%100%Paris#Congratulations!
~%50%Marseille#No, that is the second largest city in France (after
Paris).~*#Wrong answer. The capital of France is Paris, of course.}.

And the result will be:

Cloze question type

Example 2

This question consists of some text with an answer embedded right here {1:MULTICHOICE:Wrong answer#Feedback for this wrong answer~Another wrong answer#Feedback for the other wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}

and right after that you will have to deal with this short answer {1:SHORTANSWER:Wrong answer#Feedback for this wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}

and finally we have a floating point number {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8~%50%23.8:2#Feedback for half credit answer in the nearby region of the correct answer}.

The multichoice question can also be shown in the vertical display of the standard moodle multiple choice. {2:MCV:1. Wrong answer#Feedback for this wrong answer~2. Another wrong answer#Feedback for the other wrong answer~=3. Correct answer#Feedback for correct answer~%50%4. Answer that gives half the credit#Feedback for half credit answer}

Or in an horizontal display that is included here in a table {2:MCH:a. Wrong answer#Feedback for this wrong answer~b. Another wrong answer#Feedback for the other wrong answer~=c. Correct answer#Feedback for correct answer~%50%d. Answer that gives half the credit#Feedback for half credit answer}

A shortanswer question where case must match. Write moodle in upper case letters {1:SHORTANSWER_C:moodle#Feedback for moodle in lower case ~=MOODLE#Feedback for MOODLE in upper case ~%50%Moodle#Feedback for only first letter in upper case}

Note that addresses like www.moodle.org and smileys :-) all work as normal:

a) How good is this? {:MULTICHOICE:=Yes#Correct~No#We have a different opinion}

b) What grade would you give it? {3:NUMERICAL:=3:2}

Cloze example.png

Some things to note:

  • The individual embedded answers are represented by the code in braces {}.
  • The number at the start is the 'weight', so in this case each answer contributes an equal share of the overall grade.
  • The correct option in each case is preceded either by an = sign or by %100%.
  • The text appearing after the # that follows each option is the feedback that the student will see if they choose that option.
  • If the student enters 'Marseille' in the final example, they score 50% of the total grade.
  • The asterisk * preceding the "Wrong answer" feedback in the final example means that the student will see this feedback if they enter anything other than "Paris" or "Marseille".
  • For multiple choice vertical or horizontal rendering there is no automatic numbering, though can added at each answer.

Detailed syntax explanations

  1. all question items within a cloze-type question are coded inside curled braces { }
  2. the number which appears between the opening brace and the colon {1: is the weighting of that item; if it is set at 1 for all the items, it needs not be specified, so you can have {:
  3. after the colon we have the item question type: MULTICHOICE, SHORTANSWER, NUMERICAL
  4. NOTE.- If you have installed the REGEXP question type plugin you can also use the REGEXP question type
  5. the syntax for MULTICHOICE and SHORTANSWER is the same; the only difference is in the displaying of the item to the student
  6. the order of the various answers is indifferent (except if you want a catch-all for wrong answers, see #13 below)
  7. a correct answer is preceded with the equal sign = or a percentage (usually %100%) - Note: The equal sign (=) doesn't seem to work with SHORTANSWER.
  8. a wrong answer is preceded with nothing or a percentage (usually %0%)
  9. you can allocate some points between 0 and 100 to some answers, if you put the appropriate percentage
  10. all answers except the first one are separated from one another by the tilde ~ sign
  11. answers can be followed by an optional feedback message, preceded with the # sign; if there is no feedback message, the # sign can be present or absent, it does not matter
  12. note that the feedback message and (since Pierre Pichet 24 May 2008 )in 1.9 the correct answer are displayed in a small popup window (if and when the correct and or feedback have been declared accessible to the students in the Quiz settings) upon mouse hovering. The popup window has a title "feedback" and you can use HTML tags to format your feedback. In some browsers (For example IE5.5) the form fields can cover part of the feedback windows. It can help to not have the formfields for the answers too close to each other.
  13. in the SHORTANSWER type you may want to put a catch-all (wrong) answer in order to send a "wrong, try again" feedback; you can do this by inserting an asterisk * as the very last expected answer in your formula
  14. unfortunately in MULTICHOICE MODE it is not possible to get the answers to be scrambled
  15. for MULTICHOICE, which is shown with a dropdown, you cannot have any HTML formatting. If you need subscript or superscripts you can use ISO (Unicode)characters like this: {1:MULTICHOICE:H₂O~C₆H₁₂O₆~=NH₃} (see more about ISO sub/superscripts here: wikipedia)

Numerical Cloze questions

From the student perspective, a numerical Cloze question looks just like a short-answer question or fill in the blanks.

The difference is that numerical answers are allowed to have an accepted error. This allows a continuous range of answers to be set. You can also express your answer in some different numerical formats. 23.4 23,4 (some countries use , as a decimal separator) and 2.34E+1 (meaning 2.34*10^1) would be interpreted as the same.

False positives

Note: the following examples of false positives do not apply to Moodle 1.8+, where you cannot use percentages or fractions as the answers in a numerical Cloze test; Moodle will generate an error if you try to save such a question. However the following may be relevant for earlier versions of Moodle.

More examples:	 
0.5 accepts .5 0.5 ,5 0,5 0.500 5e-1 5E-1 but not 1/2 50% 	 
50% accepts 50% 50.0% 5E1% 50/100 even 50/1000 50 but not 500/1000 0.5	 
1/2 accepts 1/2 1/3 1twenty but not 2/4 0.5 0,5 3/6 50% ½	 
½ accepts ½	 
HALF doesn't even accept HALF (maybe 0?)	 

If you want to accept several variants you can have them in the same {} but be careful, notice the "false positives" in bold!

Syntax for numerical Cloze questions

The format of a NUMERICAL Cloze question is similar to that of the other Cloze types and they can be mixed in the same question. As with other Cloze tests, you write your question or incomplete text, and add the Cloze code at the point where the student is supposed to enter their numerical answer.

An example of the syntax used is shown below:

Note: It is preferable to write the code in 'source code' mode. The WSIWYG editor can insert linebreaks that make the question not function. The linebreak in the example box below is for readability only! A problem with these questions is the readability of the code! :(

{2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8	 
~%50%23.8:2#Feedback for ½credit near correct answer}. 	 

In this example:

  • 2: is the question point weight, which means that this question has twice the weight in the final point(s) for this question as other partial answers with weight 1 (or no declared weight - you can start with {: for the default weight 1) in the same question.
  • NUMERICAL: says what kind of question it is. It must be in CAPS.
  • =23.8:0.1 = or %100% means correct if the answer is 23.8 with an accepted error of 0.1, then any number between 23.7 and 23.9 will be accepted as correct. (In the GIFT numerical question one can express an interval like this 13..15 or 14:1 but in Cloze only 14:1 works.)
  • #Feedback for correct answer 23.8 is preceded by #
  • ~%50%23.8:2 ~ is the separator for answer alternatives %50% means this answer would get 50% of the score that the more precise answer had gotten. Because the tolerance here is 2, 21.8 to 25.8 would get this point and feedback.

The feedback (which is seen within a popup window when the user hovers over the answer space) is formattable with HTML tags. For example, if you want an exponent, surround it with superscript tags: <sup> </sup>. You can even include pictures in the feedback popup, but you must clean out all " characters and save while still in source code mode (not WYSIWYG). So, this works in feedback popup:

#See this picture:<br><img src=Something.gif />}	 

but not this:

#See this picture:<br><img src="Something.gif" />}	 

(ALGEBRA and TEX filters don't work in the feedback popups, but they can be very useful in the question writing for math/science expressions). But you can use Unicode characters.

If you want to give feedback for any answer that didn't fit the intervals you already have specified feedback for, add some BIG general intervals, like for positive answers (if they aren't bigger than 20000 you could add:

~%0%10000.0001:10000#Feedback for unspecified not_right answers}	 

This would give feedback for anything from 0.0001 to 20000.0001 (that hadn't already gotten feedback). I didn't want to include 0 since that special case as well as negative ought to have specific reactions.

~%0%0#Hey! It can't be zero	 
~%0%-10000.0001:10000#We just want the size here,	 
so a negative value is not what we want}			 

Numerical questions could, before version 1.7, also have case-insensitive non-numerical answers. This is useful whenever the answer for a numerical question is something like +inf, -inf, NaN etc.

Importing CLOZE questions

If you try importing directly as CLOZE this text:

Single line per question! Match the following cities with the correct state:
* San Francisco: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Tucson: {1:MULTICHOICE:California#Wrong~%100%Arizona#OK}
* Los Angeles: {1:MULTICHOICE:=California#OK~Arizona#Wrong}
* Phoenix: {1:MULTICHOICE:%0%California#Wrong~=Arizona#OK}

The capital of France is {1:SHORTANSWER:%100%Paris#Congratulations!~%50%Marseille#No, that is the second largest city in France (after Paris).~*#Wrong answer. The capital of France is Paris, of course.}.

23+ 0.8 = {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8 ~%50%23.8:2#Feedback for ½credit near correct answer}. 	 

You would get all three questions as different parts of ONE question. (NOTE see that there are no linebreaks between the { } !)

Multiple CLOZE questions can be imported using the XML format:

<?xml version="1.0" encoding="UTF-8"?>
<quiz>

<!-- question: 1  -->
<question type="cloze">
<name><text>Book Test #1</text>
</name>
<questiontext>
<text><![CDATA[..............]]></text>
</questiontext>
<generalfeedback>
<text></text>
</generalfeedback>
<shuffleanswers>0</shuffleanswers>
</question>

<!-- question: 2 -->
<question type="cloze">
<name><text>Book Test #2</text>
</name>
<questiontext>
<text><![CDATA[............]]></text>
</questiontext>
<generalfeedback>
<text></text>
</generalfeedback>
<shuffleanswers>0</shuffleanswers>
</question>

</quiz>

You would put the question text including CLOZE code in the ....... spaces.

See also

This information was drawn from: