Thoughts on Converting VLE items to QTI 2.* and diverse related musings <ul><ul><li>Niall S F Barr </li></ul></ul><ul><ul>...
Introduction <ul><li>Three fairly recent areas of activity: </li></ul><ul><ul><li>Implementing a Common Cartridge reader, ...
Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement?...
Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><ul><li>That depends what the job is: <...
Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement?...
Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement?...
A slight digression... <ul><li>Interoperability isn't easy </li></ul><ul><ul><li>Extreme attention to detail is needed </l...
Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement?...
So, getting to the point... <ul><li>Mapping Moodle item types onto QTI. </li></ul><ul><ul><li>I started looking at mapping...
Moodle 'choice' item <ul><li>'Serialized' as XML but basically a very simple structure </li></ul><ul><li>Barely object ori...
Moodle 'choice' item 2 <ul><li>Mapping this to QTI 1.2 does result in a lot of code  </li></ul>{if $courselevelexport}<?xm...
Moodle 'choice' item 3 <ul><li>However interoperability has been achieved! </li></ul><ul><li>The QTI generated from this t...
Other item types <ul><li>So far in Moodle </li></ul><ul><ul><ul><li>Choice (single and multiple)‏ </li></ul></ul></ul><ul>...
A more generic approach <ul><ul><ul><li>A tool that takes Moodle XML, converts it to simple data structures and then to QT...
Where is this going? <ul><ul><ul><li>A simple online tool that con convert various VLE assessment formats into packages co...
Does it have to be QTI 2?
Can we make QTI 2.* simpler? <ul><ul><ul><li>Not really, but there already are several implementations, so do we need to? ...
Are there features missing? <ul><li>Back to 'assessment from the other side' </li></ul><ul><ul><ul><li>Open University sys...
Upcoming SlideShare
Loading in...5
×

Cetis Talk 27 Jan2009

388

Published on

