Практикум · подписи функций и окружение
ПРАКТИКУМ

Младший разработчик:
первая неделя

Ролевой практикум по окружению проекта и аннотациям типов. Студент неделю работает стажёром в студии разработки: разворачивает проект, разбирает проблемы с окружением, составляет подписи функций по заявкам заказчиков, сверяет чужие вызовы с подписями и пишет подписи сам. В пятницу тимлид присылает рецензию, по которой собирается отчёт для GitHub.

PythonGo
1 пара · 90 минут4 письма + рецензияглавы 2.1–2.6 и 4.1–4.2работает в браузереотчёт .md
Открыть рабочий стол → Установка не нужна. Работа сохраняется в этом браузере.
Рабочий стол: слева письмо тимлида, справа заявка фитнес-клуба, подпись функции format_name из трёх параметров и каталог типов
Письмо 2, заявка 10. Слева письмо тимлида, в центре собранная подпись, справа каталог типов. У отчества два типа в одном слоте: str | None.

§1Легенда

Студия «Верстак» пишет модули на Python для небольших компаний. Сейчас у неё пять заказчиков: колледж «Северный» с электронным журналом, кофейня «Зерно» с кассой, фитнес-клуб «Пульс», книжный магазин «Переплёт» и курьерская служба «Квартал».

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

Студия, её сотрудники и заказчики придуманы для практикума.

ВЫ
Стажёр Python-группыроль студента

Первая неделя в студии. Готовит рабочее место, составляет подписи функций по заявкам, проверяет вызовы.

ИБ
Ирина Беловатимлид Python-группы

Присылает четыре письма с заданиями и в пятницу — рецензию с баллами.

ЧАТ
Денис, Лиза, Ксюша, Глеб, Марат, Оля, Тимурстажёры

Пишут в общий чат о проблемах с окружением и присылают вывод терминала.

ЗК
Пять заказчиковдесять заявок

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

§2Что отрабатывает каждое письмо

Практикум закрепляет две темы. Письмо 1 — окружение проекта и зависимости из темы 02. Письма 2–4 — запись аннотаций и типы из глав 4.1 и 4.2: простые типы, списки, словари, кортежи, множества, классы date и Path, варианты через |, значения по умолчанию.

письмо 1 · рабочее местоОкружение и зависимости

Расставить команды от архива до запуска, разложить файлы проекта для первого коммита и найти причину семи проблем из чата: пакет не в том Python, окружение не активно, нет requirements.txt.

письмо 2 · подписи по заявкамПеревести заявку в подпись

Выбрать из заявки данные, которые нужны функции, и подобрать каждому параметру и результату тип из каталога в 24 типа. Два типа в одном месте дают запись через |.

письмо 3 · вызовы и подписьЧитать подпись

По подписи решить, какие вызовы ей соответствуют: число аргументов, тип каждого аргумента, что можно делать с результатом.

письмо 4 · подпись вручнуюПисать подпись самому

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

Во время работы баллы не показываются. Подпись в письмах 2 и 4 переводится на русский язык («grades — список целых чисел»), и по этому переводу студент сам сверяет её с заявкой. Баллы и разбор каждого задания появляются после сдачи, в рецензии.

Так же устроен практикум «Аналитик данных: первая неделя» в справочнике по MongoDB: легенда, письма с заданиями и рецензия в конце.

§3Неделя по письмам

Следующее письмо открывается кнопкой «Дальше» внизу текущего. Переход не зависит от ответов. До сдачи к любому открытому письму можно вернуться и поменять ответ.

Понедельник · письмо 1

Рабочее место

Три части на одной странице.

  • порядок команд: пять шагов от архива проекта до запуска, три лишних шага остаются в наборе;
  • первый коммит: десять файлов и папок раскладываются по колонкам «В репозиторий» и «Остаётся на компьютере»;
  • чат стажёров: семь сообщений с выводом терминала, для каждого выбирается причина из списка девяти вариантов.
Письмо 1: файлы проекта разложены по колонкам «В репозиторий» и «Остаётся на компьютере»
Часть 2: файлы разложены по двум колонкам.
Вторник · письмо 2

Подписи по заявкам

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

Нужные данные переносятся в подпись, затем каждому параметру и результату подбирается тип из каталога. Блоки переносятся перетаскиванием или нажатиями: тип — потом слот. Стрелка ↑ меняет порядок параметров.

Заявка 1: параметр grades с типом list[int], результат float, в наборе остались student_name и group_number
Заявка 1: grades перенесён в подпись, ФИО и номер группы остались в наборе.
Вторник · письмо 2

Порядок параметров

Под подписью показана строка, которая получилась, и её перевод на русский язык. Если параметр без значения по умолчанию стоит после параметра со значением, там же появляется сообщение, которое в этом случае выдаёт Python.

Подпись с параметром first_name после middle_name = None и сообщение SyntaxError
first_name стоит после middle_name = None: Python такую подпись не примет.
Среда · письмо 3

