Meeting minutes - kostbash/lc GitHub Wiki

Идеи [16.04.2015]

  • Глобальное дерево умений:
    • Каждое дерево умений курса может быть связано с умениями других курсов (т.е. связываются не курсы, а их деревья умений)
    • Курс - это фрагмент глобального дерева умений, лендинг для посетителей, которые значют что хотят.
    • Возможно, стоит позволять авторам курсов присоединять свои курсы к любым курсам, но в паблик такие связи буду попадать тольк после прохождения модерации такой связи и доабвляемого фрагмента умений
    • Инструмент: глобальная диагностика по глобальному дереву умений
  • Пошаговое решение заданий (скрипты УЗ):
    • тело УЗ - скрипт
    • это позволит делать пошаговое решение заданий (динамическое определение проблемы, вывод подсказки, динамическое отображение соответствующих контролов).
    • Генераторы будут делать скрипты заданий (т.е. УЗ), меняя способ решения и его количественные параметры
    • Подсказки нужны, чтобы проверить правильность способа действия ученика при выполнении шагов заданий, а также последовательность выполнения шагов. После проверки, в случае необходимости, нужно демонстрировать последовательность шагов и способ выполнения каждого шага.
    • Подсказки начинают работать, когда ученик неверно выполнил заданий (в блоке типа Упражнение). Ученику последовательно показываем и предлагаем выполнить следующий шаг. Если он выполняет его правильно, предлагаем еще раз попробовать решить задачу. Если нет, показываем способ выполнения шага и тоже предлагаем решить. Если решить задачу опять не получается, повторяем шаг пока ученик не решит задачу или пока не завершим последний шаг решения.
  • Добавление диагностического теста в начало курса – исключение уже известных умений из прохождения (по аналогии с подходом Filtered)
  • Работа над ошибками в тесте. Возможность демонстрации ученику (например, из окна результатов теста) где были сделаны ошибки.
  • Включение рефлексии в блоки (для методологии создания курсов)

Динамические курсы [06.04.2015]

  • Как выбирать задания в блок:
    • Ввести понятие шаг умения. С точки зрения отбора заданий в блок это умение.
    • При редактировании умения (при двойном клике на умение в дереве умений курса) попадаем в задание шагов умения. Для каждого шага:
      • Теоретическая часть
      • Название. По умолчанию порядковый номер
      • Идентификатор (по которому будет просиходить отбор заданий в блок)
    • Должна быть возможность (при этом существующие задания должны ссылаться на те же задания на которые они и ссылались):
      • Добавления в заданное место нового шага
      • Удаление заданного шага
      • Добавление в конец шагов нового шага
    • При определении задания можно задать умение и номер шага данного умения
    • Набор шагов умения должно быть возможно преобразовать в последовательность умений (шаги становятся полноценными умениями).
    • При отображени в дереве умений выводится число шагов даного умения, а при наведении список названий шагов.
    • При создании нового умения, в нем по умолчанию 1 шаг с пустой теоретической частью и с названием "1".
    • При поиске заданий при указании умения (при этом не указаны шаги) подбираются задания со всеми шагами, первыми выбираются задания первого шага и т.д.
    • Поиск по умения осуществляем по двум параметрам:
      • основное умение
      • набор второстепенных умений (все из набора должны присутстоввать в отбираемых заданиях)
  • Как обеспечить неразрывность в продлджении усвоения:
    • В алгоритме скрипта при определении тип действия в блоке на первое место поставить проверку не нужно ли продолжить какое-либо умение, потом: диагностическое тестирование, тестирование, повторение, тестирование повторения, освоение нового.

Динамические курсы [19.03.2015]

  • Параметр курса определяющий после скольких циклов усвоения нового и его тестирования запускать диагностический тест.
  • Диагностический тест - универсальная процедура, выкалыаающая (отмечаем как нужно повторить умение) на дереве умений умения, которые следует усвоить заново. При входе скрипта в диагностический режим скрипт может запускаться в этом режиме несколько раз пока не будет выявлена вся цепочка непонятых умений. При выходе из диагностического теста скрипт запускается в обычном режиме и начинает повторять (а потом и тестировать) выколотые умения.
  • Параметр Вес (Сложность) который проставляется заданию и при отборе заданий в блок они выврдятся ученику во порядке веса.
  • Параметр курса, определяющий сколько циклов сколько циклов повторения (по кривой забывания) нужно показывать теоретические задания.
  • В динамических курсах части теста не нужны так как задания выбираются из всего пула заданий. Продумать реализацию.
  • Порог для умений брать один для всех из настроек курса.

