--- tags: ULA-EN disqus: hackmd title: exercise | content type | ULA image: https://i.imgur.com/KGCGILw.gif description: provide a student with activities to better memorize the material and test his knowledge --- # exercise <div style='text-align:center;margin-bottom:20px'> <img src="https://i.imgur.com/KGCGILw.gif" /> </div> Exercises provide a student with activities to test his knowledge and to memorize the material better. They are built on top of other materials, like `richMedia` and `fileCard`. You can customize different exercise parameters yourself and get: * listen to the audio, and write what you have heard * read the text and choose the correct translation * look at the image and reorder words * e.t.c. -- all possible combinations of those kinds of exercises. The app gives to user feedback after each exercise: was his answer right or wrong. ## Options You can build any type of exercise by mixing different cells from option tables below. <table style="float:left; width:45%"> <tbody> <tr > <th colspan="2">What is given to a student?</th> </tr> <tr > <th>Type</th> <th>Language</th> </tr> <tr > <td style="background:skyblue">audio</td> <td></td> </tr> <tr> <td rowspan="2">text</td> <td >original</td> </tr> <tr > <td >translation</td> </tr> <tr > <td rowspan="2">image</td> &nbsp; </tr> <tr > <td >&nbsp;</td> </tr> </tbody> </table> <table style="float: left; width: 55%; "> <tbody> <tr style="height: 18px;"> <th style="height: 18px;" colspan="3">What is required of a student?</th> </tr> <tr style="height: 18px;"> <th style="height: 18px;">Type</th> <th style="height: 18px;">Language</th> <th style="height: 18px;">Activity</th> </tr> <tr style="height: 18px;"> <td style="height: 36px;" rowspan="2">audio</td> <td style="height: 36px;" rowspan="2"></td> <td style="height: 18px;">write<sup>*</sup></td> </tr> <tr style="height: 18px;"> <td style="height: 18px;">choose</td> </tr> <tr style="height: 18px;"> <td style="height: 36px;background:skyblue" rowspan="4" >text</td> <td style="height: 18px;" rowspan="2">original</td> <td style="height: 18px;">write</td> </tr> <tr style="height: 18px;"> <td style="height: 18px;background:skyblue">choose</td> </tr> <tr style="height: 18px;"> <td style="height: 18px;background:skyblue" rowspan="2">translation</td> <td style="height: 18px;">order</td> </tr> <tr> <td>&nbsp;</td> </tr> <tr style="height: 18px;"> <td style="height: 36px;" rowspan="2">image</td> <td style="height: 18px;">&nbsp;</td> <td style="height: 36px;" rowspan="2">choose</td> </tr> <tr style="height: 18px;"> <td style="height: 18px;">&nbsp;</td> </tr> </tbody> </table> ## Example ``` ## Training [exercise | 001/001] image, text-original --> text-translation choose-from-4 10 audio --> text-original choose-from-4 10 audio, text-original --> image choose-from-4 10 text-translation --> text-original write 50% ``` This code will display to user 4 sets of exercises, based on material of `chapter-001/subchapter-001`: | <small>image, text-original --> text-translation choose-from-4</small> | <small>audio --> text-original choose-from-4</small> | | -------- | -------- | | ![](https://i.imgur.com/GgR5jpL.png)| ![](https://i.imgur.com/Hv2aoH1.png)| | <small>audio, text-original --> image choose-from-4</small> | <small>text-translation --> text-original write</small> | | -------- | -------- | | ![](https://i.imgur.com/qdJ8krh.png)| ![](https://i.imgur.com/3A0qhSf.png)| ## In markdown `## Training [exercise | 001/001]` After material type `exercise` you should point to the source material `chapterId/subchapterId`, on that we will train. If you didn't specify it, by default it is previous material. For each set of exercises, you should write a string: `given --> required activity count` given and required : comma-separated fields from table 1. Any combination of: * audio * text-original * text-translation * image activity : one of * write * choose-from-N * order count : integer number or percentage. ## Planned (for next versions) Tolerance for user input: don't consider diacritics, case (lower or upper), stress sign, etc... Module system for custom tolerance rules (extensible for any language). {%hackmd aKm5unLTSSuRKU2Q4wga7g %} {%hackmd tKQW1R4oSvSm58CCiq1f-Q %}