Subversion Repositories wimsdev

Rev

Rev 4892 | Rev 5755 | 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 class="wims_code_variable">\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 class="wims_code_variable">\steps</tt>
  36. accepteerd parameters [gedefinieerde variabelen] als ook condities !
  37. <br>
  38. De default instelling van <tt class="wims_code_variable">\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 class="wims_code_variable">\step</tt>,
  43. en is oproepbaar in het <em>statement</em> van de OEF.
  44. De eerste stap geeft dus <tt class="wims_code_words">\step = 1</tt>
  45. Als de leerling bezig is met de tweede stap in de OEF wordt de variabele <tt class="wims_code_words">\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 class="wims_code_words">\nextstep{...}</tt>.
  49. De sleutel die dit commando accepteerd is vergelijkbaar met <tt class="wims_code_words">\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 class="wims_code_words">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 class="wims_code_words">main</tt> gedeelte van een OEF script, in het <tt class="wims_code_words">\statement{}</tt>,
  66. in de <tt class="wims_code_words">\hint{}</tt>,
  67. de <tt class="wims_code_words">\solution{}</tt> en <tt class="wims_code_words">\feedback{}</tt>
  68. Uitzondering is de <tt class="wims_code_words">\while{}{}</tt> loop: deze kan alleen worden gebruikt bij de variabele definities/declaraties in het main gedeelte van een OEF script
  69. <a name=special></a>
  70. <h3>Speciale methoden</h3>
  71.  
  72. Met het commando <tt class="wims_code_words">\special{...}</tt> in het <tt class="wims_code_words">\statement{}</tt> van een OEF script
  73. geeft de volgende mogelijkheden:
  74. <p>
  75. !if $special_parm=all
  76. !for sp in $special_list
  77.  <p><center><h4>De speciale methode <tt class="wims_code_words">$sp</tt></h4></center> <p>
  78.  Algemene syntax: <tt class="wims_code_words">\special{$sp <i>parameters</i>}</tt> <p>
  79.  
  80.  !read oef/special/$sp.phtml help
  81. !next sp
  82. !else
  83. !for sp in $special_list
  84.  !href cmd=help&special_parm=oefadv&special_parm2=$sp#special $sp
  85.  &nbsp;
  86. !next sp
  87. !endif
  88.  
  89. !if $special_parm2 isitemof $special_list
  90. <p><center><h4>De speciale methode <tt class="wims_code_words">$special_parm2</tt></h4></center> <p>
  91. Algemene syntax: <tt class="wims_code_words">\special{$special_parm2 <i>parameters</i>}</tt> <p>
  92.  
  93. !read oef/special/$special_parm2.phtml help
  94. !endif
  95.  
  96. <h3>cpp codering</h3>
  97.  
  98. Dit systeem is niet beschikbaar vanuit het Createxo hulpmiddel.<br>
  99. Via Modtool kunt U dit systeem inzetten voor het compact produceren van random
  100. oefeningen in OEF of Deductio.
  101. <p>
  102. Dit <tt>cpp</tt> systeem maakt hergebruik van overeenkomstige code mogelijk:
  103. diverse OEF scripten kunnen deze gemeenschappelijke code aanroepen [compile time].
  104. En op deze manier is "bulk productie" van oefeningen mogelijk.
  105. <p>
  106. Om dit systeem te gebruikem moet er eerst een subdirectory src/cpp worden aangemaakt,
  107. waarin alle *.cpp scripten worden geplaatst.
  108. U kunt gebruik maken van preproccessor statements als <tt class="wims_code_words">#include</tt> of <tt class="wims_code_words">#if</tt>.
  109. (Lees de cpp handleiding voor meer details van de te gebruiken syntax.)
  110. <p>
  111. De eerste regel van een *.cpp bestand moet een lijst van targets definieren,
  112. zoals
  113. <pre>
  114. target=oefening_1 oefening_2 oefening_3 ...
  115. </pre>
  116. Deze regel zorgt ervoor dat het cpp systeem in de <em>src directory</em> de volgende OEF scripten aanmaakt:
  117. oefening_1.oef oefening_2.oef oefening_3.oef ...
  118.  
  119.  
  120. Wanneer de file <em>oefening_1</em> wordt gegenereerd, het
  121. predicaat <tt>#TARGET</tt> wordt defenieerd als <em>oefening_1</em>.
  122. (en een macro <em>TARGET_oefening_1</em> wordt eveneens aangemaakt.)
  123. Hiertoe kan in de cpp code worden vermeld:
  124. <pre>
  125. #if #TARGET (oefening_1)
  126. \title{Opdracht 1}
  127. \integer{v1=3}
  128. \text{t1=dit is target 1}
  129. #endif
  130. #if #TARGET (oefening_2)
  131. \title{Opdracht 2}
  132. \integer{v1=5}
  133. \text{t1=dit is target 2}
  134. #endif
  135. </pre>
  136. zodat de inhoud target afhankelijk kan worden.
  137. <p>
  138. Alle include bestanden met een uitgang <tt>*.inc</tt> moeten ook in de directory src/cpp worden geplaatst.
  139. <br>
  140. De regel
  141. <pre>
  142. #include "common.inc"
  143. </pre>
  144. zal de inhoud van de file genaamd common.inc invoegen in het corresponderende OEF script.
  145. Let op: om beveiligins redenen is het niet mogelijk het pad naar een include file aan te geven.
  146. Ze moeten in dezelde directory worden geplaatst als de cpp bestanden.
  147. <p>
  148. Opmerking:<br>
  149. De cpp processor raakt in de war als er een oneven aantal aanhalingstekens worden gebruikt.<br>
  150. U kunt gewone opmerkingen bij de code beschermen door (<tt>/* ... */</tt>).
  151.  
  152. <div class="wims_warning">
  153. <span class="wims_warning">$wims_name_warning</span> : Alle commando's beginnende met een "#", zoals in
  154. <tt>#include</tt>, de <tt>#</tt> moet het eerste teken zijn op een regel.
  155. Een <tt>#</tt> is hier geen kommentaar teken.
  156. </div>
  157.  
  158. <h3>oefenv en debug</h3>
  159. De speciale omgevings variabele <tt class="wims_code_variable">\oefenv</tt> kan worden gebruikt om het gecompileerde OEF
  160. script te testen.
  161. <p>
  162. Op dit moment is alleen de variabele <tt class="wims_code_words">debug</tt> actief binnen <tt class="wims_code_variable">\oefenv</tt> in de
  163. volgende situaties:
  164. <ol>
  165. <li>OEF wordt uitgevoerd binnen het hulpmiddel Createxo.
  166. <li>OEF wordt uitgevoerd door de ontwikkelaar zelf binnen het hulpmiddel Modtool
  167. <li>OEF is een script binnen een klas [klasse oefening] en als ze wordt uitgevoerd door de supervisor van de klas
  168. </ol>
  169. Opmerking: in al deze gevallen zal het door uw OEF gedefinieerde goede antwoord worden getoond in het invulveld.
  170. <p>
  171. De syntax voor het aanroepen van de debug info is :
  172. <pre>
  173. \if{debug iswordof \oefenv}{de gewenste debug informatie }
  174. </pre>
  175. Deze info wordt automatisch getoond als de oefening wordt getest.
  176. Wanneer de oefening in gebruik is door een leerling, wordt deze niet getoond.
  177.  
  178.  
  179.