Динамические курсы [06.03.2015]

  • Определения:
    • Умение: Название + описание (теоретическая справка) + связи с другими умениями
    • Группа умений: набор умений. Минимальная группа умений - это одно умение. Задание групп умений не обязательно для курса.
    • Скрипт курса: программный код
      • Результат выполнения скрипта:
        • определятеся название блока
        • определеятеся тип блока: тест или упражнение
        • подбирается набор заданий и их последовательность (в случае теста опредляются также части теста)
        • определяются умения блока и порог по каждому умению
        • необходимость добавления после выполнения блока признака окончания урока
      • При выполнении скрипт основывается на:
        • Базе заданий курса
        • Дереве умений курса
        • Истории данного ученика в рамках текущего курса: параметры каждого прохождения каждого задания курса к текущему моменту:
          • идентификатор задания
          • выполнено / не выполнено
          • умения данного задания
          • время прохождения
          • дата и время прохождения
        • текущие параметры (параметры измеренные сейчас и имеющие короткий период актуальности):
          • давление
          • пульс
          • уровень глюкозы
          • состояние зрачков
          • температура частей тела
          • время суток
          • общая оценка состояния
          • нахождение на кривых обучения и забывания по каждому пройденному умению
        • параметры ученика (параметры ученика вне зависимости от обучения и конкретного курса):
          • время фокуса внимания
          • параметры кривой обучения
          • параметры кривой проблемного усвоения (когда становится понятно, что ученик не понимает)
          • параметры кривой забывания (устаревания знаний)
          • восприятие типов информации
          • восприятие типов заданий
          • оптимальный размер блока
          • восприятие повышения сложности
    • Курс:
      • база заданий (у каждого из которых проставлены умения)
      • скрипт курса
      • список умений (возможно древовидный)
      • глобальные переменные для данного курса и данного прохождения курса учеником:
        • время последней активности ученика в курсе
        • кастомные переменные
  • Изменения в страницах:
    • Странциа курса: строится динамически на основании дерева умений данного курса
    • Страница теоретической справки: строится динамически на основании дерева умений данного курса
  • Продходы к созданию курса (примеры для которых будут реализованы мастера создания курсов):

Активности на первый этап и его начальную фазу [08.12.2014]

  • Фокусируемся на продвижении, контент не пишем пока не выйдем на 50 переходов в день извне
  • Для продвижения:
    • 5 ссылок в день (вечером после работы)
    • 1 статью в 3 дня с публикацией (на работе, вечером согласовываем и дописываем эти же вечером) с репостом в соц сетях
    • активно общаемся с пользователям (с утра на работе до 11:00):
      • пишем письмо, которые только что зарегистрировались
      • пишем письмо неактивным 3 дня
      • пишем письмо тем у кого сложности с вопросом и исправлением ситуации
      • пишем тем кто прошел курс
    • для freeedu:
      • пишем методические статьи (1 согласованная статья в 3 дня)
    • 1 запись в день кроме рпостов
  • Разработка:
    • неделя с 8 по 14 декабря: доработки по работе с пользователями для продвижения
    • далее "Катетеризация заданий"
  • Следим за конкурентами:
    • http://www.learnathome.ru
      • Функционал (первый понедельник каждого месяца)
    • ЯКласс (раз в неделю во вторник утром)
      • число посетителей в день
      • набор предметов
      • набор курсов с параметрами: класс, предмет
      • функциональность: новые возможности
    • interneturk.ru (раз в месяц)
      • Функционал (первый понедельник каждого месяца)
    • foxford.ru (раз в месяц)
      • число учеников
      • набор курсов
      • функционал

Динамические курсы 1 [22.07.2014]

Для решения некоторых педагогических задач недостаточно статических курсов (тех курсов, которые точно определяются при создании). Часто нужны курсы, которые подстраиваются под конкретного ученика и его задачи. В том числе подстраиваются прямо в процессе прохождения курса, на основании результатов выполненных учеником действий.

Задача - разработать систему для "программирования" курсов. Т.е. систему, позволяющую заложить в курс алгоритм, который оценивая результаты прохождения и особенности ученика будет строить курс по мере продвижения ученика.

Вводим понятие - шаблон блока. Это каким-либо образом заданный алгоритм, который на основании имеющихся в его распоряжении данных, наполняет блок заданиями из локальных заданий курса, соответственно определяется набор проверяемых умений и их пороги для данного блока. Самым простым способом определения шаблона блока является статическое задание заданий, т.е. отсутствие какого-либо алгоритма.

Напомним, что блок является у нас минимальный единицей кантовании работы ученика. Т.е. размер блока определяется размер сессии. Другими словами ученик может остановиться посередине урока и потом продолжить работу, но ученик не может остановиться посередине блока и потом продолжить работу.

