IT-образование в ВУЗах

17 мая 2014 г.

Окончился очередной учебный год в университете. Ниже будет мой отчет по работе на IT-специальности. Возможно кому-то тема обучения в ВУЗе близка, буду рад вашим комментариям и замечаниям, идеям как можно сделать лучше.

На данный момент у меня 4 года опыта преподавания в ВУЗах. Первые 3 года вел ООП и Технологии программирования у 4-го курса на кафедре Информатики в ЮУрГУ. Этот опыт я уже описывал в статье Обучение IT-специалистов в университете. Текущий год я провел на ВМИ в ЮУрГУ и эпизодически в ЧелГУ на нескольких лекциях.

Эволюция отношения к студентам

Когда я только пришел в университет, все вокруг убеждали меня, что студенты уже не те. В школах их ничему не учат. В университете они ничему не учатся. В общем, уровень нынешних студентов никуда не годится.

И я верил. Я даже в какой-то момент именно так и думал. Но прошло определенное время и стало очевидно, что это не так. За разговорами про глупых студентов пряталась некомпетентность преподавателей, нежелание сделать лекции интересными.

На самом деле студенты схватывают всё очень быстро. Последняя курсовая, которую они делали, была создана с DVCS, CI, Kanban-доской и всё это было интегрировано между собой. Причем я намеренно не давал подробного описания систем контроля версий и нюансов CI, всё это студенты нашли и изучили сами. Некоторые присылали мне скринкасты с описанием их систем вместо отчетов на А4, по-моему отличная идея.

Насчёт скорости восприятия вспоминается Эффект сотой обезьяны. Видимо использование некоторых практик стало насколько популярным, что для новых IT-специалистов нет сложности в усвоении и понимании.

Далее я опишу своё видение обучения, как и почему оно строилось именно так. Буду рад вашим предложениям.

Программа обучения и цели

Год назад я ушёл с кафедры Информатики, т.к. не смог ставить тройки и зачеты за незнание предмета. На фоне моего нежелания у нас вышел конфликт с зав. кафедры. Практически сразу меня пригласили на кафедру ВМИ вести Методологии управления проектами на 4-м курсе. Дали всего 11 пар, не так много для глубокого понимания предмета.

Задачи, которые ставит перед собой эта дисциплина:

  1. Систематизировать знания участников курса по основным принципам гибкой разработки и классического подхода
  2. Изучить основные подходы современной разработки программного обеспечения: Agile (Scrum, XP, Crystal) и Lean (Kanban), от начала работы над проектом до выпуска и поддержки работающего продукта
  3. Сформировать компетенции применения в практической деятельности различных подходов к управлению проектами разработки ПО

Задача довольно амбициозная для 11 пар, как считаете? Нужно было придумать способ донести информацию как можно проще, попробовать всё на практике и дать набор литературы для изучения.

Организация процесса и игра в лего

В итоге я решил поступить следующим образом:

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

Курсовой проект

Тематику курсовых определяли сами студенты. Важным критерием оценки является:

  1. Использование DVCS с открытым хостингом. Например, github.com
  2. Использование электронной доски. Например, trello.com
  3. Использование CI-сервера. Например, appharbor.com
  4. Интеграция DVCS, электронной доски и CI-сервера

Кроме того, у меня было право поменять тему, если она была банальной. Не хотелось видеть очередные пятнашки или что-то подобного уровня.

Курсовые по моему предмету решили объединить с курсовыми по ГИС. Получилось, что из курса по ГИС они взяли тему, а из моего курса методологию работы над проектом.

Зачёт

Формальные вопросы для зачета:

  1. Методики, достоинства и недостатки, границы применимости Waterfall
  2. Методики, достоинства и недостатки, границы применимости Scrum
  3. Методики, достоинства и недостатки, границы применимости Agile
  4. Методики, достоинства и недостатки, границы применимости RUP
  5. Методики, достоинства и недостатки, границы применимости DevOps
  6. Методики, достоинства и недостатки, границы применимости XP
  7. Методики, достоинства и недостатки, границы применимости Lean
  8. Методики, достоинства и недостатки, границы применимости Kanban

