Subversion Repositories wimsdev

Rev

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

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