Курс может содержать от 1 шаблона блока. Шаблоны блоков выполнятся последовательно. Т.е. пройдя по всем шаблонам, созданным определенным шаблоном блока ученик переходит к выполнению блоков, созданным следующим шаблоном блока. И так до выполнения всех блоков всех шаблонов. Заранее невозможно сказать сколько блоков ученику придется пройти в процессе работы над курсом. Это зависит от его успехов и особенностей алгоритма каждого блока, который будет определять овладел ли ученик навыками на достаточном уровне.

Алгоритм шаблона блока будет задаваться с помощью скриптового языка. Программа, заложенная в шаблон блока, опираясь на данный накопленные системой о прохождении курса и на задачи курса, будет формировать блоки и проверять условие возможности завершения блока. Параметры, к которым нужно иметь возможность обращаться из кода шаблона блока для построения алгоритма:

  • история работы ученика (параметры для обновления которых нужно действие ученика):
    • пройденные курсы
    • пройденные умения
    • оценки по пройденным умениям
  • текущие параметры (параметры измеренные сейчас и имеющие короткий период актуальности):
    • давление
    • пульс
    • уровень глюкозы
    • состояние зрачков
    • температура частей тела
    • время суток
    • общая оценка состояния
    • нахождение на кривых обучения и забывания по каждому пройденному умению
  • параметры курса (ограничение на курс, сделанные перед прохождением курса, для конкретного ученика и для конкретного прохождения. время жизни этих параметров - курс):
    • общее число часов, отведенное на курс
    • требования к каждому умению по окончанию курса
    • диапазон длительности занятий
    • ограничение на число занятий
    • предполагаемое время прохождения занятий
    • ограничение на сложность занятий
    • ограничений на типы заданий
    • необходимость авторизации родителем/педагогом некоторых действий
  • параметры ученика (параметры ученика вне зависимости от обучения и конкретного курса):
    • время фокуса внимания
    • параметры кривой обучения
    • параметры кривой проблемного усвоения (когда становится понятно, что ученик не понимает)
    • параметры кривой забывания (устаревания знаний)
    • восприятие типов информации
    • восприятие типов заданий
    • оптимальный размер блока
    • восприятие повышения сложности

Многие параметры будут рассчитываться на основе базы данных, хранящей все действия ученика в системе:

  • история выполнения заданий:
    • для каждого задания будут записаны:
      • время суток выполнения
      • время выполнения
      • ссылка на задание (умения, сложность)
      • результат
      • в рамках какого курса, урока и блока выполнено задание
  • движения мыши
  • скорость навигационных действий

Для облегчения программирования шаблонов блоков будут использованы: - мастера построения кода - визуальные диаграммы, компилируемые в код

Разбиения курса на уроки на начальном этапе будет выполняться по числу блоков/числу заданий/тестов. Так как заранее невозможно предсказать число блоков, то и разбиение блоков на уроки будет носить условный характер. Так же как и финальное число уроков в курсе. При этом статические курсы будут использоваться наравне с динамическими.

Для обеспечения снижения риска ошибок проектирования следует проработать этапы внедрения динамических курсов, расширение функциональности скрипта с постоянной поддержкой визуальных средств разработки статических курсов.

Виды заданий для генератора английского - слова [07.06.2014]

  • Точный ответ:
    • дано картинка: воспроизвести написание на изучаемом языке
    • дано написание на изучаемом языке (озвучка): воспроизвести написание перевода
    • дан перевод: воспроизведите написание на изучаемом языке
  • Выбор одного из списка:
    • те же варианты, что и для точного ответа, но с добавлением возможности выбора неправильных ответов. Неправильные ответы выбираются из того же словаря по тем же тегам. Если нехватке слов с теми же тегами в выбранном словаре для заданного числа неправильных ответов, то использовать случайные слова из выбранного словарю
    • выбор тега для написания слова на изучаемом языке
  • Сопоставление:
    • аналогично предыдущем трем видам задания
    • сопоставление написание слов на изучаемом языке и тегов (в том числе "исключить лишнее слово из списка")
  • кроссвроды, word search, змейка

Генератор для английского - слова [07.06.2014]

  • генератор работать со списком словарей слов (копирование список и их частей)
  • поля словаря слов:
    • написание на изучаемом языке
    • html-текст описания, в большинстве случае просто картинка (опциональное поле)
    • написание перевода
    • часть речи
    • расширяемый список тегов
  • для запуска генератора выбирается один словарь на основе которого будут генерироваться задания
  • при редактировании словаря необходима фильтрация по тегам, написанию
  • фильтрация словарей по пользователю (словари доступны всем), названию, тегам, названию
  • Настройки запуска:
    • словарь
    • определяем выборку из словаря для которой нужно генерировать задания. Фильтрация по тегам, ручная выборка.
    • указываем тип задания которые нужно сгенерировать. Подробно описать типы.

