«АиАЯ?» — сказала говорящая голова

Это уже второй мой первый семестр по курсу «Алгоритмы и алгоритмические языки» (сокращённо АиАЯ), который я читаю дистанционно для Севастопольского филиала МГУ. Курс базируется на Python3. Сочетание новизны программы, специфики языка и особенностей севастопольской аудитории породило целый букет спецэффектов, но о них после. Возможно, в виде доклада на конференции «Свободное программное обеспечение в высшей школе». В прошлом году я слишком занят был самой программой, а вот сейчас есть время рассказать о том, как проходят лекции (одну из которых я здесь выкладывал уже) и практика, что в них хорошего и что не очень.

Структура курса

Оценка по курсу выставляется на основании

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

Параллельно (и независимо от лекций) проходит т. н. «практикум на ЭВМ», который проводит преподаватель филиала на месте. По практикуму полагается зачёт.

Как всё происходит

Лекции

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

В лекционном классе есть небольшая маркерная доска, очень качественные камера и аудиторный микрофон и здоровенный телевизор для передачи картинки и звука. В студенческом — несколько рядов парт (человек на 30) и опять-таки здоровенный телевизор и качественные камера и аудиторный микрофон, так что голоса с мест слышны вполне отчётливо.

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

Что не работает в этих условиях? Некоторые лекторские приёмы — использование «длинной» доски (чтобы было куда смотреть/ссылаться позже); энергичная беготня с танцами вдоль доски и вглубь аудитории (переключение внимания, а ещё слушатели вертят головами и разгоняют кровь в шеях и, соответственно, мозгу).

В лекциях я активно использую содержимое «лекций» Moodle в качестве слайдов, и ещё активнее — живую демонстрацию (интерпретатор командной строки Python делает этот процесс простым и понятным). Так что всё равно приходится перед камерой сидеть и изображать говорящую голову. Которая, кстати сказать, в камере выглядит куда более осмысленно, чем лектор в живой аудитории, который сгорбился над своим ноутбуком и что-то покрикивает в экран, не глядя на слушателей.

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

[........................]
[........................]
[.......Телевизор........]
[........................]
[........................]
[.........камера.........]
      [_____________]
      [___Монитор___]
      [_____________]
      [_____________]

Кстати, лично мне (я близорук, и очками это исправляется не до конца) оказалось даже удобнее налаживать обратную связь со слушателями именно так, чем вживую в большой аудитории. Потому что в большой аудитории не слишком хорошо различаю лица и в первом ряду, а тут я вижу всех.

Практические занятия

Это самая сложная и стихийно сложившаяся часть, которая, тем не менее, оказалась довольно эффективной.

Занятия проходят в компьютерном классе. После различных экспериментов стало понятно, что звук в аудитории нужен, как минимум, голос преподавателя. Так что Один компьютер в классе — т. н. преподавательский — занимается трансляцией голоса на колонки (при необходимости в его микрофон можно задать вопрос). ...

Контрольные

Экзамен

Дистанционные инструменты и их применение

Отдельно останавливаюсь на том, с какими техническими средствами мы работаем. Хочу обратить внимание на то, что в качестве программной платформы практически везде используется линейка дистрибутивов «Альт образование». Весьма показательно оценить процедуру развёртывания о объём доработок на месте (они были, и приличные): это будет план по выпуску следующей версии дистрибутива.

Аудио-видео

...

Практические занятия

Moodle

Базовый ресурс для курса — факультетский Moodle. Каюсь, я не использую и десятой доли возможностей этой платформы, главным образом потому, что любая подготовка материалов — очень ресурсоёмкое занятие.

Из Moodle используются четыре типа материалов:

  1. «Лекция». Фактически, в режиме слайдов: между разделами всегда только один переход. Сами разделы служат в основном для группировки по темам и для того, чтобы избежать эффекта tl;dr. «Лекции» служат одновременно и демонстрационным материалом, и конспектом при подготовке к экзамену.

    • Несколько начальных тем (нормальные алгорифмы Маркова, машина Тьюринга, синтаксические диаграммы) сопровождаются соответствующими эмуляторами, которые написаны на JavaScript и запускаются прямо в браузере. Поскольку страницы Moodle можно редактировать непосредственно в виде HTML, встроить эмуляторы в них технически несложно. И я даже так и сделал, превозмогая трудности. В эмуляторах же можно решать и домашние задания по этим темам.

      • <!> Для двух других тем (общерекурсивные функции и БНФ) тоже хочется иметь такие эмуляторы.

    • Формат лекции подразумевает вопросы для самоконтроля, а прохождение этих вопросов сопровождается оценкой. Однако все вопросы скрыты до сессии: лекции посмотреть можно, оценку получить нельзя
  2. «Задание». Задание в Moodle предполагает написание некоторого «эссе», в насем случае — программы. Оценивание происходит вручную. Программы-решения прикладываются к ответу. Если задача проходит через систему тестирования заданий, ответом является ссылка на успешное выполнение всех тестов в этой системе.
  3. «Тест» используется для контрольных. Включает в себя несколько «вопросов» из общего «банка вопросов» Moodle, однако так вышло, что задачи все тоже типа «эссе», т. е. на написание непосредственно программ: опросники и иные типы вопросов отчего-то использовать не удалось
  4. «Чат». Используется для проведения практических занятий. Представляет собой типичный чат, через который я дублирую наиболее важные вопросы и утверждения, сделанные устно. Были попытки использовать для семинара другие разработанные для этой цели инструменты (например, форум специального вида), но дело упёрлось опять-таки в подготовку большого объёма материала.

EJudge

Больше половины домашних заданий оформлено в виде задач для EJudge с тестами. EJudge — система проведения олимпиад, но для формальной проверки домашних заданий вполне подходит. TODO

Компьютьерный класс

/!\

Методические приёмы

Про будущий дистрибутив -- что доделывалось