Что нужно для создания успешного онлайн-курса программирования? Некоторые идеи предоставлены командой CS Circles, которая предлагает курс Python для начинающих.
Нынешний взрывной рост доступности онлайн-контента по информатике радует всех, кто считает, что программирование является таким же важным навыком, как чтение и письмо. Однако успех обучения программированию зависит не только от содержания, но и от предоставления структуры, которая мотивирует и отслеживает прогресс. В недавней архивной статье Дэвид Причард и Трой Васига обсуждают философию и структуру Computer Science Circles, бесплатного вводного курса программирования на базе Интернета.
Курс преподает Python для начинающих и состоит из примерно 30 интерактивных уроков, которые гарантируют, что учащийся с самого начала начинает программировать с объяснениями и упражнениями, объединенными в гибкой среде.
Объясняя свой подход, Причард и Васига заявляют:
Мы избегаем традиционного разделения на содержание урока / лекции «и наборы задач». Наша позиция заключается в том, что такая структура подвергает учащегося риску потерять интерес во время урока, а также распределяет его внимание между повторением, упражнениями по чтению и написанием решений, когда они наконец начинают работать на практике. Мы считаем, что с педагогической точки зрения лучше, если упражнения будут встроены в сами уроки: это снижает монотонность и поддерживает целенаправленное продвижение ученика. Удаление перезагрузки страницы и обработка взаимодействия учащегося / авто-оценщика с помощью асинхронного JavaScript (a.k.a. ajax) помогает обеспечить бесперебойную работу.
Курс начинается с упражнения Hello world, которое знакомит студентов с интерфейсом и Python. Затем он наращивает переменные, вызовы функций, комментарии, кавычки и основы, необходимые для написания или понимания элементарной программы, достигая рекурсии, идентичности объекта и значения и эффективности к концу. Попутно есть уроки, которые охватывают такие практические вопросы, как ошибки, проектирование и отладка, а в нескольких уроках есть упражнения, основанные на уже представленном материале, для закрепления знаний.
Автогрейдер — ключевой компонент этого курса Python, который студенты могут выполнять в своем собственном темпе с помощью или без помощи «гуру» — учителя или знающего друга, который может отслеживать прогресс и получать вопросы с помощью кнопки «Справка», которая также можно использовать для прямой отправки вопросов команде CS Circles. Автогрейдер хранит историю отправленных упражнений, доступную как студентам, так и их гуру.
По мере продвижения курса вводятся другие инструменты. Одна из них — это простая консоль, на которой оценщик может опробовать код. Другой инструмент отладки — это визуализатор Python с открытым исходным кодом (тот же, что используется Online Python Tutor), который хранит и воспроизводит шаги выполнения программы вместе с визуальным представлением всех переменных / стека вызовов. Для более поздних уроков представлен редактор, предоставленный проектом CodeMirror, который выделяет синтаксис, перечисляет строки кода, сопоставляет скобки при вводе пользователем и выполняет интеллектуальные отступы.
Сайт был запущен менее года назад, и на сегодняшний день на нем зарегистрировано более 4000 пользователей, которые выполнили 90 000 упражнений. По оценкам, веб-сайт обрабатывает 1000 посещений и 7500 отправок кода каждый день, причем около 50% трафика поступает от пользователей, которые не вошли в систему. Преимущество входа в систему заключается в том, что сайт записывает ваш прогресс, но нет сертификата для завершение всего курса.
CS Circles может не относиться к MOOC в той же лиге, что и классы Coursera, Udacity и EdX, но его доступность и интерактивность делают его привлекательным вариантом для студентов, которым нужен быстрый и гибкий способ изучения Python.