Rev 17347 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
627 | schaersvoo | 1 | |
6133 | bpr | 2 | <h2>Geavanceerd gebruik van OEF</h2> |
627 | schaersvoo | 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: |
||
6368 | bpr | 8 | <pre>\img{\imagedir/picture.jpg alt="picture"}</pre> |
627 | schaersvoo | 9 | |
10 | In het browservenster zal de computervaardige leerling kunnen zien: |
||
17347 | bpr | 11 | <pre><img src="een_willekeurige_naam" alt="picture"></pre> |
627 | schaersvoo | 12 | |
13 | De echte bestands naam is dus verborgen voor de leerling. |
||
14 | |||
8367 | bpr | 15 | <p><b>Opmerking</b>. |
627 | schaersvoo | 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. |
||
7423 | bpr | 18 | </p> |
627 | schaersvoo | 19 | <h3>Oefeningen met meerdere stappen</h3> |
5903 | bpr | 20 | Een "multi-step" oefening kan met het commando <span class="tt wims_code_variable">\steps</span> |
8367 | bpr | 21 | worden geactiveerd. |
17514 | bpr | 22 | <br>Bijvoorbeeld:<br> |
627 | schaersvoo | 23 | |
24 | <pre>\steps{choice 1, reply 1 |
||
25 | choice 2, reply 2, reply 3 |
||
26 | choice 3 |
||
27 | }</pre> |
||
28 | |||
8367 | bpr | 29 | Hier zal de oefening een 3-tal stappen geven, zo kan de eerste stap |
627 | schaersvoo | 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> |
||
5903 | bpr | 34 | De sleutels van het commando <span class="tt wims_code_variable">\steps</span> |
627 | schaersvoo | 35 | accepteerd parameters [gedefinieerde variabelen] als ook condities ! |
17514 | bpr | 36 | <br> |
5903 | bpr | 37 | De default instelling van <span class="tt wims_code_variable">\steps</span> is dat een fout in een bepaalde stap de |
627 | schaersvoo | 38 | oefening beeindigd, en dat voor de resterende stappen het cijfer 0 wordt gegeven. |
8367 | bpr | 39 | Er is de mogelijkheid om hiervan af te wijken. |
627 | schaersvoo | 40 | <p> |
5903 | bpr | 41 | Het volgnummer van een stap wordt opgeslagen in de variabele <span class="tt wims_code_variable">\step</span>, |
627 | schaersvoo | 42 | en is oproepbaar in het <em>statement</em> van de OEF. |
5903 | bpr | 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. |
||
7423 | bpr | 45 | </p><p> |
627 | schaersvoo | 46 | Om met multi-step OEF's nog interactiever te reageren op de antwoorden van leerlingen, |
8367 | bpr | 47 | is het commando <span class="tt wims_code_words">\nextstep{...}</span>. |
5903 | bpr | 48 | De sleutel die dit commando accepteerd is vergelijkbaar met <span class="tt wims_code_words">\steps{...}</span> |
627 | schaersvoo | 49 | Beide commando's mogen niet door elkaar gebruikt worden. |
7423 | bpr | 50 | </p> |
627 | schaersvoo | 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} |
||
8367 | bpr | 59 | \ifval{condition}{conditie_is_waar_inhoud} |
60 | \ifval{condition}{conditie_is_waar_inhoud}{zo_niet_dan_dit} |
||
627 | schaersvoo | 61 | \for{var=n1 to n2}{loop_inhoud} |
17514 | bpr | 62 | \while{condition}{loop_inhoud} (alleen in het <span class="tt wims_code_words">main</span> gedeelte van OEF) |
627 | schaersvoo | 63 | </pre> |
64 | |||
65 | Als deze commando's [behalve de while loop] kunnen overal in OEF worden aangeroepen: |
||
8367 | bpr | 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>, |
||
5903 | bpr | 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 |
||
5912 | bpr | 70 | <a id="special"></a> |
627 | schaersvoo | 71 | |
72 | <h3>cpp codering</h3> |
||
73 | |||
17514 | bpr | 74 | Dit systeem is niet beschikbaar vanuit het Createxo hulpmiddel.<br> |
627 | schaersvoo | 75 | Via Modtool kunt U dit systeem inzetten voor het compact produceren van random |
8367 | bpr | 76 | oefeningen in OEF of Deductio. |
627 | schaersvoo | 77 | <p> |
8367 | bpr | 78 | Dit <span class="tt">cpp</span> systeem maakt hergebruik van overeenkomstige code mogelijk: |
627 | schaersvoo | 79 | diverse OEF scripten kunnen deze gemeenschappelijke code aanroepen [compile time]. |
80 | En op deze manier is "bulk productie" van oefeningen mogelijk. |
||
7423 | bpr | 81 | </p><p> |
627 | schaersvoo | 82 | Om dit systeem te gebruikem moet er eerst een subdirectory src/cpp worden aangemaakt, |
83 | waarin alle *.cpp scripten worden geplaatst. |
||
8367 | bpr | 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>. |
627 | schaersvoo | 85 | (Lees de cpp handleiding voor meer details van de te gebruiken syntax.) |
7423 | bpr | 86 | </p><p> |
627 | schaersvoo | 87 | De eerste regel van een *.cpp bestand moet een lijst van targets definieren, |
88 | zoals |
||
7423 | bpr | 89 | </p> |
627 | schaersvoo | 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 |
||
8367 | bpr | 97 | predicaat <span class="tt">#TARGET</span> wordt defenieerd als <em>oefening_1</em>. |
627 | schaersvoo | 98 | (en een macro <em>TARGET_oefening_1</em> wordt eveneens aangemaakt.) |
99 | Hiertoe kan in de cpp code worden vermeld: |
||
100 | <pre> |
||
8367 | bpr | 101 | #if defined TARGET_oefening_1 |
627 | schaersvoo | 102 | \title{Opdracht 1} |
103 | \integer{v1=3} |
||
104 | \text{t1=dit is target 1} |
||
105 | #endif |
||
8367 | bpr | 106 | #if defined TARGET_oefening_2 |
627 | schaersvoo | 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> |
||
8559 | bpr | 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> |
||
5903 | bpr | 129 | Alle include bestanden met een uitgang <span class="tt">*.inc</span> moeten ook in de directory src/cpp worden geplaatst. |
7423 | bpr | 130 | </p><p> |
627 | schaersvoo | 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> |
||
17514 | bpr | 139 | Opmerking:<br> |
140 | De cpp processor raakt in de war als er een oneven aantal aanhalingstekens worden gebruikt.<br> |
||
5903 | bpr | 141 | U kunt gewone opmerkingen bij de code beschermen door (<span class="tt">/* ... */</span>). |
7423 | bpr | 142 | </p> |
4892 | bpr | 143 | <div class="wims_warning"> |
4902 | schaersvoo | 144 | <span class="wims_warning">$wims_name_warning</span> : Alle commando's beginnende met een "#", zoals in |
5903 | bpr | 145 | <span class="tt">#include</span>, de <span class="tt">#</span> moet het eerste teken zijn op een regel. |
8367 | bpr | 146 | Een <span class="tt">#</span> is hier geen kommentaar teken. |
4892 | bpr | 147 | </div> |
148 | |||
627 | schaersvoo | 149 | <h3>oefenv en debug</h3> |
5903 | bpr | 150 | De speciale omgevings variabele <span class="tt wims_code_variable">\oefenv</span> kan worden gebruikt om het gecompileerde OEF |
627 | schaersvoo | 151 | script te testen. |
152 | <p> |
||
5903 | bpr | 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 |
627 | schaersvoo | 154 | volgende situaties: |
7423 | bpr | 155 | </p> |
627 | schaersvoo | 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 : |
||
7423 | bpr | 164 | </p> |
627 | schaersvoo | 165 | <pre> |
4902 | schaersvoo | 166 | \if{debug iswordof \oefenv}{de gewenste debug informatie } |
627 | schaersvoo | 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. |