Объекты обучения 2 [06.06.2014]

  • не делать отдельную сущность объекты обучения и словари объектов обучения
  • так как применение задачи в описанном виде видеться только для пополнения словарного запаса при изучении языков, т.е. задач довольна узкая. А также автоматизируемым является ограниченный набор типов заданий, то имеет смысл сделать словарь слов как настройку определенного генератора
  • предполагается сделать генератор заданий для запоминания слов иностранного языка
  • генератор будет иметь настройку (кнопка с переходом в отдельное окно) - список слов доступных для генерации заданий
  • словам в списке будет возможность проставить любой тег, для того чтобы их можно было отбирать для генерации заданий
  • генератор должен иметь возможность генерировать различные типы заданий (параметр генератора), возможно случайное определение типа или набор типов заданий
  • Продумать: список слов хранить для каждого курса свой. Иметь возможность импортировать список из курса в курс. Продумать реализацию.

Генераторы для математики [29.05.2014]

Делаем еще два генератора:

  • генератор простых текстовых задач: аналогично генератору примеров шаблон -> формула ответа, и поле для генерирования условия задачи с переменными, для которых также задаются области значений.
  • генератор задач single choice: условие как в предыдущем генераторе, шаблон для правильного ответа, шаблоны для неправильных ответов, ограничения на операнды, доп. ограничения (как в генераторе примеров)

Типы заданий [29.05.2014]

Классифицируем задания по следующим типам:

  • content - не требует ответа, для теор. части

  • precise answer - точный ответ с текстовым полем для ввода

  • single choice - выбор одного правильного ответа из списка предложенных

  • multiple choice - выбор нескольких ответов из списка предложенных

  • any of given answers - поле для ввода, подходит любой ответ из списка

  • reorder - упорядочить объекты. Объектами могут быть блоки, визуализация элементов словаря.

  • match (+ restrictions) - проставить соответствия между объектами. Для определения задания нужно задать:
    - типы объектов (блоки /слова/картинки) участвующие в сопоставлении - списки объектов каждого типа - выбрать доступное визуальное отображение для каждого объекта и общее оформление. - список ограничений на возможные связи - правильные связи (в том числе разной мощности) Пример1: есть список слов нужно распределить их по существительным и глаголам. Задаем два типа объектов: слова и области. Добавляем список слов как объекты типа слово и две области для глаголов и существительных. Выбираем визуальный вариант для каждого типа объекта, например, для слов "слово в рамочке", для областей - "колодец". Общее оформление - "деревня" (в этом оформлении плейсхолдеры для мест куда будут помещены колодцы нельзя перетаскивать). Пример2: есть текст с вырванными словами. нужно вставить в пропуски правильные слова. Задаем два типа объектов: пропуски и слова, которые нужно вставить. добавляем нужно число пропусков и слова для вставки. Определяем визуальный вариант для слов - элемент выпадающего списка, для пропусков - "выпадающий список". Выбираем визуальное оформление - "текст с пропусками". Задаем список ограничений на связи: для каждого пропуска доступные для выбора в этом месте слова. При отображении в местах соответствующих пропусков будет отображаться выпадающий список с доступными для выбора (определенными ограничениями) словами.

  • arbitrary answer (как общий случай fill the gaps) - заполнение объектов текстом. Задание отсылается на проверку преподу так как текст может быть введен любой. При создании задания задается тип оформления, например, с настройкой в виде текста. Определяются число и расположение пропусков.

Объекты обучения [28.05.2014]

  • возможность имеет смысл ввести понятие "объект обучения" и соответственно "словарь объектов обучения"
  • словарь объектов обучения - есть атрибут курса. Курс может иметь несколько словарей
  • словарь содержит список объектов
  • для каждого словаря, при его создании можно задать набор полей, характеризующих элементы словаря
  • вариант применения: словарь английских слов для запоминания в рамках курса
  • генераторы могут на основании словарей соответствующего курса генерировать задания, использующие объекты обучения. Генераторы не должны "знать" о наборе полей, каждого словаря, так как генератор не должен быть привязан к курсе. Генераторы могут использовать поля для словарей для составления заданий определенного типа.
  • объекты обучения могут использоваться для проектирования курса (распределение объектов по ходу курса), как элемент задания, на который задание ссылается, для отображения списка объектов, которые изучаются в рамках курса
  • возможно использовать цитируемость объектов а заданиях курса для определения рапределения и как параметра генератора