Subversion Repositories wimsdev

Rev

Rev 4091 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. !set special_list=imagefill,expandlines,rename,help,tooltip
  2.  
  3. <p><center><h2>Geavanceerd gebruik van OEF</h2></center>
  4.  
  5. <h3>Verberg de naam van een plaatje</h3>
  6. Als de oefening vraagt om een willekeurige afbeelding te herkennen,
  7. geeft de naam van zo'n bestand vaan een aanwijzing.
  8. Om de naam te verbergen:
  9. <pre>\img{\imagedir/picture.jpg align=middle alt="picture"}</pre>
  10.  
  11. In het browservenster zal de computervaardige leerling kunnen zien:
  12. <pre>&lt;img src="een_willekeurige_naam" align=middle alt="picture"&gt;</pre>
  13.  
  14. De echte bestands naam is dus verborgen voor de leerling.
  15.  
  16. <p><b>Opmerking</b>.
  17. Het direct gebruik van het WIMS commando <em>rename</em> voor dit doel wordt
  18. niet aangeraden: de oefening zal dan onder omstandigheden niet meer functioneren.
  19.  
  20. <h3>Oefeningen met meerdere stappen</h3>
  21. Een "multi-step" oefening kan met het commando <tt>\steps</tt>
  22. worden geactiveerd.
  23. <br>Bijvoorbeeld:<br>
  24.  
  25. <pre>\steps{choice 1, reply 1
  26. choice 2, reply 2, reply 3
  27. choice 3
  28. }</pre>
  29.  
  30. Hier zal de oefening een 3-tal stappen geven, zo kan de eerste stap
  31. een meerkeuze vraag [ choice 1 ] en een open_antwoord [ reply 1 ] verwachten.
  32. De tweede stap zal ook een meerkeuze [ choice 2 ] en een tweetal open_antwoorden verwachten [reply 2 , reply 3].
  33. De derde en laatste stap is weer een meerkeuze vraag [ choice 3 ] .
  34. <p>
  35. De sleutels van het commando <tt>\steps</tt>
  36. accepteerd parameters [gedefinieerde variabelen] als ook condities !
  37. <br>
  38. De default instelling van <tt>\steps</tt> is dat een fout in een bepaalde stap de
  39. oefening beeindigd, en dat voor de resterende stappen het cijfer 0 wordt gegeven.
  40. Er is de mogelijkheid om hiervan af te wijken.
  41. <p>
  42. Het volgnummer van een stap wordt opgeslagen in de variabele <tt>\step</tt>,
  43. en is oproepbaar in het <em>statement</em> van de OEF.
  44. De eerste stap geeft dus <tt>\step = 1</tt>
  45. Als de leerling bezig is met de tweede stap in de OEF wordt de variabele <tt>\step = 2</tt> enz.
  46. <p>
  47. Om met multi-step OEF's nog interactiever te reageren op de antwoorden van leerlingen,
  48. is het commando <tt>\nextstep{...}</tt>.
  49. De sleutel die dit commando accepteerd is vergelijkbaar met <tt>\steps{...}</tt>
  50. Beide commando's mogen niet door elkaar gebruikt worden.
  51.  
  52.  
  53. <h3>Het if-statement en for loops</h3>
  54.  
  55. Beschikbare commando's:
  56.  
  57. <pre>
  58. \if{condition}{conditie_is_waar_inhoud}
  59. \if{condition}{conditie_is_waar_inhoud}{zo_niet_dan_dit}
  60. \for{var=n1 to n2}{loop_inhoud}
  61. \while{condition}{loop_inhoud}     (alleen in het <tt>main</tt> gedeelte van OEF)
  62. </pre>
  63.  
  64. Als deze commando's [behalve de while loop] kunnen overal in OEF worden aangeroepen:
  65. in het <tt>main</tt> gedeelte van een OEF script, in het <tt>\statement{}</tt> , in de <tt>\hint{}</tt> , de <tt>\solution{}</tt> en <tt>\feedback{}</tt>
  66. Uitzondering is de <tt>\while{}{}</tt> loop: deze kan alleen worden gebruikt bij de variabele definities/declaraties in het main gedeelte van een OEF script
  67. <a name=special>
  68. <h3>Speciale methoden</h3></a>
  69.  
  70. Met het commando <tt>\special{...}</tt> in het <tt>\statement{}</tt> van een OEF script
  71. geeft de volgende mogelijkheden:
  72. <p>
  73. !if $special_parm=all
  74. !for sp in $special_list
  75.  <p><center><h4>De speciale methode <tt>$sp</tt></h4></center> <p>
  76.  Algemene syntax: <tt>\special{$sp <i>parameters</i>}</tt> <p>
  77.  
  78.  !read oef/special/$sp.phtml help
  79. !next sp
  80. !else
  81. !for sp in $special_list
  82.  !href cmd=help&special_parm=oefadv&special_parm2=$sp#special $sp
  83.  &nbsp;
  84. !next sp
  85. !endif
  86.  
  87. !if $special_parm2 isitemof $special_list
  88. <p><center><h4>De speciale methode <tt>$special_parm2</tt></h4></center> <p>
  89. Algemene syntax: <tt>\special{$special_parm2 <i>parameters</i>}</tt> <p>
  90.  
  91. !read oef/special/$special_parm2.phtml help
  92. !endif
  93.  
  94. <h3>cpp codering</h3>
  95.  
  96. Dit systeem is niet beschikbaar vanuit het Createxo hulpmiddel.<br>
  97. Via Modtool kunt U dit systeem inzetten voor het compact produceren van random
  98. oefeningen in OEF of Deductio.
  99. <p>
  100. Dit <tt>cpp</tt> systeem maakt hergebruik van overeenkomstige code mogelijk:
  101. diverse OEF scripten kunnen deze gemeenschappelijke code aanroepen [compile time].
  102. En op deze manier is "bulk productie" van oefeningen mogelijk.
  103. <p>
  104. Om dit systeem te gebruikem moet er eerst een subdirectory src/cpp worden aangemaakt,
  105. waarin alle *.cpp scripten worden geplaatst.
  106. U kunt gebruik maken van preproccessor statements als <tt>#include</tt> of <tt>#if</tt>.
  107. (Lees de cpp handleiding voor meer details van de te gebruiken syntax.)
  108. <p>
  109. De eerste regel van een *.cpp bestand moet een lijst van targets definieren,
  110. zoals
  111. <pre>
  112. target=oefening_1 oefening_2 oefening_3 ...
  113. </pre>
  114. Deze regel zorgt ervoor dat het cpp systeem in de <em>src directory</em> de volgende OEF scripten aanmaakt:
  115. oefening_1.oef oefening_2.oef oefening_3.oef ...
  116.  
  117.  
  118. Wanneer de file <em>oefening_1</em> wordt gegenereerd, het
  119. predicaat <tt>#TARGET</tt> wordt defenieerd als <em>oefening_1</em>.
  120. (en een macro <em>TARGET_oefening_1</em> wordt eveneens aangemaakt.)
  121. Hiertoe kan in de cpp code worden vermeld:
  122. <pre>
  123. #if #TARGET (oefening_1)
  124. \title{Opdracht 1}
  125. \integer{v1=3}
  126. \text{t1=dit is target 1}
  127. #endif
  128. #if #TARGET (oefening_2)
  129. \title{Opdracht 2}
  130. \integer{v1=5}
  131. \text{t1=dit is target 2}
  132. #endif
  133. </pre>
  134. zodat de inhoud target afhankelijk kan worden.
  135. <p>
  136. Alle include bestanden met een uitgang <tt>*.inc</tt> moeten ook in de directory src/cpp worden geplaatst.
  137. <br>
  138. De regel
  139. <pre>
  140. #include "common.inc"
  141. </pre>
  142. zal de inhoud van de file genaamd common.inc invoegen in het corresponderende OEF script.
  143. Let op: om beveiligins redenen is het niet mogelijk het pad naar een include file aan te geven.
  144. Ze moeten in dezelde directory worden geplaatst als de cpp bestanden.
  145. <p>
  146. Opmerking:<br>
  147. De cpp processor raakt in de war als er een oneven aantal aanhalingstekens worden gebruikt.<br>
  148. U kunt gewone opmerkingen bij de code beschermen door (<tt>/* ... */</tt>).
  149.  
  150. <h3>oefenv en debug</h3>
  151. De speciale omgevings variabele <tt>\oefenv</tt> kan worden gebruikt om het gecompileerde OEF
  152. script te testen.
  153. <p>
  154. Op dit moment is alleen de variabele <tt>debug</tt> actief binnen <tt>\oefenv</tt> in de
  155. volgende situaties:
  156. <ol>
  157. <li>OEF wordt uitgevoerd binnen het hulpmiddel Createxo.
  158. <li>OEF wordt uitgevoerd door de ontwikkelaar zelf binnen het hulpmiddel Modtool
  159. <li>OEF is een script binnen een klas [klasse oefening] en als ze wordt uitgevoerd door de supervisor van de klas
  160. </ol>
  161. Opmerking: in al deze gevallen zal het door uw OEF gedefinieerde goede antwoord worden getoond in het invulveld.
  162. <p>
  163. De syntax voor het aanroepen van de debug info is :
  164. <pre>
  165. \if{debug iswordof \oefenv}{debugging informations to add into}
  166. </pre>
  167. Deze info wordt automatisch getoond als de oefening wordt getest.
  168. Wanneer de oefening in gebruik is door een leerling, wordt deze niet getoond.
  169.  
  170.  
  171.