Вызовы и подпись

Пять подписей из вторника и к каждой восемь строк кода от фронтенд-группы. Строки раскладываются по колонкам «Подходит к подписи» и «Не подходит».

Проверяется число аргументов, тип каждого аргумента и использование результата: значение str | None нельзя сразу положить в переменную типа str, а результат функции с -> None нельзя сохранять.

Письмо 3: подпись find_guest_phone и восемь вызовов в двух колонках
Подпись 2: восемь вызовов разложены по колонкам.
Четверг · письмо 4

Подпись вручную

Четыре заявки, подпись к которым набирается целиком. Имена функции и параметров и их порядок даны в заявке. Под полем сразу видно, как строка читается, а при ошибке записи — место ошибки и что исправить.

Порядок вариантов в | значения не имеет: str | None и None | str засчитываются одинаково. У каждой заявки есть подсказка. В конце письма — кнопка «Сдать работу».

Поле с подписью best_student, где тип записан как Dict, и сообщение о старой записи из typing
Dict с большой буквы: показано место и как записать в курсе.
Пятница · рецензия

Рецензия за неделю

После сдачи ответы закрываются и открывается рецензия: баллы по каждому письму, итоговая оценка и темы для повторения со ссылками на главы. Ниже — разбор каждого задания: ответ студента, верный ответ и объяснение. Для подписей разбор идёт по параметрам: что нужно, что выбрано.

Слева вводятся фамилия, имя и группа, после этого скачивается отчёт.

Рецензия: баллы по четырём письмам, итог 10 из 10, слева поля ФИО и группы и кнопка скачивания отчёта
Итоговая карточка рецензии и форма отчёта.

§4Рецензия и оценка

Баллы рецензия считает по шкале ниже. В письме 2 заявка засчитывается, когда в подписи стоят все нужные параметры и нет лишних, у каждого параметра и у результата верный тип, а порядок параметров допустим для Python. В письме 4 дополнительно сравниваются порядок параметров и значения по умолчанию.

ПисьмоЧто считаетсяБаллы
1 · рабочее местоВерные ответы: порядок команд (1), файлы (10), причины из чата (7). 16–18 — 2 балла, 11–15 — 12
2 · подписи по заявкамВерные подписи: 9–10 — 4 балла, 7–8 — 3, 5–6 — 2, 3–4 — 14
3 · вызовы и подписьВерно разложенные строки: 36–40 — 2 балла, 28–35 — 12
4 · подпись вручнуюВерные подписи: 4 — 2 балла, 2–3 — 12
Итого10

Перевод в оценку: 9–10 баллов — «отлично», 7–8 — «хорошо», 5–6 — «удовлетворительно».

§5Как сдать отчёт в GitHub

Отчёт — файл Markdown с именем podpisi_Фамилия_Имя.md. В нём фамилия, имя, группа и время сдачи, таблица баллов, темы для повторения и все ответы: порядок команд, раскладка файлов, причины из чата, собранные и написанные подписи. GitHub показывает такой файл с оформленными таблицами и кодом.

  1. На вкладке «Рецензия» введите фамилию, имя и группу и нажмите «Скачать отчёт .md».
  2. В своём репозитории дисциплины создайте ветку hw-04 и положите файл в папку lesson_04. Имя файла не меняйте. Задание к папке — в шаблоне курса.
  3. Выполните git add lesson_04, затем git commit -m "hw-04: рецензия практикума" и git push -u origin hw-04.
  4. На GitHub откройте Pull Request из hw-04 в свою main. Файл в нём показывается с оформленными таблицами и кодом.

§6Вопросы

Можно ли пройти практикум дома?

Да. Рабочий стол открывается в любом браузере, Python для него не нужен. Работа хранится в том браузере, где её начали: на другом компьютере она не появится. Перед сменой компьютера сдайте работу и скачайте отчёт.

Что будет, если закрыть вкладку?

Ответы сохраняются при каждом изменении и появляются снова при следующем открытии рабочего стола в том же браузере.

Можно ли переделать работу после сдачи?

Нет, после сдачи ответы закрыты. Сбросить работу может только преподаватель — кнопкой «Сбросить работу» с паролем.

Почему по ходу работы не видно, верно ли решено?

Сверка подписи с заявкой входит в задание. Перевод подписи на русский язык показывает, что записано; совпадает ли это с заявкой, решает студент. Баллы появляются в рецензии после сдачи.

Какие главы повторить перед практикумом?

Для письма 1 — главы 2.1, 2.2, 2.3 и 2.6: окружение, выбор интерпретатора, установка пакетов, requirements.txt и .gitignore. Для писем 2–4 — главы 4.1 и 4.2, параграфы 1–5: запись аннотации, простые типы, коллекции, классы, X | None и объединения.

МДК.01.01 · практикум «Младший разработчик: первая неделя» Автор: Макаров Максим Николаевич