Standardization of physics exercises Dynamical generation of data J. Parellada Facultat de Física...
-
Upload
claud-henderson -
Category
Documents
-
view
214 -
download
0
Transcript of Standardization of physics exercises Dynamical generation of data J. Parellada Facultat de Física...
Standardization of physics exercises
Dynamical generation of data
J. ParelladaFacultat de FísicaUniversitat de BarcelonaDiagonal 64508028 Barcelona [email protected]
UNIVERITAT DE BARCELONA
1. Introduction
Rationale
Classification: DC; LOM; CEN-ISSS
2. QTI Objectives and tags
3. Our proposals
New tags: <response_physmag> <jump>
Dynamical generation of data
• Approaches: Global and Modular
• Schema for dynamical generation of data
UNIVERITAT DE BARCELONA
IntroductionRationale:
Exercises as a learning toolThe review complexity Students should be encouraged (to try) to solve exercisesIs it possible to set up an automatic procedure?How can the personal work be reassured?
UNIVERITAT DE BARCELONA
Exercises as learning objects:Classification
DCLOM
Extensions to LOMCEN-ISSS
Vocabularies
QTI NomenclatureAssesment-Section-Item
Single o multiple response
Inside ItemPresentation
MaterialResponse type : LID; String; Numerical, XY, Group
RenderizationMaterialRenderization type : Choice, Hotspot,
Slider, FIBResponse processing
Response conditionconditionvardisplayfeedback
ItemfeedbackGranularity at section levelNo problem set
UNIVERITAT DE BARCELONA
Problem as QTI instance
UNIVERITAT DE BARCELONA
The problem structure
General statement: Normally includes: text, graphs, drawings, .....
physical magnitudes with numerical values and unitsmathematical expression
Sequentially ordered questionsQuestion types: numerical
scalar or vector
numerical with accompanying unit
mathematical expression
single or multiple choice
free form text
Hot spot
grouping and ordering
Problem as QTI instance
UNIVERITAT DE BARCELONA
The problem structure
General statement: Normally includes: text, graphs, drawings, .....
physical magnitudes with numerical values and unitsmathematical expression
Sequentially ordered questionsQuestion types: numerical
scalar or vector
numerical with accompanying unit
mathematical expression
single or multiple choice
free form text
Hot spot
grouping and ordering
New Response types
UNIVERITAT DE BARCELONA
Vectors:
OriginHot spot rendering
Coordinate system
Mathematical expression:
Data introductionMathML
Expression comparison
Physical magnitudeMultiple response type
numerical + single choice numerical + string parsed string (to split between a number and its unit)Equivalence between different answers. Conversion factorsPrecision issueRendering
New Response types
UNIVERITAT DE BARCELONA
Rendering
Example<item ident="s=vt"> <presentation> <material> A car runs at 65 km/h. What distance will it travel in 50 minutes </material> <response_physmag ident="distance"> <show> <units shuffle="yes">
<unit name="km" factor="1.0" shift=0.0"/> <unit name="m" factor="1000." shift=0.0"/> <unit name="miles“ factor="0.6213881812968"/> <unit name="yards" factor="1093.61329833771"/> <unit name="hours" factor="0.0" /> <unit name="lux" factor="0.0" shift=0.0"/>
<show/> <response/> <response_label ident="unit"/> <response_label ident="value"/> <response_label ident="precision"/> <presentation/><item/>
New Response Type
<no show> tag
magnitud
UNIVERITAT DE BARCELONA
Schema
Respcondition example
UNIVERITAT DE BARCELONA
<resprocessing>
<respcondition title="Correct" >
<conditionvar>
<and>
<or>
<varequal respident="unit">km</varequal>
<varequal respident="unit">m</varequal>
<varequal respident="unit">miles</varequal>
<varequal respident="unit">yards</varequal>
</or>
<varequal respident="precision">4</varequal>
<varlte respident="value">54.2</varlte>
<vargte respident="value">54.1</vargte>
</and>
</conditionvar>
<displayfeedback feedbacktype="Response" linkrefid= "correct"/>
</respcondition>
<respcondition continue="No" title="units_error" >
<conditionvar>
<or>
<varequal respident="unit">hours</varequal>
<varequal respident="unit">lux</varequal>
<or>
</conditionvar>
<displayfeedback feedbacktype="Hint" linkrefid="u_err"/>
</respcondition>
<respcondition continue="No" title=" low_precision">
<conditionvar>
<varlt respident="precision">4</varlt>
</conditionvar>
<displayfeedback feedbacktype="Hint" linkrefid="l_p"/>
</respcondition>
<respcondition continue="No" title=" high_precision" >
<conditionvar>
<vargt respident="precision">4</vargt>
</conditionvar>
<displayfeedback feedbacktype="Hint" linkrefid="h_p"/>
</respcondition>
<respcondition continue="No" title="value_error" >
<conditionvar>
<or>
<varlt respident="value"> 54.1 </varlt>
<vargt respident="value">54.2 </vargt>
<or>
</conditionvar>
<displayfeedback feedbacktype="Hint" linkrefid="v_err"/>
</respcondition>
</resprocessing>
<itemfeedback ident="u_err">
<material> Wrong units </material>
</itemfeedback>
<itemfeedback ident="l_p">
<material> Please, write more digits </material>
</itemfeedback>
<itemfeedback ident="h_p">
<material> Too many digits!!! </material>
</itemfeedback>
<itemfeedback ident="v_err">
<material> Wrong numerical answer!. </material>
</itemfeedback><itemfeedback ident="correct"><material> Congratulations, right answer!!! </material>
</itemfeedback>
New sequencing tag: <jump>
UNIVERITAT DE BARCELONA
Displayfeedback inside an item
Problem (section) have questions (items)
QTI ASI Selection and ordering specification version 1.2Conditional selection on Item Outcome/response
Being studied
<jump> to break sequential orderingEmpty tag with linkrefid attribute
<item ident="1">
......
<resprocessing>
<respcondition>
<conditionvar>.....</conditionvar>
<displayfeedback linkrefid="fb11"/>
<jump linkrefid="2"/>
</respcondition>
<respcondition continue="No">
<conditionvar>.....</conditionvar>
<displayfeedback linkrefid="fb12"/>
<jump linkrefid="1.1"/>
</respcondition>
</resprocessing>
<itemfeedback ident="fb11">
...
</itemfeedback>
<itemfeedback ident="fb12">
...
</itemfeedback>
</item>
<item ident="2">
........
</item>
<item ident="1.1">
......
<resprocessing>
<respcondition>
<conditionvar>.....</conditionvar>
<displayfeedback linkrefid="fb111"/>
<jump linkrefid="1"/>
</respcondition>
<respcondition continue="No">
<conditionvar>.....</conditionvar>
<displayfeedback linkrefid="fb112"/>
</respcondition>
</resprocessing>
<itemfeedback ident="fb111">...</itemfeedback>
<itemfeedback ident="fb112">...</itemfeedback>
</item>
Example
Dynamical generation of variables
UNIVERITAT DE BARCELONA
Numerical values data is part of text, normally inside <section><flow_mat><material>(<mattext>|<matemtext>)<item><presentation><material>(<mattext>|<matemtext>)
Numerical results are inside <conditionvar>
Tags can be redefined to include a PI instruction that, at code level, replaces its value by the value’s value previously defined
A whole set of tags to define the variables should have to be introduced into QTI specification
The processing code should be able to work out everything
Example<mattext>A car runs at <?replace v?> km/h. What distance will it travel in <?replace t?> minutes?</mattext>
This is what should be done, but
Dynamical generation of variables at run time
UNIVERITAT DE BARCELONA
Example<mattext><fix>A car runs at </fix> <var>v</var> <fix>km/h. What distance will it travel in</fix><var>t</var> <fix>minutes?</fix></mattext>
v = 65 t = 50v = 90 t = 40
<mattext>A car runs at 65 km/h. What distance will it travel in 50 minutes?</mattext>
• The result is a normal QTI instance able to be understood by any QTI aware code
• The data file can be hand defined or computed by any code in any language
• The sampling and text processing is very simple
• The data file can be defined and stored or generated on the fly
Schema for the dynamical generation of variables
UNIVERITAT DE BARCELONA
Schema for the dynamical generation of variables
UNIVERITAT DE BARCELONA
Example for the dynamical generation of variables
UNIVERITAT DE BARCELONA
<var_gen> <option name="car" weight="5"> <var_text name="text"> A car runs at </var_text> <var_text name="speed_unit"> km/h </var_text> <var_text name="time"> minutes </var_text> <var_num_single name = "v" type = "int"> <random> <interval> <value> <cte>70</cte> </value> <value> <cte>95</cte> </value> </interval> </random> <presentation type="int"> <digits>2</digits> </presentation> </var_num_single> <var_num_single name = "t" type = "int"> <list> 40,45,50,55,65 </list> </var_num_single> <presentation type="int"> <digits>2</digits> </presentation> <var_cal name="v_ana" type = "float"> <?eval $v_ana=$v?> </var_cal> <var_cal name="t_ana" type = "float"> <?eval $t_ana=$t/60?> </var_cal> </option> <option name="plane" weight="3"> <var_text name="text"> A plane flights at </var_text> <var_text name="speed_unit"> miles/h </var_text> <var_text name="time"> minutes </var_text> <var_num_single name = "v" type = "int"> <random> <interval> <value> <cte>500</cte> </value> <value> <cte>600</cte> </value> </interval> </random>
<presentation type="int"> <digits>3</digits> </presentation> </var_num_single> <var_num_single name = "t" type = "int"> <list> 55,65,85</list> </var_num_single> <presentation type="int"> <digits>2</digits> </presentation><var_cal name="v_ana" type = "float"> <?eval $v_ana=1.6093*$v?> </var_cal> <var_cal name="t_ana" type = "float"> <?eval $t_ana=$t/60?> </var_cal> </option> <option name="snail" weight="2"> <var_text name="text"> A snail creeps at </var_text> <var_text name="speed_unit"> cm/minute </var_text> <var_text name="time"> hours </var_text> <var_num_single name = "v" type = "int" > <random> <interval> <value> <cte>9</cte> </value> <value> <cte>18</cte> </value> </interval> </random> <presentation type="int"> <digits>2</digits> </presentation> </var_num_single> <var_num_single name = "t" type = "float"> <list> 0.6, 0.8, 1.2 </list> </var_num_single> <presentation type="dec"> <digits>2</digits><dec>1</dec> </presentation>
<var_cal name="v_ana" type = "float"> <?eval $v_ana=6*$v/10000?> </var_cal> <var_cal name="t_ana" type = "float"> <?eval $t_ana=$t?> </var_cal> </option></var_gen><var_com> <var_cal name="dis_correct" type = "float"> <?eval $dis_correct=$v_ana*$t_ana?> </var_cal> <var_cal name="dis_wrong1" type = "float"> <?eval $dis_wrong1=$v_ana*$t?> </var_cal> <var_cal name="dis_wrong2" type = "float"> <?eval $dis_wrong2=$v*$t_ana?> </var_cal> <var_cal name="dis_wrong3" type = "float"> <?eval $dis_wrong3=$v*$t?> </var_cal></var_com>
Development
UNIVERITAT DE BARCELONA
• A group of 8 physics’ professors are preparing 8*7 (?) problems in 8 different areas
• A PHP code is being adapted to read the XML instance
• A XML file with all(?) units is being built
• A script to run math expressions with Mathematica is planned
SupportThis work is funded by a grant from the Catalan Goverment MQD2002
THANK YOU FOR YOUR ATTENTION!!