.Использование GitHub в обучении студентов

В своей преподавательской практике использую GitHub…

Но для начала давайте представлюсь. Зовут меня Старинин Андрей. И я преподаю программирование, хотя по первому образованию я биолог. А ещё один из основателей и ведущих подкаста «IT за Edu».

Мой стек дисциплин:

Кажется, что всего много. Но успеваем не сильно погрузиться в отдельные технологии. После какого-то времени (точно не помню уже какого) понял, что студентов можно и даже нужно «приучать» к системам управления версиями почти сразу с начала обучения. Для обучения выбрал GitHub. Хотя Bitbucket тоже нравится. Да, я не учу студентов сразу по харду, они не сразу изучают git в CLI. Я их знакомлю сначала с web-интерфейсом GitHub’а. Потом рассказываю про GUI-клиенты. Из них мне нравится GitKraken. Но не заставляю их пользоваться тем, что нравится мне — они вольны выбирать сами чем пользоваться.

Постепенно — это примерно так:

  1. Просто показываю как выкладывать код

  2. Прошу их выкладывать свои решения и присылать мне ссылки на репозитории

  3. Выкладываю текст заданий и прошу ответы присылать через pull-request’ы

  4. Пробуем поработать в маленьких командах над одним репозиторием без веток

  5. Пробуем поработать небольшой командой над одним репозиторием с отдельными ветками

  6. Пробуем работать над большим проектом большой командой с несколькими репозиториями и ветками.

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

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

Что мне нравится в GitHub при обучении?

  • Поддержка аккаунтов для организаций, а в аккаунтах возможность создания команд с гибкими настройками доступов

7435a51d9006f2a8035bacb47aaf27b3.pngf7f083f80ae9d7680b0d5c67f87fae21.png0da24254db4d5e284886945872872681.pngb177af443f4b013262ca4b8ea034e2ca.png

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

5a612b9e6f30c32054aadae08e735564.pngc23b5d16bc075a53e09540307610db49.png

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

  • Система issues. Можно давать другим командам студентов задание на проверку кода и выявления багов, с занесением всего в issues.

7d92a45df09678cfee99e91ff0a1f532.png

Для чего я приучаю студентов к GitHub’у?

  • Создание своего портфолио уже с самого начала обучения, а не только под конец.

  • Понимание принципов написания кода. Когда начинают чужой код проверять — многое понимают

  • Понимание «соглашения об именовании». Пока не наступят на грабли разного именования в одной команде — не понимают. Ну или не все понимают

  • Понимание как работать в команде. И как командам между собой взаимодействовать.

Прекрасно понимаю, что мои методы не самые лучшие и далеки от совершенства, да и от реальности далековаты. Но стараюсь их приблизить к реальности.

© Habrahabr.ru