Niall Barr of the University of Glasgow discusses some of his work mapping VLEs to QTI.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
388
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Cetis Talk 27 Jan2009

    1. 1. Thoughts on Converting VLE items to QTI 2.* and diverse related musings <ul><ul><li>Niall S F Barr </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>
    2. 2. Introduction <ul><li>Three fairly recent areas of activity: </li></ul><ul><ul><li>Implementing a Common Cartridge reader, (and then thinking that more it probably does than is needed or wanted.)‏ </li></ul></ul><ul><ul><li>Fixing the implementation of QTI 2.* export from Moodle </li></ul></ul><ul><ul><li>Seeing e-assessment from the other side... </li></ul></ul>
    3. 3. Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement? </li></ul><ul><li>Is it a dreadful specification? </li></ul>
    4. 4. Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><ul><li>That depends what the job is: </li></ul></ul><ul><ul><ul><ul><li>The Common Cartridge is (finally) bringing a level of interoperability for Item bank vendors. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>It is very much a lowest common denominator, with item types more or less restricted to the most basic version that all VLEs support </li></ul></ul></ul></ul><ul><li>Is there no real world requirement? </li></ul><ul><li>Is it a dreadful specification? </li></ul>
    5. 5. Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement? </li></ul><ul><ul><li>People do use the 'extra' features of VLE item types. (e.g. better feedback and 'penalty' scoring in Moodle;)‏ </li></ul></ul><ul><ul><li>There's lots of demand for item banks </li></ul></ul><ul><li>Is it a dreadful specification? </li></ul>
    6. 6. Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement? </li></ul><ul><li>Is it a dreadful specification? </li></ul><ul><ul><li>There are independent, interoperable implementations of 2.0 already, so it does work. </li></ul></ul><ul><ul><li>The specification is readable (and anyone who's ever looked at other complex interoperability specifications will know the documentation is clear and concise.)‏ </li></ul></ul><ul><ul><li>It's more flexible than any VLE assessment system. </li></ul></ul>
    7. 7. A slight digression... <ul><li>Interoperability isn't easy </li></ul><ul><ul><li>Extreme attention to detail is needed </li></ul></ul><ul><ul><li>Mapping complex data structures to a file format, and then (possibly) to different complex data structures. </li></ul></ul><ul><li>It's also not really done by a lot of people </li></ul><ul><ul><li>Remember recent cross platform buffer overflow bugs </li></ul></ul><ul><ul><ul><ul><li>JPEG / JFIF </li></ul></ul></ul></ul><ul><ul><ul><ul><li>TCP/IP </li></ul></ul></ul></ul><ul><ul><li>The reason these bugs affected different systems was that they're in open-open code that everyone uses. </li></ul></ul>
    8. 8. Why hasn't QTI 2 taken off? <ul><li>Is something else doing the job? </li></ul><ul><li>Is there no real world requirement? </li></ul><ul><li>Is it a dreadful specification? </li></ul><ul><li>Is everyone waiting for QTI 2 item banks? </li></ul>
    9. 9. So, getting to the point... <ul><li>Mapping Moodle item types onto QTI. </li></ul><ul><ul><li>I started looking at mapping the full functionality of Moodle items onto QTI 2.0 </li></ul></ul><ul><ul><ul><ul><li>Hand crafted QTI XML </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Initially tried them out with APIS. (Items quickly went beyond APIS's current scope.)‏ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Now using R2Q2 as the main test platform. (Does what's needed, but crashes horribly with unhelpful Java exceptions rather than giving helpful error messages.)‏ </li></ul></ul></ul></ul><ul><ul><li>Moodle export uses 'Smarty' for exporting – really an HTML template fill, but obviously that works for XML too. </li></ul></ul><ul><ul><li>A few item types now (almost) export to QTI 2 from Moodle. </li></ul></ul><ul><ul><li>Now starting to take a different, more general approach... </li></ul></ul>
    10. 10. Moodle 'choice' item <ul><li>'Serialized' as XML but basically a very simple structure </li></ul><ul><li>Barely object orientated </li></ul><ul><li>Processing rules are hardwired </li></ul><ul><li>Very little code shared between item types </li></ul><ul><li>More or less maps 1:1 with item creation form </li></ul><ul><li>XML is almost overkill </li></ul>
    11. 11. Moodle 'choice' item 2 <ul><li>Mapping this to QTI 1.2 does result in a lot of code </li></ul>{if $courselevelexport}<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>{/if} <assessmentItem xmlns=&quot;http://www.imsglobal.org/xsd/imsqti_v2p1&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.imsglobal.org/xsd/imsqti_v2p1 imsqti_v2p1.xsd&quot; identifier=&quot;{$assessmentitemidentifier}&quot; title=&quot;{$assessmentitemtitle}&quot; adaptive=&quot;false&quot; timeDependent=&quot;false&quot;> <responseDeclaration identifier=&quot;{$questionid}&quot; cardinality=&quot;single&quot; baseType=&quot;identifier&quot;> <correctResponse> <value>{$correctresponse.id}</value> </correctResponse> </responseDeclaration> <outcomeDeclaration identifier=&quot;SCORE&quot; cardinality=&quot;single&quot; baseType=&quot;float&quot;> <defaultValue> <value>0</value> </defaultValue> </outcomeDeclaration> <outcomeDeclaration identifier=&quot;FEEDBACK&quot; cardinality=&quot;single&quot; baseType=&quot;identifier&quot; /> <itemBody> <p>{$questionText}</p> {if $question_has_image == 1} <div class=&quot;media&quot;> {if $hassize == 1} <object type=&quot;{$question->mediamimetype}&quot; data=&quot;{$question->mediaurl}&quot; width=&quot;{$question->mediax}&quot; height=&quot;{$question->mediay}&quot; /> {else} <object type=&quot;{$question->mediamimetype}&quot; data=&quot;{$question->mediaurl}&quot; /> {/if} </div> {/if} <div class=&quot;intreactive.choiceSimple&quot;> <choiceInteraction responseIdentifier=&quot;{$questionid}&quot; shuffle=&quot;false&quot; maxChoices=&quot;1&quot;> {section name=answer loop=$answers} <simpleChoice identifier=&quot;{$answers[answer].id}&quot;>{$answers[answer].answer}</simpleChoice> {/section} </choiceInteraction> {section name=answer loop=$answers} {if $answers[answer].feedback != ''} {if $answers[answer].answer != $correctresponse.answer} <feedbackInline identifier=&quot;{$answers[answer].id}&quot; outcomeIdentifier=&quot;FEEDBACK&quot; showHide=&quot;hide&quot;>{$answers[answer].feedback}</feedbackInline> {/if} {/if} {/section} </div> </itemBody> <responseProcessing> <responseCondition> <responseIf> <match> <variable identifier=&quot;{$questionid}&quot;/> <correct identifier=&quot;{$questionid}&quot;/> </match> <setOutcomeValue identifier=&quot;SCORE&quot;> <baseValue baseType=&quot;float&quot;>1</baseValue> </setOutcomeValue> </responseIf> <responseElse> <setOutcomeValue identifier=&quot;SCORE&quot;> <baseValue baseType=&quot;float&quot;>0</baseValue> </setOutcomeValue> </responseElse> </responseCondition> <setOutcomeValue identifier=&quot;FEEDBACK&quot;> <variable identifier=&quot;{$questionid}&quot;/> </setOutcomeValue> </responseProcessing> {section name=answer loop=$answers} {if $answers[answer].feedback != ''} <modalFeedback outcomeIdentifier=&quot;FEEDBACK&quot; identifier=&quot;{$answers[answer].id}&quot; showHide=&quot;hide&quot;>{$answers[answer].feedback}</modalFeedback> {/if} {/section} </assessmentItem>
    12. 12. Moodle 'choice' item 3 <ul><li>However interoperability has been achieved! </li></ul><ul><li>The QTI generated from this template plays in: </li></ul><ul><ul><ul><li>APIS (as long as penalty is not included)‏ </li></ul></ul></ul><ul><ul><ul><li>R2Q2 </li></ul></ul></ul><ul><ul><ul><li>JAssess </li></ul></ul></ul><ul><ul><ul><li>playr </li></ul></ul></ul><ul><li>Output from these closely matches Moodle output, so learning experience is maintained </li></ul><ul><li>This item type would require significant 'feature scrubbing' to fit QTI CC or any other VLE. </li></ul>
    13. 13. Other item types <ul><li>So far in Moodle </li></ul><ul><ul><ul><li>Choice (single and multiple)‏ </li></ul></ul></ul><ul><ul><ul><li>True/False </li></ul></ul></ul><ul><ul><ul><li>Matching </li></ul></ul></ul><ul><li>It looks likely that all Moodle item types will be able to be fully converted to QTI 2.* items, however... </li></ul><ul><ul><ul><li>Moodle export filters are a pain to write </li></ul></ul></ul>
    14. 14. A more generic approach <ul><ul><ul><li>A tool that takes Moodle XML, converts it to simple data structures and then to QTI 2.* </li></ul></ul></ul><ul><ul><ul><li>Avoids complexity of writing Moodle filters </li></ul></ul></ul><ul><ul><ul><li>Moodle specific part is a 'plugin' so able to support other VLEs as well. </li></ul></ul></ul><ul><ul><ul><li>Could (possibly should) be largely implemented in XSLT (however just 85 lines of PHP does generic XML input filtering...)‏ </li></ul></ul></ul><ul><ul><ul><li>Currently just proof of concept... </li></ul></ul></ul>
    15. 15. Where is this going? <ul><ul><ul><li>A simple online tool that con convert various VLE assessment formats into packages containing QTI 2.* item banks </li></ul></ul></ul><ul><ul><ul><li>A rapid way of overcoming the “there are no QTI 2.* items” issue </li></ul></ul></ul><ul><ul><ul><li>Items that maintain all the features of the original VLE items rather than being made into lowest common denominator variants </li></ul></ul></ul>
    16. 16. Does it have to be QTI 2?
    17. 17. Can we make QTI 2.* simpler? <ul><ul><ul><li>Not really, but there already are several implementations, so do we need to? </li></ul></ul></ul><ul><ul><ul><li>QTI 2 response processing is a set of simple rules and actions </li></ul></ul></ul><ul><ul><ul><ul><li>A basic parse tree </li></ul></ul></ul></ul><ul><ul><ul><ul><li>More or less a pre-parsed interpretive programming language </li></ul></ul></ul></ul><ul><ul><ul><ul><li>i.e. a standard L2 CompSci assignment (except a bit bigger...)‏ </li></ul></ul></ul></ul><ul><ul><ul><li>QTI 2 item rendering is just HTML with a handful of widgets </li></ul></ul></ul>
    18. 18. Are there features missing? <ul><li>Back to 'assessment from the other side' </li></ul><ul><ul><ul><li>Open University systems support rather neat input </li></ul></ul></ul><ul><ul><ul><ul><li>Superscripts and (automatic) subscripts without a full HTML editor </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Useful for all science, necessary for chemistry (and hence much of life science)‏ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Far more basic than the Maths requirements, and brings in a lot more potential users. </li></ul></ul></ul></ul><ul><ul><ul><li>Can we do the same in QTI 2? </li></ul></ul></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×