The quiz extension consists of very simple markup. This page is long because of the many possibilities which the quiz extension opens up. For a simpler and colourful guide to quizzes suitable for beginners, try the simple quiz help page.
مرور کلی
نسخهها
Version 1.0 of the quiz extension is now (20 May 2007) active on Wikiversity.
This documentation covers all the major features and most of the minor ones.
A few exotic features are not yet covered, such as shuffle control using {X} {!X} {/X} tags.
How to insert a quiz into your page
The quiz tag
wikitext (what you write)
rendering (what you see)
comments
<quiz> insert questions here </quiz>
The quiz tags do the following:
They insert some standard quiz options at the top and a colour-key for marking. The colour-key only appears when the question is marked.
They add a "submit" button at the bottom for when the learner has finished the quiz and wants it marked.
Everything between the quiz tags is parsed by the quiz extension and turned into questions if possible.
Theoretically it is possible to put quiz tags around each individual question, allowing a learner to mark each one in turn.
Shuffling questions: if the shuffle questions button is shown, the questions can be shuffled by clicking the button. This only works so long as the quiz-taker has not started to answer the questions. Once the quiz-taker starts answering, the order is locked.
<quiz display=simple> insert questions here </quiz>
Importantly, the addition of "display=simple" as an attribute of the quiz tag removes the points table at the top.
This is useful for short quizzes, and especially for situations where you insert single questions between text blocks.
<quiz shuffle=none> insert questions here </quiz>
If you'd like to keep the points table but get rid of the button for shuffling questions, use shuffle=none as shown.
Inserting questions
The types of questions available are show below.
An important point is that each question must be separated by a blank line, otherwise they are merged together into one question.
How to use the examples
In the examples on this page, there is both wikitext and rendering. The wikitext shows you the code, which you can copy and paste into your pages, or just learn and understand. The rendering shows you what the result will look like.
Copying and pasting
The markup has been slightly simplified in order to help understanding. If you copy and paste, you must insert <quiz> tags before and after the markup. You may wish to use the quiz tags with the "display=simple" option as shown above.
Note that the actual example below also use tables for clarity. If a quiz is inserted into a table, this modifies the appearance of a quiz - for example, boxes appear around some elements in the quiz. If you don't use a table, these boxes disappear and your quiz will look plainer.
When pasting, ensure that all the symbols are aligned with the left of the page - i.e. if any line begins with a space, formating errors may occur.
Live demos
All the examples below should work. Don't be afraid to try them out. Hitting the correction button is OK - it won't change or damage this page.
This type of question allows a single correct response and any number of distractors (3 distractors are shown, but it could be one, or nine, or any other number).
The correct answer may be in any position, and is marked by a plus sign. Distractors are marked by minus signs.
The wikitext shown should be inserted between <quiz> tags as shown above.
Answers appear in the same order as in the markup, so it is advisable to shuffle them before exporting into markup.
Every symbol, i.e. |, +, - and any other symbols listed further down, must be on a new line.
The symbols must begin the newline - no spaces before them.
The borders are a result of the border around the wiki table. They are optional.
A distractor is the standard term for a multiple choice option which is wrong.
The () symbol in the type attribute is supposed to look like a radio button.
To see the full colour code (with four colours), try doing the quiz and clicking the correction button.
A second click on a radio button (i.e. a click on an already clicked radio button) will deselect it.
True/false questions
wikitext
rendering
comments
{Bulgaria and Rumania joined the
European Union in 2007.
|type="()"}
+ TRUE.
- FALSE.
{Switzerland is a member of the
European Union.
|type="()"}
- TRUE.
+ FALSE.
Syntax error
Bulgaria and Rumania joined the European Union in 2007.
TRUE.
FALSE.
TRUE.
FALSE.
In many quiz systems, true/false questions are listed as a separate kind of question, although they are really nothing more than a variety of multiple choice with a single response. The Wikiversity quiz extension correctly treats true/false questions as multiple choice with a single response. They are implemented in exactly the same way as above.
The first of the two examples shows a true/false question where the correct answer is "true".
The second of the two examples shows a true/false question where the correct answer is "false".
The examples are live and can be tried out now.
If you have a large number of true/false questions, a more efficient way to lay them out would be to use the tabular response type with radio buttons documented below.
This type of question is a multiple choice where more than one answer could be correct.
Correct answers are indicated by plus signs, incorrect ones by minus signs.
The wikitext shown should be inserted between <quiz> tags as shown above.
Answers appear in the same order as in the markup, so it is advisable to shuffle them before exporting into markup.
Every symbol, i.e. |, +, - and any other symbols listed further down, must be on a new line.
The symbols must begin the newline - no spaces before them.
The borders are a result of the border around the wiki table. They are optional.
The [] symbol in the type attribute is supposed to look like a checkbox.
Typed response (short answer)
wikitext
rendering
comments
{
|type="{}"}
Where was Aristotle born?
{ Stageira }
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{
|type="{}"}
Name Aristotle's famous mentor.
{ Plato }
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{
|type="{}"}
{ Alexander } was Aristotle's most
famous pupil.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
In a typed response the quiz-taker types an answer into a textfield using the keyboard.
The question type is signalled using "{}" as the argument of the type.
A textfield is inserted using curly brackets at the desired position of the textfield.
Note that curly brackets alone don't create a textfield. The curly brackets must have spaces between them and the enclosed text. { Answer } works, but {Answer} doesn't work.
The correct answer must be inserted between the curly brackets.
The textfield can be positioned anywhere in the text. Text before and after the text field will display as normal text.
The borders are a result of the border around the wiki table. They are optional.
A non-breaking space was inserted between { and |type= because some text is required at that position (slightly buggy thing).
{
|type="{}"}
Name a famous Greek philosopher.
{ Aristotle|Plato }
Typed responses often have more than one possible answer. You can list all the possible answers inside the curly brackets using a pipe to separate them.
In the example, there are two possible answers. Try it - the demo is live.
{
|type="{}"}
Name Aristotle's famous mentor.
{ Plato _6 }
To modify the size of the textfield, add an underscore and an integer following the answer within the curly brackets to represent the number of glyph spaces you need.
This number depends, however it should be around n+2 (where n is the number of glyphs in the answer)
{ Complete each box with a synonym of the following words
|type="{}"}
<ol>
<li>free: { gratis _6 }</li>
<li>well: { good _4 }</li>
</ol>
You can group the items into one only question.
Do not use line breaks between </li> and <li>.
{
|type="{}"}
Where did Aristotle die?
{ Chalcis (i) }
Case-sensitivity: typed responses are case-sensitive unless you add (i) at the position shown. The (i) stands for case-insensitive.
Gapfill / cloze
wikitext
{Complete the text from the Wikipedia article on [[w:Aristotle|Aristotle]].
|type="{}"}
Aristotle was born in { Stageira _8 } in Chalcidice. His parents were { Phaestis _8 }
and { Nicomachus _10 }, who became physician to King Amyntas of Macedon. Aristotle
was educated as a member of the aristocracy. At about the age of { eighteen|18 _8},
he went to { Athens _6 } to continue his education at { Plato _5 }'s Academy.
Aristotle remained at the Academy for nearly twenty years, not leaving until after
Plato's death in { 347 _3 } BC.
rendering
comments
Gapfills (or cloze exercises) are created in almost exactly the same way as typed responses. The difference is that you just write a bit more text and add a few more textfields.
The gapfill above was additionally placed in a box and centered using a wiki table.
Numerical response
wikitext
rendering
comments
{In which year was Plato born?
|type="{}"}
He was born in { 427-428 _5 } BC.
At Wikiversity, numerical responses are a subtle modification of typed responses. The syntax is identical, except for some additions which allow numerical ranges and numerical tolerances if the answer is a number.
In the example to the right, the uncertainty over Plato's date of birth is reflected in the answer by using a range. A simple hyphen between the numbers permits all numbers inbetween.
{How far is the earth from the sun?
|type="{}"}
{ 91-95 _3 } million miles.
This is another example of a range.
The _3 ensures that the textfield doesn't get too wide.
{What is 10 times 10?
|type="{}"}
{ 100 5% _3 }
This is an example of specifying a tolerance. The critical part is "5%", which specifies the expected tolerance of 5%. In this example, values between 95 and 105 should work, but try it.
At the time of writing, the underscore method of limiting the size of the textfield does not yet work in combination with a tolerance specification, so a range may be a better method of specifying numerical accuracy.
Because numerical responses are, programmatically, a sub-variety of typed response, numerical and text responses can be freely mixed in a gapfill as shown to the left.
Tabular response type with radio buttons
wikitext
rendering
comments
{Question
|type="()"}
| A | B | C
+-- A is correct.
-+- B is correct.
--+ C is correct.
Add extra radio buttons by reduplicating the +/- signs at the beginning of each row.
There should only be one plus sign in each row.
Specify columns headers by using pipes at the top.
Tabular response type with checkboxes
wikitext
rendering
comments
{Question
|type="[]"}
| Option A | Option B | Option C
++- Question 1
(Clue: A and B are correct).
-++ Question 2 (
Clue: B and C are correct).
--+ Question 3
(Clue: C is correct).
This type of question has multiple everything.
Correct answers are indicated by plus signs, incorrect ones by minus signs. By reduplicating the +/- signs at the beginning of each row, extra checkboxes can be added.
The column headers are defined using pipes at the top as shown.
Advanced stuff
Inserting feedback
wikitext
rendering
comments
{Question
|type="()"}
+ The correct answer.
|| Feedback for correct answer.
- Distractor.
|| Feedback for distractor.
- Distractor.
|| Feedback for distractor.
- Distractor.
|| Feedback for distractor.
Feedback is text which is initially hidden, and then shown to the user when they submit the quiz for correction. Feedback typically serves the purposes of encouragement, explanation, congratulation and commiseration.
Feedback is set with all types by using a double vertical line || immediately after a response.
The pipes beginning the feedback section must be on a new line.
Unlike some other quiz systems, all feedback items are displayed on correction. With other quiz systems, the norm is to display the feedback only for those items which were selected by the user.
To try out the feedback effect, choose a response and click the correction button. The feedback will then appear.
Inserting blocks of text between questions
wikitext
rendering
comments
{This is the first question.
|type="()"}
+ The correct answer.
- Distractor.
- Distractor.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{This is a block of text.}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{This is the second question.
|type="()"}
+ The correct answer.
- Distractor.
- Distractor.
Text blocks can be inserted between questions by placing it between curly brackets {....}.
The text blocks can contain wiki markup, such images, hyperlinks and formatting tags, as shown in this example.
Using images as answers
wikitext
rendered
comments
<quiz display=simple>
{ Which of these are not nuts? }
-
</div>
[[Image:Walnut03.jpg|<span lang="en" dir="ltr" class="mw-content-ltr">100px</span>]]
<div lang="en" dir="ltr" class="mw-content-ltr">
+
</div>
[[Image:Peanuts.jpg|<span lang="en" dir="ltr" class="mw-content-ltr">100px</span>]]
<div lang="en" dir="ltr" class="mw-content-ltr">
+
</div>
[[Image:Malus-Idared on tree.jpg|<span lang="en" dir="ltr" class="mw-content-ltr">100px</span>]]
<div lang="en" dir="ltr" class="mw-content-ltr">
-
</div>
[[Image:Pistachios in a bag.jpg|<span lang="en" dir="ltr" class="mw-content-ltr">100px</span>]]
<div lang="en" dir="ltr" class="mw-content-ltr">
-
</div>
[[Image:Chestnut.jpg|<span lang="en" dir="ltr" class="mw-content-ltr">100px</span>]]
<div lang="en" dir="ltr" class="mw-content-ltr">
+
</div>
[[Image:P10802511.JPG|<span lang="en" dir="ltr" class="mw-content-ltr">100px</span>]]
<div lang="en" dir="ltr" class="mw-content-ltr">
</quiz>
Unfortunately there does not yet seem to be a way of putting these into a row or tabularising the layout.
Although this has not been done here for reasons of space, it is generally good practice to specify some kind of tooltip text for the images, but try to avoid text which gives away the answer.
Warning: At the moment there is a problem with the toc.
Lists and indents: using #, * and :
Adding music and sound effects
This is similar to insertion of images. Standard wiki markup is used.
Configuring points
wikitext (what you write)
rendering (what you see)
comments
<quiz points="3/1!">
{Try this question now.}
+ Plus 3 points for this one.
- Minus 1 point for this one.
</quiz>
By default, there is 1 point for a correct answer and 0 for a wrong answer.
You can change this for the whole quiz by using a points attribute for the quiz tag.
The format is "X/Y!", where X gives the points for a correct answer and Y the points for a wrong answer. The Y points are expressed as a positive integer but are subtracted from the score.
Due to a bug, the points attribute has no effect if display=simple is used (version 0.9.2).
Values like 1.25 or 2.5 are allowed
<quiz display=simple>
{Try this question now.
|type="()" }
+ 1 points for this one.
- 0 points for this one.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{Try this question now.
|type="()" coef="2"}
+ 2 points for this one.
- 0 points for this one.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{Try this question now.
|type="()" coef="4"}
+ 4 points for this one.
- 0 points for this one.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{Try this question now.
|type="()" coef="0.5"}
+ 1/2 point for this one.
- 0 points for this one.
</quiz>
A coefficient is a way of giving a weighting to a specific question. Normally all the questions have the same number of points. By default, they all have one point. By specifying a coefficient for each or any question, you can multiply the number of points for that question by the coefficient.
Coefficients can be both numbers above one and numbers between 0 and 1. If the coefficient is above 1, the question will receive greater weighting. If the coefficient is less than 1, the question will receive less weighting.
You must put inverted commas around the argument of the coef attribute.
Troubleshooting
You cannot test out the quiz while editing a page, because the submit button is grayed out. If you wish to test your new quiz, then create a sandbox page somewhere else first (e.g. as a subpage of your user page), then test the quiz there, and finally transfer the quiz to its final location (and test it again anyway).
The quiz was developed for IE6, IE7, Firefox (and Opera?), but display quality on Opera may not be optimal, and there may be display differences between browsers.
A reminder: each question must be separated by a blank line, otherwise the questions are merged together into one question.
Future stuff
Information about future developments is mainly available at the project space on MediaWiki. Lots of things are in planning.