MCQFM - CETIS Wiki

Download Report

Transcript MCQFM - CETIS Wiki

MCQFM
Multiple Choice Five Methods
Origins
• TML (Tutorial Markup Language) project led by
the University of Bristol (1997/8)
http://www.ilrt.bris.ac.uk/netquest/about/lang/
• Had an idea for a language which would
describe tutorials – mixtures of content and
questions essentially
• Neat Javascript engine for questions:
• http://web.archive.org/web/19980611031649/http
://www.ilrt.bris.ac.uk/~ethm/jscripts/js-intro.htm
Missou’s Javascript
• Superb documentation but very much a
technical understanding required.
Multiple Choice Question
•
•
•
•
•
•
•
•
•
1. Multiple Choice Question
You need the following parameters for this question type:
a question
a list of possible choices and the state of each of them
the feedback to display when the “Mark Answer” button
is clicked
a link which has to be a valid URL
score1 which is the maximum score
score2 which is the score if the answer is correct after a
second attempt
idx which is the question index (starts at 1 and then has
to be incremented by 1 when adding a new question on
the same web page)
Parameters
Parameter
Value
Question
1. What is Tintin's dog name in the English albums?
Choices
Milou, Snowy, Struppi, Spokie, Melok
States for those choices
0,1,0,0,0
(Note: 0 represents an incorrect choice whereas 1 indicates the
correct answer. Because only one answer is correct, the number 1
should only appear once. In this example, choice 2 - Snowy - is the
correct one).
Feedback
Tintin's dog is called <I>Snowy</I> in the english and american
versions. He is called <I>Milou</I> in French, <I>Struppi</I> in
German, <I>Spokie</I> in Afrikaans and <I>Melok</I> in Russian.
(Note that you can add any HTML code)
Link
http://www.tintin.be/Personnages/tableau_2.htm
Score1
2
Score2
1
Idx
1
(Note: this index is used in the form name, here <FORM
NAME="question_1">)
HTML
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
<FORM NAME="question_1">
<DL><DD><B>1. What is Tintin's dog name in the English albums?</B></DD>
<DD><BR><DL>
<DD><INPUT type="radio" name="mcq" value="0">Milou</DD>
<DD><INPUT type="radio" name="mcq" value="1">Snowy</DD>
<DD><INPUT type="radio" name="mcq" value="0">Struppi</DD>
<DD><INPUT type="radio" name="mcq" value="0">Spokie</DD>
<DD><INPUT type="radio" name="mcq" value="0">Melok</DD>
</DL></DD>
<DD><BR>
<INPUT type="hidden" name="vscore1" value="2">
<INPUT type="hidden" name="vscore2" value="1">
<INPUT type="hidden" name="endScore" value="0">
<INPUT type="hidden" name="attempt" value="0">
<INPUT type="hidden" name="endAttempt" value="0">
<INPUT type="hidden" name="feedback" value="Tintin's dog is called <I>Snowy</I> in the english
and american versions. He is called <I>Milou</I> in French, <I>Struppi</I> in German,
<I>Spokie</I> in Afrikaans and <I>Melok</I> in Russian.">
<INPUT type="hidden" name="link" value="http://www.tintin.be/Personnages/tableau_2.htm">
<INPUT type="hidden" name="work" value="false">
<INPUT type="button" name="exercise" value=" Mark Answer " onclick="mccheck(this.form)">
<INPUT type="button" name="solution" value="Show Solution" onclick="lmccheck(this.form)">
</DD></DL>
<DL><DD><I>Your score for this question is:</I> <INPUT type="text" name="score" size="3" value=""
onChange="checkScore(this.form)">. &nbsp;&nbsp;&nbsp; <I>You needed </I><INPUT type="text"
name="vattempt" size="3" value="" onChange="checkScore(this.form)">
<I>attempt(s)</I></DD></DL>
</FORM>
Euromet Project
• Very old EU FP5 project to teach meteorology
over the internet
• Used a system of macros to enforce stylistic
commonality across teaching modules
• In addition to the above general design requirements, EuroMET
developed page-formatting macros to ensure that each module
conformed to a common style. For example, the macros insert
headers and footers, standard graphic icons, etc. The software used
to effect the replacements is a PERL 5 script called esr2htm derived
by EuroMET from a similar tool freely available from WebTechs
Corporation. This script automatically replaces any macro names it
finds within the source files with a corresponding block of HTML
• (http://www.ascilite.org.au/conferences/wollongo
ng98/asc98-pdf/wrightwrightbell0027.pdf)
Using Macros for Formatting
• See http://page.mi.fuberlin.de/~lernmat/oldbin/toolkit/fdtfull.html
Question Generator
• Would generate a javascript based
multiple choice page, from a simple text
representation of the question, which
would be preprocessed to have macros
added, and these in turn would be
expanded to have the javascript
• http://homepages.feis.herts.ac.uk/~comqsj
b/quiz.htm
The Value of Simple Text input
• Grabbing a quiz or some questions from
somewhere else
• Easily obtain questions sourced from
colleagues
The limitations of simple text input
• Sophisticated options such as negative
marking of particular distractors, branching
within questions are almost impossible to
represent without losing the immediate
meaningfulness of the question
• Similar example in Wikimedia – a very
expressive pseudo-tagging notation
Existing Code
• cgi_quiz_cruncher.pl
– Perl script which reads input sent by a form over the
web
– Two parameters – the text to be converted, and the
output format – currently either html or qml
• quizCruncher.pm
– Perl module which surrounds the submitted text with
Macros in order to be sent to the macro preprocessor
• macroCruncher.pm
– Perl module which just expands macros within a body
of text
Example
---MCQ--What is the capital of the United States?|Its Washington|2
New York
Los Angeles
@Washington
---ORDER--Put the players together with their nationality
Venus Williams@American
Martina Hingis@Swiss
Anna Kournikova@Russian
---CLOZE--Fill in the blanks here:
The quick brown @fox@ jumped over the @lazy@ dog.
Q1 Becomes
_JSMCQ
_MCQB(1,What is the capital of the United
States?)
_MCQA(New York,0,0)
_MCQA(Los Angeles,0,1)
_MCQA(Washington,1,2)
_MCQE(1,Its Washington,2)
_QMMCQOUTCOME_(0,Answer 0,0)
_QMMCQOUTCOME_(1,Answer 1,0)
_QMMCQOUTCOME_(2,Answer 2,1)
Q2 Becomes
• _ORDERB(Put the players together with their nationality)
• _ORDERA("American" "Russian" "Swiss",Venus
Williams,0)
• _ORDERA("American" "Russian" "Swiss",Martina
Hingis,1)
• _ORDERA("American" "Russian" "Swiss",Anna
Kournikova,2)
• _ORDEROUTCOME("0" MATCHES "American",0)
• _ORDEROUTCOME("0" MATCHES "Swiss",0)
• _ORDEROUTCOME("0" MATCHES "Russian",0)
Q3 Becomes
_CLOZEB(Fill in the blanks here:)
_CTB_ The quick brown _CTE_
_CTFIELD_(0,5)_CTB_ jumped over the _CTE_
_CTFIELD_(1,6) _CTB_ dog.;_CTE_
_CTOUTCOME_("0" MATCHES NOCASE "fox"
AND "1" MATCHES NOCASE lazy" right,1)
_CTOUTCOME_(OTHER,wrong,0)
_CLOZEE
HTML (Q1)
<FORM NAME="question_1">
<div align="left">
<table border="1" width="96%">
<tr>
<td width="80%">&nbsp;<p><b>1. What is the capital of the United States?</B></P>
<DL>
<DD><INPUT type="radio" name="mcq" value="0">New York</DD>
<DD><INPUT type="radio" name="mcq" value="0">Los Angeles</DD>
<DD><INPUT type="radio" name="mcq" value="1">Washington</DD>
</dl></td>
<td width="20%" align="center">
<INPUT TYPE="button" VALUE="Mark!" onClick="mccheck(document.question_1)"><BR><BR>
<INPUT TYPE="button" VALUE="Solve!" onClick="lmccheck(document.question_1)"></td>
</tr>
<tr>
<td colspan="2"><div align="center"><center><p><i>Your score for this question
is:</i> <input type="text" name="score" size="3" value onChange="checkScore(this.form)">.
&nbsp;&nbsp;&nbsp; <i>You needed</i> <input type="text" name="vattempt" size="3" value
onChange="checkScore(this.form)"> <i>attempt(s)</i></td>
</tr>
</table>
</div>
<input type="hidden" name="vscore1" value="2">
<input type="hidden" name="vscore2" value="0">
<input type="hidden" name="endScore" value="0">
<input type="hidden" name="attempt" value="0">
<input type="hidden" name="endAttempt" value="0">
<input type="hidden" name="feedback" value="Its Washington">
<input type="hidden" name="link" value>
<input type="hidden" name="work" value="false">
</form>
QML
• Questionmark’s proprietary language
• Simpler than QTI – does not intend a
question as being anything more than one
interaction
QML (Q1)
<QUESTION DESCRIPTION="1_What_is_the_capital_of_the_United_Stat" TYPE="text/html">
<CONTENT TYPE="text/html" >
1 What is the capital of the United States?</CONTENT>
<ANSWER QTYPE="MC" SHUFFLE="N">
<CHOICE ID="0" TYPE="text/plain" >New York</CHOICE>
<CHOICE ID="1" TYPE="text/plain" >Los Angeles</CHOICE>
<CHOICE ID="2" TYPE="text/plain" >Washington</CHOICE>
</ANSWER>
<OUTCOME CONDITION=["0"] ID="Answer 0" SCORE="0" TYPE="text/plain">
</OUTCOME>
<OUTCOME CONDITION=["1"] ID="Answer 1" SCORE="0" TYPE="text/plain">
</OUTCOME>
<OUTCOME CONDITION=["2"] ID="Answer 2" SCORE="1" TYPE="text/plain">
</OUTCOME>
</QUESTION>
Bringing the Question Generator
Up to Date
•
•
•
•
Currently textmacros HTML/QML
Proposed
TEXTBQLHTML/QTI/QML
And also
– QTI BQL TEXT
– QMLBQL TEXT
BQL
• Basic Question Language
– A very reduced subset of QTI type
functionality with still an emphasis on
expressivity of notation
E.G – as BQL
<question type=“mcq”>
<prompt>What is the capital of the USA</prompt>
<alternative score=“0”>
<text>New York</text>
<feedback>No that is the financial capital</feedback>
</alternative>
<alternative score=“0”>
<text>Los Angeles</text>
<feedback>No that is the entertainment capital</feedback>
</alternative>
<alternative score=“1”>
<text>Washington DC</text>
<feedback>Yes, this is the political capital</feedback>
</alternative>
</question>
XSLT
• Then run transformations over the BQL to
generate
– XHTML
– QML
– QTI
• And other transformations to turn back
– QTI
– QML
• To QTEXT
Current Progress
• Establishing a schema for BQL
• Had some problems in getting R2Q2 to
actually display user generated content
rather than the content already packaged
with the system
This Works
At first we didn’t understand
Xml file inside the content package
Physical location of the content package
on the hard disk
Now We Do!
Help we might like:
1) How to produce a simple consuming
application for R2Q2 – such that our
generated qti gets immediately passed to
R2Q2 and returns the requisite html that
may be marked!
2) How to get such a web service working
inside another web application such that
interrogation functionality can be built in
Smirkboard
http://smirkboard.herts.ac.uk:8080/smirkboar
d2
to work a bit like
http://smirkboard.herts.ac.uk/multimedia