Язык программирования Python (углубленный курс)
Преподаватели
| Лектор | Иван Лущ | ||||
| Номер группы | Группа 1 | Группа 2 | Группа 3 | Группа 4 | Группа 1 (ЭАД) |
| Семинаристы | TBA | TBA | TBA | TBA | TBA |
Программа курса
| Packaging и tooling |
| Типы: почему и как |
| Тестирование и логирование |
| PDB, introspection и dis |
| Threading, GIL basics |
| Multiprocessing, IPC, subinterpreters, free-threading, subprocess |
| Async, coroutines, event loop |
| Дескрипторы |
Метаклассы и __init_subclass__
|
| Faster CPython: Adaptive Interpreter и JIT |
| Memory model, GC, weakref |
| Профилирование и performance |
| Cython, C-extensions, bindings |
Материалы курса
- Manytask
- [TBD Канал с анонсами по курсу]
- [TBD Ссылка на чат]
Система оценки
Итоговая оценка:
Oитог = 0,2 * Семинары + 0,5 * Задачи + 0,3 * Мок-интервью
- Семинары — активность на семинарах
- Задачи — регулярные ДЗ через manytask
- Мок-интервью — устная форма контроля
Мок-интервью
Устная форма контроля в формате технического собеседования, имитирующая Python-интервью. Проходит на последних 2-3 лекциях семестра (декабрь).
Часть I. Теория
Интервьювер задаёт 4-5 открытых вопросов равномерно по блокам курса. Формат — открытые вопросы, требуют объяснения "почему". Примеры:
- почему list[Dog] нельзя передать вместо list[Animal], а Sequence[Dog] — можно?
- чем logger.error(exc) хуже logger.exception()?
Часть II. Разбор задач
Интервьювер выбирает несколько задач из сданных студентом. Студент рассказывает, как устроено его решение, почему выбрал именно такой подход, какие видит компромиссы, и отвечает на уточняющие вопросы.
Критерии оценивания
Каждая часть даёт до 5 баллов, итого 0-10.