--- tags: ulla disqus: hackmd image: https://i.imgur.com/P21OzwQ.png --- # ULA: упражнения на слова/фразы. Настройка :gear: <br /> <div style="text-align:center;"> <img src='https://i.imgur.com/42owMhq.gif' alt="exercises" /> </div> <br /> Упражнения на слова и фразы -- это интерактивный элемент урока, когда ученику предлагается послушать или прочитать слово, и перевести его. Они автоматически создаются из материалов урока (типа oneLineOneFile или media с таймингом), вам нужно указывать только параметры упражнений и количество. Сочетая всего нескольких настроек вы можете создать большое разнообразие. Все возможные варианты представлены в таблицах ниже. <table style="float:left; width:45%"> <tbody> <tr > <th colspan="2">Что даётся ученику?</th> </tr> <tr > <th>Тип материала</th> <th>Язык</th> </tr> <tr > <td rowspan="2">аудио</td> <td >оригинала</td> </tr> <tr> <td >&nbsp;</td> </tr> <tr > <td rowspan="2">текст</td> <td >оригинала</td> </tr> <tr > <td >перевода</td> </tr> <tr > <td rowspan="2">картинка</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">Что требуется от ученика?</th> </tr> <tr style="height: 18px;"> <th style="height: 18px;">Тип материала</th> <th style="height: 18px;">Язык</th> <th style="height: 18px;">Тип ввода</th> </tr> <tr style="height: 18px;"> <td style="height: 36px;" rowspan="2">аудио</td> <td style="height: 36px;" rowspan="2">оригинала</td> <td style="height: 18px;">записать<sup>*</sup></td> </tr> <tr style="height: 18px;"> <td style="height: 18px;">выбрать</td> </tr> <tr style="height: 18px;"> <td style="height: 36px;" rowspan="4">текст</td> <td style="height: 18px;" rowspan="2">оригинала</td> <td style="height: 18px;">написать</td> </tr> <tr style="height: 18px;"> <td style="height: 18px;">выбрать</td> </tr> <tr style="height: 18px;"> <td style="height: 18px;" rowspan="2">перевода</td> <td style="height: 18px;">упорядочить</td> </tr> <tr> <td>&nbsp;</td> </tr> <tr style="height: 18px;"> <td style="height: 36px;" rowspan="2">картинка</td> <td style="height: 18px;">&nbsp;</td> <td style="height: 36px;" rowspan="2">выбрать</td> </tr> <tr style="height: 18px;"> <td style="height: 18px;">&nbsp;</td> </tr> </tbody> </table> Язык оригинала -- это изучаемый язык, а язык перевода -- это язык знакомый пользователю. <sup>*</sup> - Запись аудио пока не работает, но возможно будет добавлена в следующих версиях. ## Пример 1 <table style="float:left; width:45%"> <tbody> <tr > <th colspan="2">Что даётся ученику?</th> </tr> <tr > <th >Тип материала</th> <th >Язык</th> </tr> <tr > <td style="background:skyblue" rowspan="2">аудио</td> <td style="background:skyblue" >оригинала</td> </tr> <tr> <td >&nbsp;</td> </tr> <tr > <td rowspan="2">текст</td> <td >оригинала</td> </tr> <tr > <td >перевода</td> </tr> </tbody> </table> <table style="float:left; width:55%" > <tbody> <tr > <th colspan="3"> Что требуется от ученика? </th> </tr> <tr > <th >Тип материала</th> <th >Язык</th> <th >Тип ввода</th> </tr> <tr > <td rowspan="2">аудио</td> <td rowspan="2">оригинала</td> <td >записать</td> </tr> <tr > <td >выбрать</td> </tr> <tr > <td style="background:skyblue" rowspan="2">текст</td> <td >оригинала</td> <td >написать</td> </tr> <tr > <td style="background:skyblue" >перевода</td> <td style="background:skyblue" >выбрать</td> </tr> </tbody> </table> Ученику даётся послушать аудио на языке оригинала и предлагаются варианты перевода. Он должен выбрать 1 правильный. ## Пример 2 <table style="float:left; width:45%"> <tbody> <tr > <th colspan="2">Что даётся ученику?</th> </tr> <tr > <th >Тип материала</th> <th >Язык</th> </tr> <tr > <td rowspan="2">аудио</td> <td >оригинала</td> </tr> <tr> <td >&nbsp;</td> </tr> <tr > <td style="background:skyblue" rowspan="2">текст</td> <td >оригинала</td> </tr> <tr > <td style="background:skyblue" >перевода</td> </tr> </tbody> </table> <table style="float:left; width:55%" > <tbody> <tr > <th colspan="3"> Что требуется от ученика? </th> </tr> <tr > <th >Тип материала</th> <th >Язык</th> <th >Тип ввода</th> </tr> <tr > <td rowspan="2">аудио</td> <td rowspan="2">оригинала</td> <td >записать</td> </tr> <tr > <td >выбрать</td> </tr> <tr > <td style="background:skyblue" rowspan="2">текст</td> <td style="background:skyblue" >оригинала</td> <td style="background:skyblue" >написать</td> </tr> <tr > <td >перевода</td> <td >выбрать</td> </tr> </tbody> </table> Ученику даётся текст на его языке и предлагается написать перевод на изучаемом языке. ## Как добавлять? Вы можете создать упражнения из любых сочетаний этих двух таблиц. В примере ниже задаются: * 20 упражнений типа "Пример 1" с 4-мя вариантами выбора * 10 упражнений типа "Пример 2" ``` ### Упражнения на слова урока [exercise] audio-original --> text-translation choose-from-4 20 text-translation --> text-original write 10 ``` Подобно тому, как подкрашены ячейки в таблице выше, вы также описываете тип упражнения и количество. В случае, если от ученика требуется выбор правильного варианта -- надо указать и количество вариантов для выбора. Каждому упражнению соответствует строка из условных обозначений вида: `givenType-givenLang --> requiredType-requiredLang activityType count` Возможные значения: | key | value | | ----------------------- | --------------------------- | | givenType, requiredType | audio, text | | givenLang, requiredLang | original, translation | | activityType | write, choose-from-N, order | | count | integer, percent, none | Подобные упражнения можно формировать из материалов типа: * oneLineOneFile * media с таймингом Если упражнения находятся далеко от основного материала, то надо указать его адрес в формате `chapterId/subchapterId` сразу после типа контента, например: `[exercise | 003/001]`. Если упражнение идёт сразу после материала, к которому привязано, то адрес можно не указывать. Если число упражнений не указано, оно будет равно количеству всех элементов в материале. Если указаны проценты `50%`, `25%` то число упражнений будет равно соответственно 50% и 25% от количества элементов в исходном материале. ## Толерантность к пользовательскому вводу (в разработке) Для упражнений где надо писать текст, логично добавить некоторый процент ошибок, которые может допустить пользователь, чтобы задание считалось выполненным. Так же в разных языках есть допустимые отклонения в тексте. Например: * в учебниках арабского текст пишут с огласовками, но если пользователь написал слово без огласовок -- в этом не должно быть ошибки, потому что норма арабского языка -- писать без огласовок; * в учебниках русского пишут ударение, -- но если его не написал ученик, это не должно быть ошибкой, потому что норма русского языка -- не писать ударение; * порядок слов не важен в некоторых языках, и его нарушение не должно быть ошибкой. Пока что мы проверяем тексты на строгое совпадение, но по мере общения с пользователями и представителями разных языков, мы будем настраивать подобные нюансы. ## Примечание Упражнение на написание слова/фразы -- намного сложнее упражнений с выбором из вариантов (в 20-30 раз). Написать слово из 5 букв -- это надо сильно напрячь память и сделать 5 выборов из 30 вариантов (букв в клавиатуре в среднем). Выбрать слово, которое уже на экране - это минимум памяти и 1 выбор из 4 вариантов (или сколько вы задали). Некоторые упражнения могут показаться очень легкими, например, послушать аудио и выбрать его текст из вариантов. В любом случае они дают гарантию что человек послушал все слова, прочитал их и правильно сопоставляет их. А если алфавит языка мало знаком ученику, то они могут быть вплоне сложными. Пока что результаты прохождения видны только ученику (самопроверка и закрепление). В будущем планируется собирать и выгружать информацию о процессе прохождения (для учителей, министерства образования и т.д.)