180 likes | 331 Vues
This presentation addresses the challenges in creating reusable and shareable educational content for mathematical exercises. It highlights the limitations of current systems, such as QTI and OMDoc, in handling complex mathematical structures and adaptive feedback. The focus is on a novel approach that separates content from presentation using XML-based languages, allowing for easy authoring, randomization, and maintenance of exercises. Examples are provided to showcase the integration of mathematical entities, user interactivity, and efficient document management, ultimately enhancing the educational experience.
E N D
Mathematical Interactive Exercise Generation From Static Documents Manolis Mavrikis School of MathematicsUniversity of Edinburgh Alberto González PalomoToledo Spain
Motivation Content for (mathematical) educational systems - authoring is time consuming - not easily reusable, shareable common specifications for content are necessary
Exercises - Question and Test Interoperability (QTI) no consideration for mathematical questions - OMDoc no particular structure for exercises (until MKM Bertinoro) - others ? There are many systems that use different techniques and their own format - WALLIS (JavaScript templates and JSPs) - Alice Interactive Mathematics (own programming language) - MapleTA (Maple specific syntax) - CUE, SToMp (their own XML structures)
Exercises - complex structures e.g ‘nested’ multiple parts - adaptive feedback - interactivity - mathematics ! Example (see http://www.maths.ed.ac.uk/wallis/demo)
The rest of the talk … Examples from an exercise description language that - separates content from presentation - achieves question randomisation - represents multiple structures interaction - helps in providing adaptive feedback/presentation
Mathematical entities <OMOBJ> <OMA> <OMS cd=“relation1" name="eq"/> <OMV name="A"/> <OMA> <OMS cd="linalg2" name="matrix"/> <OMA> <OMS cd="linalg2" name="matrixrow"/> <OMI id="m_1_1">1</OMI> <OMI id="m_1_2">2</OMI> </OMA> <OMA> <OMS cd="linalg2" name="matrixrow"/> <OMI id="m_2_1">3</OMI> <OMI id="m_2_2">4</OMI> </OMA></OMA> </OMA> </OMOBJ>
Mathematical entities XHTML or OpenMath presentation MathML HTML (with CSS)
Exercises with Mathematical Entities Use a for attribute in elements to replace the parts where we want to create blanks or any type of questions <response> <blank for="m_1_1" size="2" id="blank_1"/> <blank for="m_1_2" size="2" id="blank_2"/> <blank for="m_2_1" size="2" id="blank_3"/> <blank for="m_2_2" size="2" id="blank_4"/> </response> This separates further the presentation from content and makes authoring easier.
… this could work for other schemes XML is <span id=‘match1’>great</span> because it <span id=‘match2’>separates</span> content from <span id=‘match3’>presentation</span>. <response> <blank for="match1" size=“10" id="blank_1"/> <blank for=“match2" size=“10" id="blank_2"/> <choice for=“match3" multiple=“no”> … </choice> </response> example
Randomisation & variable use can help speed up authoring - declared manually once and used in several places in the document or feedback elements to produce a different question OR - randomised by the system (need more care)
<variables> <!--mix and max are inclusive--> <var id="m" minvalue="1" maxvalue="3"/> <var id="f_tmp" minvalue="0" maxvalue="1"/> <var id="f">2*f_tmp-1</var> <var id="n_tmp" minvalue="1" maxvalue="3"/> <var id="n">n_tmp+m+1</var> <var id="z" minvalue="1" maxvalue="10"/> <var id="a">m+4*n*f</var> <var id="b">4*(m-n*f)</var> <var id="hb">b/2</var> <var id="c">4*m+n*f</var> <var id="d">5*z</var> </variables> assume type=“text/Maple” but more general to use OpenMath
11x2+2xy+3y2=4 … <OMA> <OMS cd="arith1" name="power"/> <OMV name="x"/> <OMI>2</OMI> </OMA> </OMA> <OMA> <OMS cd="arith1" name="times"/> <OMV name="b"/> <OMV name="x"/> <OMV name="y"/> </OMA> <OMA> <OMS cd="arith1" name="times"/> <OMV name="c"/> <OMA> <OMS cd="arith1" name="power"/> <OMV name="y"/> <OMI>2</OMI> </OMA> </OMA>
Interaction Define a structure - easy to author, maintain, database - represent the directed graph but with a shallow structure - general enough - clear separation of interactive layer from content Benefits: - speed authoring process - makes document manageable and reusable
Response conditions <map-action type="reply"> <cond xref="1st_part_misconception1"> <num_equal for="blank_1">2</num_equal> <num_equal for="blank_2">3</num_equal> </cond> </respcondition> <item id="1st_part_misconception1"> <material><mattext> No it's not correct because... </mattext></material> </item>
Response conditions (using variables) <map-action type="reply"> <cond xref="1st_part_misconception1"/> <num_equal for=“blank_1”> <var_value>2*b</var_value> </num_equal> </cond> </map-action> <item id="1st_part_misconception1"> <material><mattext>No it's not correct...</mattext></material> </item>
Response conditions for hints <map-action type=“hint"> <cond xref="hint_rhs_1"> <num_equal for=“blank_2”>3</num_equal> </cond> <cond xref="hint_rhs_2"> <num_equal for=“blank_2”>4</num_equal> </cond> <defaults xref=“default_hint” > </map-action>
Response conditions for CAS <map-action type=“reply"> <cond xref=“correct"> <cas_test for=“blank_2”> …omobj… </cas_test> </cond> </map-action> <map-action type=“reply"> <cond xref=“correct"> <cas_test for=“blank_2”> test/Diff(U) </cas_test> </cond> </map-action> example
Conclusion An exercise description language - shallow structure - general enough - declarative - separates presentation from content Further Work - limitations wtr to different content - finalise details of the language - finalise two different implementations (client – server)