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

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

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

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

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

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

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

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

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

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

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

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

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

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

Недостатки и планы на будущее