---
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>
</tr>
<tr >
<td > </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> </td>
</tr>
<tr style="height: 18px;">
<td style="height: 36px;" rowspan="2">image</td>
<td style="height: 18px;"> </td>
<td style="height: 36px;" rowspan="2">choose</td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px;"> </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 %}