Slide 1

Slide 1 text

Как преподавать Python без вреда для всех участников процесса 23.07.2024 Никита Ваулин

Slide 2

Slide 2 text

Обо мне: Никита Ваулин [email protected], tg: @nvaulin X: @vaulin2 I: @nvaulin Создаю биоинформатическое ПО Веду курс “Программирование на Python” Изучаю клетки мозга человека с помощью различных типов омиксных данных (Hi-C, scRNA-seq, ChIP-seq) Khrameeva lab 2

Slide 3

Slide 3 text

Что такое Институт биоинформатики? bioinf.me Короткие интенсивы и лекции Программы повышения квалификации (4 - 10 месяцев) Для биологов Для программистов Программирование на Python ООП, ФП, ∥П, БД StdLib, Numpy, Pandas, Git, venv ЦА курса по Python: студенты-биологи и к.б.н. Курсы на Stepik 3

Slide 4

Slide 4 text

Дисклеймер Лекция Повод к обсуждению Я хочу объяснить вам что вам надо переделать свои курсы Я хочу поделиться мыслями о чем можно подумать особенно если вы только что-то планируете/начинаете 4

Slide 5

Slide 5 text

Список крутых вещей 5

Slide 6

Slide 6 text

Обучение как путь к успеху Студенту нравится учится, если у него получается 6 Преподаватель

Slide 7

Slide 7 text

Список крутых вещей Задания: ● Начинаются с чего-то тривиального ● Задачи связаны между собой и постепенно усложняются ● Здорово если разные домашние задания / проекты также связаны в прогрессию Задача = “О, это я знаю” + “Как это сделать??” 7

Slide 8

Slide 8 text

Напишите декоратор deprecated Пример Задача 1 Напишите декоратор deprecated_once Задача 2 Напишите декоратор cached (для функции с одним числовым аргументом) Задача 3 Напишите декоратор cached Задача 4 * сложность и размеры шагов в вашем случае могут отличаться 8

Slide 9

Slide 9 text

Открытия Людям нравится делать открытия Напишите функцию fib (без аргументов), которая позволяет получить все числа Фибоначчи Задача 9

Slide 10

Slide 10 text

Список крутых вещей Задания: ● Начинаются с чего-то тривиального ● Задачи связаны между собой и постепенно усложняются ● Здорово если разные домашние задания / проекты также связаны в прогрессию ● Студенты сами делают открытия 10

Slide 11

Slide 11 text

Лекции Нужны ли лекции? 11

Slide 12

Slide 12 text

Лекции Нужны ли лекции? ● У людей есть запрос чтобы им объяснили ● Лекционный материал - зона безопасности ● Сделайте лекционный материал частью практики Лекция ДЗ 12

Slide 13

Slide 13 text

Список крутых вещей Задания: ● Начинаются с чего-то тривиального ● Задачи связаны между собой и постепенно усложняются ● Здорово если разные домашние задания / проекты также связаны в прогрессию ● Студенты сами делают открытия Лекции: ● Часть практики ● Живое общение 13

Slide 14

Slide 14 text

Нагрузка Не надо впихивать невпихуемое Расскажу студентам вообще всё, Тогда вообще всё знать будут 14

Slide 15

Slide 15 text

Метаобучение метанавыкам Условия заданий ● Перевод с языка заказчика на язык исполнителя ● Декомпозиция Формат выполнения и сдачи ДЗ ● Git, GitHub ● Командная работа ● Работа в IDE ● Связанность ДЗ, “agile” Peer review ● Умение читать чужой код ● Закрепление знаний, до-гуглёж ● GitHub, Markdown 15

Slide 16

Slide 16 text

Список крутых вещей Задания: ● Начинаются с чего-то тривиального ● Задачи связаны между собой и постепенно усложняются ● Здорово если разные домашние задания / проекты также связаны в прогрессию ● Студенты сами делают открытия ● Peer Review Лекции: ● Часть практики ● Живое общение Miscellaneous: ● Не пытаемся впихнуть вообще всё ● Метаобучаем метанавыкам 16

Slide 17

Slide 17 text

Команда курса Много студентов Много кода на проверку Нужно много людей Ассистенты ● Код-ревью ● Лекции / доп. семинары 17

Slide 18

Slide 18 text

Вероятные трудности Человеческий фактор ● Студент и ассистент могут не сойтись характером ● У ассистента может случиться перегруз Код-ревью субъективен Перемешиваем не случайно Случайно перемешиваем работы между проверяющими (сложнее следить за списыванием если вам это важно) 18

Slide 19

Slide 19 text

Упрощаем работу команде Кол-во студентов >> кол-во проверяющих Код ревью как часть обучения (а не просто проставление оценок) Большая нагрузка по ревью ● Четкие инструкции ○ Удобная таблица распределения ○ Все ссылки ○ Пошаговые чеклисты ○ Референсное решение (не обязательно писать самому, можно взять работу студента) ● Шаблонные ответы ○ Подробные, со ссылочками ○ Обезличенные ○ “Обезроденные” ○ Удобно копипастить 19

Slide 20

Slide 20 text

Не забываем думать о себе Преподаватель может не отвечать в нерабочее время Удивительные факты, которые я бы сообщил сам себе в начале пути Преподаватель может делать меньше ревью (т.к. у него есть лекционная и организационная нагрузка) 20

Slide 21

Slide 21 text

GitHub Classroom Стартовый репо Student #1 Student #2 PR PR Ревью Автопроверки fork (GitHub Actions) ● Работа идет через GitHub ● Индивидуальные и групповые ДЗ ● Интеграция с Google Classroom 21

Slide 22

Slide 22 text

“А в реальной жизни тоже так бывает” Не надо делать плохо чтобы было плохо Надо делать хорошо чтобы было хорошо * можно делать нормально 22

Slide 23

Slide 23 text

Список крутых вещей Задания: ● Начинаются с чего-то тривиального ● Задачи связаны между собой и постепенно усложняются ● Здорово если разные домашние задания / проекты также связаны в прогрессию ● Студенты сами делают открытия ● Peer Review Лекции: ● Часть практики ● Живое общение Miscellaneous: ● Не пытаемся впихнуть вообще всё ● Метаобучаем метанавыкам ● GitHub Classroom ● Не делаем плохо, делаем хорошо Проверки: ● Инструкции и шаблоны ● Дедлайны 23

Slide 24

Slide 24 text

Вопросы, предложения, возражения? tg: @nvaulin 24