180 likes | 308 Views
Mathematical Interactive Exercise Generation From Static Documents. Manolis Mavrikis School of Mathematics University of Edinburgh. Alberto González Palomo Toledo Spain. Motivation. Content for (mathematical) educational systems - authoring is time consuming
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)