Есть известная шутка: «Как выучить английский за месяц?» — «Никак». Научиться программировать за месяц – тоже утопия. А вот за пару семестров… Когда в Томском госуниверситете создавалась Высшая IT-школа (HITs), перед ее руководителями встал вопрос: какие инструменты использовать, чтобы прогресс студентов по профильному предмету был стремительным? Первая версия платформы для обучения основам программирования была сделана на зарубежной системе, позже она переехала на собственный движок и получила название CODE Hedgehog («Еж» в переводе на русский). Подробнее о платформе – в специальном проекте Tomsk.ru и ТГУ.
1. Как учат программированию в стандартном варианте?
В высшем образовании до сих пор главную роль играет преподаватель. Это справедливо, но, помимо творческой работы, у него очень много рутинной нагрузки: выдать задание, проверить задание… Например, обучение основам программирования у айтишников происходит так: студент приходит на пару, получает лабораторную работу, пишет ее, сдает на проверку, и преподаватель выясняет: а нет ли там ошибок? А правильно ли все работает? В таком «ручном режиме» удается сделать максимум две «лабы» в неделю, всего, получается, около 30-ти за семестр. Прогресс происходит медленно…
Когда айтшников нужно много и быстро, интенсивность обучения должна возрасти в разы. Но это требует пропорционального увеличения числа преподавателей. А их физически нет… Выход один: использовать инструмент, который позволяет студенту учиться без активного вмешательства «живых» людей. Таким инструментом и стала платформа адаптивного обучения программированию CODE Hedgehog.
Олег Змеев, директор HITs ТГУ:
«Мировой рынок программных продуктов складывался достаточно долго, с 1960-х годов прошлого века, и заместить иностранное ПО в условиях ограниченного времени и ограниченных ресурсов невозможно. Поэтому если мы рассматриваем задачу импортозамещения в пользовательском сегменте, то сначала, на наш взгляд, надо написать математический пакет, а не средства разработки для этого математического пакета.
«Еж» и стал таким проектом – мы сделали не ПО для создания образовательной платформы, а самую платформу. Проект мы задумали еще к первому набору школы в 2017 году – понимали, что для того, чтобы справиться с заявленным темпом подготовки программистов, нужно кратно увеличивать скорость освоения базовых навыков. Мы хотели «упаковать» все программирование, которому по обычной бакалаврской программе учат четыре года, в два семестра».
2. Кто создал «Ежа»?
HITs – в каком-то смысле айти-компания: школа может сама себе заказывать программные продукты, потому что у нее есть свои разработчики – преподаватели и студенты. Первая версия CODE Hedgehog была сделана ими на импортной системе, которая называлась Ejudge (студенты сократили ее до «Еж» — отсюда и пошло название собственной платформы).
Олег Змеев:
«Первые два-три года мы эксплуатировали систему, в основе которой лежало зарубежное ПО с открытым кодом. Мы ориентировались на платформы, которые применяются, например, на чемпионатах мира по программированию. Потом мы выявили места, которые нас не устраивали по производительности и безопасности, и сделали собственный движок. В текущем семестре первокурсниками HITs на «Еже» сдано уже пять тысяч задач. Учитывая, что на первом курсе учится 90 человек, каждый студент за 2,5 месяца сделал в среднем 55 задач».
3. Как это работает?
Студент садится дома, открывает платформу, пишет код, отправляет на проверку – и система сама проверяет, правильно или нет. Не справился – есть время подумать, погуглить, понять ошибку и с новым вариантом повторить попытку. Преподаватель, конечно же, не выключен из системы, но на его долю приходятся только те задания, которые автоматически проверить нельзя (например, стиль кода). Но при этом на проверку стиля преподаватель садится полностью уверенным, что то, что написано – работает. Машина сэкономила ему время.
Студенты-первокурсники начинают работать на «Еже» с первой пары. Преподаватель в реальном времени видит их прогресс – в систему вшита рейтинговая система.
Олег Змеев:
«Как и любая платформа, «Еж» допиливается постоянно, мы хотим расширить наш подход на другие предметы. Например, один из ключевых навыков backend-разработчика – уметь писать оптимальные запросы к базам данных, чтобы достать оттуда данные. Сейчас мы работаем над тем, чтобы у студентов-второкурсников соответствующей специальности платформа формировала навык написания запросов.
Автоматизация обучения позволяет нам добиваться целей по скорости обучения: к концу второго курса наши студенты проходят собеседования на позиции junior-разработчика (начинающего программиста, которые владеет базовыми инструментами). На четвертом — становятся middle-разработчиками. Причем учебу не бросают: типа, больше учиться нечему. Мы им сразу говорим: если за первые два года обучения вы смогли получить полноценную работу, то за следующие два года мы теоретически упакуем опыт, который вы получаете на работе, чтобы вы его отрефлексировали и очень быстро карьерно росли. Ваша рыночная стоимость к концу бакалавриата как минимум удвоится. И у нас это реально получается».