На зачете я разрешал пользоваться всё, что поможет, включая Интернет. Но когда студент подходит сдавать, то читать с листочка нельзя, мы убираем всё, что может помешать непринужденной беседе. Можно было положить перед собой только общий план рассказа.

Зачет стоится на диалоге между преподавателем и студентом. Например, типичный вопрос, когда кто-то рассказывал про Lean: "Какие потери на ваш взгляд самые существенные при разработке ПО? Приведите пример из работы вашей команды над курсовым". Ответить на такой вопрос да/нет невозможно, списать ответ или найти в Интернете тоже. Моей целью было убедиться, что студенты ухватили суть проблем и решений.

Все сдали зачет и курсовую с первого раза, чего раньше на моих курсах никогда не было. Обычно половина студентов не сдавала с первого раза и даже со второго. На этот раз по курсовой была только одна тройка, остальные сдали на 4 или 5. Несколько проектов купили домены и залили свои проекты в публичный доступ.

Несколько отзывов студентов после окончания курса:

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

Что может мотивировать больше, чем такие отзывы о проделанной работе?

Проблемы и выводы на следующий учебный год

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

У меня мало реального опыта работы по Waterfall, буквально несколько проектов, поэтому тему жестких процессов оказалось давать не легко. Кроме того, как мне кажется, на Waterfall требуется больше времени на изучение артефактов, схем работы и т.п. Если Kanban можно объяснить за пару лекций и студенты схватывают его на лету, то с Waterfall всё не так просто. На следующий год думаю подготовить примеры из индустрии, поискать статьи на тему успеха/провала того или иного водопадного проекта.

В целом про преподавание в ВУЗе могу сказать, что дело обычно не в студентах, а в методиках преподавания и желании преподавателя сделать интересно. У меня нет профессионального образования в педагогике, но чтение литературы в этом направлении, дает возможности предугадывать правильные подходы. Вложенная энергия преподавателя отражается интересом в глазах студентов. Я увидел понимание темы на зачёте, эти студенты понесут правильные мысли в компании, куда они устроятся на работу.

На этом не хотелось бы останавливаться, собрал обратную связь от студентов, хочу на следующий год сделать ещё веселее. По результатам напишу статью подобную этой.

