Алексей Владыкин


Курс по Java на Stepic

30 декабря 2015

Самое значительное для меня событие прошедшего 2015-го года — запуск онлайн-курса по Java на платформе Stepic. Расскажу, как это было, и поделюсь впечатлениями.

online screenshot

Эта история началась в июле, когда в дополнение к традиционному осеннему курсу по Java в Computer Science Center мне предложили записать онлайн-курс. Речь не про съемку и выкладывание моих лекций (видео и так давно в сети), а про разработку нового курса специально под онлайн-формат. В таком курсе должна быть как теория, снабженная контрольными вопросами, так и многочисленные практические задания. Все задания предполагают обратную связь: студент сдает свое решение и видит результат проверки, получает за это баллы.

Обсудив с организаторами детали, мы сошлись на том, что онлайн-курс будет состоять из шести модулей (на прохождение модуля студентам отводится неделя) и покроет первую половину того материала, что я даю в очном курсе. Запуск курса наметили на середину сентября, чтобы включить курс в онлайн-программу по основам программирования (совместный проект Академического университета и Computer Science Center). Сентябрьский запуск был продиктован ещё и моим желанием за счет онлайн-курса расширить и улучшить очный курс. Идея в том, чтобы студенты сначала знакомились с новой темой в онлайне, а затем приходили ко мне на лекцию для закрепления пройденного, для прояснения непонятных мест и для рассмотрения более сложных и интересных вопросов, различных подводных камней.

Пока мы утрясали оргвопросы, уже начался август, т.е. до запуска оставалось меньше полутора месяцев. Сроки сжатые, но план выглядел вполне реалистично. Казалось бы, этот курс я читаю уже четвертый год, материал есть, задания можно взять из контрольных прошлых лет, можно не напрягаясь выдавать по модулю в неделю и всё успеть…​ Разумеется, в реальности всё оказалось не так просто.

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

stepic studio

Небольшое отступление о процессе съемки. Студия Stepic работает в режиме самообслуживания: лектор сам запускает/останавливает съемку, дистанционно управляя видеокамерой. В студии в это время больше никого нет. Сырой материал, отснятый лектором, впоследствии монтируется специалистами: вырезается фон, накладывается презентация, фрагменты склеиваются и получается окончательный результат.

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

За час работы в студии при хорошем раскладе удавалось записать десять минут финального видеоматериала. Остальное — подготовка и неудачные дубли. Всего я провел в студии около 80 часов. Это в дополнение к основной работе, которую никто не отменял. Только пару раз я брал отгулы, чтобы побольше времени провести в студии или перевести дух после серии бессонных ночей.

Вторая сложность — задания. Надо было придумать большое количество нескучных контрольных вопросов и задач, которые бы:

  • проверялись полностью автоматически (вручную проверять решения от тысяч студентов — удовольстие ниже среднего);

  • и при этом не допускали бы чисто механического решения.

Поясню второй пункт. Есть много хороших вопросов, проверяющих знание языка, которые формулируются как «что напечатает эта программа?» и далее некоторый листинг. Я люблю задавать такие вопросы на собеседованиях и включать их в контрольные работы. Однако для онлайн-курса они совершенно не подходят, т.к. студент может элементарно скопировать код, запустить его и получить ответ, не включая мозг. Поэтому пришлось придумывать новые задания других типов, а старые контрольные переиспользовать почти не удалось.

Самые трудные в подготовке задания — те, где студенты должны написать программу, а Stepic должен её автоматически проверить. Логика проверки решения может быть реализована только на Python, это ограничение платформы Stepic. В честь этого пришлось срочно изучать азы программирования на Python. В идеале чекер должен не просто сказать, что «завалился тест №3», а дать намёк, что не так с решением, не раскрывая тестовые данные. Пройдя через это, ответственно заявляю, что придумывание тестов и написание хороших чекеров — целое искусство.

К счастью, с подготовкой задач на программирование мне помог Артём Попов. Он придумал самые забористые задачи курса, в которых удивительным образом сочетается интересное условие и необходимость использования всех пройденных тем.

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

Результат трёх месяцев напряженной работы — здесь.

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

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

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

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

К оглавлению блога