Секция 3: «Формы работы со студентами» 23 октябяря 11:50 – 12:30

 

Доклад «Смешанное проектное обучение программной инженерии» 

 

Докладчик:

Кирилл Кринкин
заведующий кафедрой математического обеспечения и применения ЭВМ ЛЭТИ, JetBrains Research, к.т.н.

Аннотация: 

Дисциплина “Программная инженерия” является краеугольным камнем обучения профессии разработчика программного обеспечения. Основная сложность заключается в том, что, помимо профессиональных навыков, которые хорошо описаны в пакете стандартов SWEBOK (Software Engineering Body of Knowledge) студентам требуется освоить целый спектр, так называемых soft skills, без которых невозможно работать над проектами в командах. 

В докладе будет рассмотрен уникальный опыт построения процесса обучения навыкам разработки программного обеспечения в командах, который зарекомендовал себя на кафедре МО ЭВМ в СПб ГЭТУ “ЛЭТИ” в смешанных группах студентов разных курсов. Форма реализации -- проектно-ориентированный семестровый курс, в котором одновременно участвуют студенты третьего курса (как разработчики) и студенты пятого курса (как руководители проектов), а также преподаватели в роли “играющего тренера”. Глубокое погружение студентов в процесс разработки достигается тем, что  в качестве проектов студентам предлагаются реальные задачи от кафедры и ее индустриальных партнеров,  и используется итеративный подход к разработке на основе гибких методологий, который постоянно держит участников процесса в тонусе. Система оценивания на основе управления требованиями к программному обеспечению позволяет студентам не только получить опыт, но и изготовить реальный продукт, который может быть использован конкретным заказчиком. Опора на современные технологии онлайн-образования позволяет ниве проблему различающегося начального уровня знаний студентов, а также достигнуть быстрого освоения базовых технологий для конкретного проекта технологий. 

 

Запись доклада

Презентация доклада

 

Резюме: 

Индустрия IT и связанные с ней области развиваются очень быстро, сейчас это наиболее растущий сектор экономики и рынка. Образование в этой области, как правило, не успевает вовремя подготовить даже актуальные рабочие программы, не говоря уже о специалистах. Так сложилось, особенно в российских реалиях, что многие вузы не являются реальными драйверами IT-индустрии. Таким драйвером является бизнес. Классическое построение процесса обучения в вузе – это собрание студентов вокруг ведущих ученых и профессоров, которые занимаются исследованиями и делятся своими системно изложенными знаниями. А в сфере IT, чтобы быть профессионалом и делиться знаниями со студентами, нужно работать в этой сфере. Анализ образовательных программ по программной инженерии последних 5-10 лет, показывает, что исследовательские навыки, soft skills практически в них не заложены. Они стали появляться года три назад. 

Компания Deloitte в своём отчёте за 2017 год приводит рейтинг ключевых навыков специалистов – коммуникация, критическое мышление, умение находить решение проблемы, самоорганизация, умение работать в команде. Но в русле технических дисциплин технических вузов всё это не является ключевым. Часто процесс обучения устроен так – есть технические ключевые дисциплины и есть небольшая пристройка из гуманитарных дисциплин, которые ведут специалисты, занимающиеся гуманитарными вопросами, они недостаточно близки к реальной технической работе. 

Рассмотрим варианты обучения программной инженерии. 

- Подход «зубрёжка теории». За основу берётся Software Engineering Body of Knowledge (SWEBOK), изучается набор дисциплин, классических доменов в этом наборе стандартов и проводятся экзамены. Самый неэффективный путь подготовки программного инженера.

- Подход «зубрёжка технологий». Акцент сделан на разработке программ. Изучаются конкретные инструменты, технологии и домены. Этот подход эффективнее, студенты более адаптированы к среде, в которой им придётся работать после завершения вуза. 

- «Классическое» проектное обучение самое продвинутое. В нём реализуется генеральная идея – студенты должны учиться, выполняя проекты. Есть набор проектов и небольшие команды студентов, выполняющие их. 

У этих методов обучения есть общие недостатки. Во-первых, студенты думают, как сделать продукт и удовлетворить требования преподавателя, и не задумываются о конечном пользователе. Во-вторых, проект студента может быть принят с ошибками, плохим дизайном интерфейса. В-третьих, неравномерность нагрузки – студенты нередко работают над проектом в последний момент. То есть, нет интеграции с реальными условиями. Для преодоления этих недостатков есть набор идей для их «интеграции в подсознании» студентов: программы пишутся для людей, ты лично отвечаешь за проект, нужно проявлять инициативу, процесс разработки продукта является частью продукта, продукт всегда является образом создавшего его процесса. 

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

Идея, которую мы сначала отлаживали на множестве студенческие школ – это Chaordic Learning. Термин соединяет в себе «хаос» и «организация», что означает позицию внутри неопределённости и полной определённости, что позволяет развивать умения студентов. Максимум работы по достижению результата должны выполнять студенты, а порядок организации работы и само обучение диктуются решаемой задачей. При этом необходимо следовать требованиям нормативной базы, придерживаться чёткого алгоритма выставления оценок.

Перед студентами стоит задача сделать реальный проект с последующим внедрением. В курсе есть обзорные лекции, которые проводят специалисты, на практике занимающихся разработкой программного обеспечения. Формируются смешанные команды студентов из бакалавров и магистров. Из SWEBOK формируется базовый набор дисциплин, Agile технологии, обеспечивают активность среды. Семестр поделён на 4 итерации. На первой итерации студенты разбиваются на команды, знакомятся и формулируют требования к проекту. Для уравнения знаний студентов предлагается пройти онлайн курсы. Лидеры проектов – магистры. Они занимаются управлением задачами, командами, проверкой кода. Бакалавры занимаются программированием и тестированием. Кураторы проводят встречи с командами, согласовывают архитектуру проекта с командой и руководителем курса, предоставляют результаты работы за итерацию руководителю курса, проверяют задачи, проекты и оценивают участников. За 4 года такой работы 194 студентов выполнили 44 проекта.