22 комментария:

  1. Павел Веселовский17 мая 2014 г. в 22:32

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

    ОтветитьУдалить
  2. Как студент который ходил на твой курс ООП могу сказать что в плане преподавания у тебя педогогический талант сочитающийся высоким профессионализмом и искриним желанием научить студентов тому что будет им действительно полезно.

    Спасибо большое за твой вклад в образовательный процесс.

    ОтветитьУдалить
  3. Константин18 мая 2014 г. в 20:34

    Вопросов три, все банальные и немного некрасивые:
    1) Зачем? Какова изначальная мотивация?
    2) Не жалко потраченного времени? Если нет, то почему? Только из-за положительных отзывов?

    3) Готов сделать эту работу своей единственной?

    ОтветитьУдалить
  4. Константин, спасибо за вопросы, все очень правильные.
    1) Несколько причин. Во-первых, мне это нравится, просто чувствую, что моё. Во-вторых, в целом я увеличиваю количество людей в отрасли, у которых будут правильные мысли в голове. В целом это должно отразиться на моей компании. Предвижу вопрос про найм сотрудников, нет, я не зову студентов к себе на работу.
    2) Времени не жалко, хотя потрачено довольно много. Даже не на сами лекции, а на подготовку. Положительные отзывы это, конечно, хорошо, но самое главное - я упорядочиваю все темы сам для себя. Чтобы сделать лекцию на 1,5 часа, надо знать материала на 20-30 часов минимум.
    3) Единственной сделать не готов, т.к. за это оооооочень мало платят. Фактически за весь курс в университете мне платят 3-4 тыс. рублей. Для сравнения за тренинг я получаю примерно 20-30 тыс. за 6 часов. Ну и на основной работе несравнимо больше. Даже если полностью убрать материальную составляющую, то я люблю практиковать, поэтому уходить целиком в преподавание не готов.

    ОтветитьУдалить
  5. Константин18 мая 2014 г. в 21:58

    Вот в этом всём и есть основная проблема, почему специалисты не идут в образование. Вторая проблема - та, из-за которой ты с одной из кафедр ушёл (мне не дали выгнать ни одного раздолбая). А, ещё вопрос в догонку: ты на свой курс документацию писал для университета?

    ОтветитьУдалить
  6. Я замечаю, что сейчас молодые преподаватели в основном совмещают работу и учебу.


    На счет документации, я ее писал, но "документация" это громко сказано. Заполнил рабочую программу по образцу. Потратил часа 2 на это дело и в сумме вышло на 6 страниц, включая титульную.

    ОтветитьУдалить
  7. Кожевников Дмитрий19 мая 2014 г. в 13:13

    Здравстуйте, Александр. У меня есть курс ООП, который мне довелось прочитать уже трём группам. Я в полной мере столкнулся с убеждением, что студенты уже не те. Для меня большая проблема - как заинтересовать ребят? Как правило, они не задают вопросов, не справляются с заданиями, сливаются с занятий. Сейчас формат семестрового курса традиционный - лекция и практика раз в неделю. Как расшевелить студентов? Сразу скажу, что инструментов принуждения в моём арсенале нет - все получают отлично независимо от усилий, так как они дипломники. Есть и проблема с материальной базой, в аудитории только доска без маркеров.

    ОтветитьУдалить
  8. Дмитрий, если я буду знать ответ на этот вопрос, то считайте меня трижды гением :)


    На самом деле очень сложный вопрос и простого набора практик не существует. Стоит задуматься, как увлечь кого-либо идеей? Т.е. что вообще можно сделать, чтобы какого-то человека чем-то увлечь? Речь даже не про студентов и ООП, речь о более глобальном контексте. Лекция - это обычное публичное выступление, после чего студенты должны сделать А, В, С,...


    На лекции вы "продаете" свой курс. Студенты его "покупают", если им интересно, не скучно, полезно, они видят выгоды для себя в будующем и т.д.


    Уже можно заметить, что для успешных лекций нужно знать (теорию) и практиковать публичные выступления. Нужно уметь "продавать" и знать теорию и практику продаж.


    Есть исключения, когда к вам идут люди, т.к. ваши знания уникальны и люди изначально оооочень сильно замотивированы эти знания получить. Но я такого в ВУЗе еще не видел, это скорее тренинги, где каждый участник заплатил по 20-30 тыс. за пару дней.


    На счет тех, кто прогуливает. У меня каждый семест стабильно есть 3-4 человека из ведомости, которых я никогда не видел. Они не ходят на лекции и практики, они не приходят на экзамены. Думаю, что это нормально, не может быть 100% увлеченности предметом, причины различные.

    ОтветитьУдалить
  9. Кожевников Дмитрий19 мая 2014 г. в 13:44

    Мне за семетр удаётся более или менее пообщаться с 2-3 студентами. Собтсвенно это столько, сколько появляется обычно на ленте. Вообще я думал о каких-то нетрадиционных форматах подачи материала вроде игры в лего. Сейчас у меня есть лекции, лабы и курсовая работа. Однажды студент сделал половину лаб. По-моему это не самый хороший результат. Или может быть проблема в последовательности т содерждании тем. Сейчас это выглядит примерно так: принципы ООП => SOLID => паттеры GoF => enterprise patterns по Фаулеру => рефакторинг => unit тесты.

    ОтветитьУдалить
  10. А почему так мало общения? Какие-то ограничения есть?


    На счет последовательности подачи материала, я думаю она вполне логичная, проблема не в ней.

    ОтветитьУдалить
  11. Кожевников Дмитрий19 мая 2014 г. в 16:46

    Нет, каких-то ограничений нет. Просто после пары вводных лекций по принципам ООП и SOLID, посещаемость падает. Видимо, падает интерес к предмету. Оставшиеся похоже ходят потому что считают, что так правильно. Может быть стоит сделать больший упор на интересной практике: dvcs, ci, R#?

    ОтветитьУдалить
  12. Константин19 мая 2014 г. в 18:49

    А пробовали спрашивать студентов о том, что они хотят?

    ОтветитьУдалить
  13. Кожевников Дмитрий19 мая 2014 г. в 18:57

    Честно, не пробовал =( Разве это не моя работа - задавать тему и материал?

    ОтветитьУдалить
  14. Константин19 мая 2014 г. в 19:26

    Ваша работа - делать так, чтобы людям было интересно. Чтобы людям было интересно, надо понять, чего они хотят, а после этого объяснить, почему они хотят не этого :)


    Модель "преподаватель-диктатор" работает в принципе. То есть можно заставить студентов заучить твой предмет. Но такие знания недолговечны, улетучиваются сразу после сессии.


    Я за 3 года пришёл к выводу, что насильно никого счастливым не сделаешь. Поэтому просто был беспощадным. Те, кому было интересно (а я старался сделать интересно, не превращая пары в шапито), учились, потому что было интересно. Тем же, кому не было интересно, приходилось учить, потому что не учить было нельзя. Во итоге все в выигрыше.


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


    Так что если хочется заработать славу человека, который знает свой предмет и заставляет других знать его любой ценой - вперёд, задавайте тему и материал. Но будьте готовы к последствиям. И, естественно, будьте готовы доказать, что вы знаете предмет, потому что диктатура держится только на страхе (или на авторитете, если получится).


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

    ОтветитьУдалить
  15. Эта часть обязательна + живые примеры, чтобы показать, что вы разбираетесь в теме на высоком уровне.

    ОтветитьУдалить
  16. К сожалению, надо констатировать один досадный факт. Если вы не поставите зачеты или экзамен 5-6 студентам по незнанию предмета, то за вас это сделают в деканате. Увы, пока сделать с этим ничего нельзя. Поэтому вовлекайте как можно больше студентов своим энтузиазмом, остальным после 3-4 пересдач ставьте тройки с позором.

    ОтветитьУдалить
  17. Кожевников Дмитрий20 мая 2014 г. в 08:50

    Получается, что если полномочий кошмарить студентов нет, то и учебного процесса нет. Это грустно в моём случае.

    ОтветитьУдалить
  18. Это не так. Ты думаешь в разрезе способа воспитания: "Не бить ребенка, когда всё хорошо". Суть в том, что тебе надо их увлекать, это довольно непростая задача, в какую сторону копать я описал выше.
    Если цель заставить их учиться за счет угроз, то это 1) не сработает 2) тебе всё равно не дадут отчислить половину группы

    ОтветитьУдалить
  19. Кожевников Дмитрий20 мая 2014 г. в 11:26

    Мне и самому не импонирует устраивать студентам ад и израиль. Итог такой: нужно учиться хорошо продавать материал и разбавлять теорию плюшками.

    ОтветитьУдалить
  20. Константин20 мая 2014 г. в 11:28

    Что делать, если предмет не востребован в регионе? Как заинтересовать человека учить программирование, я понять могу - зарплатой в 30-50 тыр по выходу из универа или недалеко после этого. А как заинтересовать человека учить, к примеру, сети, если максимум, на что может рассчитывать администратор в Челябинске - это вонючая каморка и 30-40 тыр максимум (и то ещё надо поискать такое место)?

    ОтветитьУдалить
  21. Мне кажется, Константин, что гораздо важнее задать высокую планку. Потребность в изучении стека протоколов есть как у программистов, так и у будущих системных администраторов. Всегда важен контекст в котором это преподается и уровень. Чем он выше, тем полезнее окажется для тех, кому это необходимо. И, наоборот, те, кому не интересно, будут обязаны прослушать ваш курс. Тем самым вы вовлечете их насильно в этот процесс. С другой стороны, мало кто может вспомнить через десяток лет преподавателей, которые читают посредственные лекции и абсолютно точно запоминают тех, кто "дрючит" мозг молодого студента. Поэтому скорее всего, вы читаете эти лекции для этих людей и себя лично. Держите марку, ищите новый контекст приложения знаний. Студентов спрашивать не надо. Есть общемировая практика, ей и нужно следовать.

    ОтветитьУдалить

Моя книга «Антихрупкость в IT»

Как достигать результатов в IT-проектах в условиях неопределённости. Подробнее...