Лабораторные работы
Лабораторные работы привязаны к темам курса и идут параллельно лекциям. Ниже — сводный список с указанием темы, объёма и краткой сути. Подробные задания и критерии оценки выдаёт преподаватель индивидуально (или по варианту).
№
Часов
Содержание
1
4
Разработка алгоритмов для конкретных задач (блок-схемы, псевдокод).
2
4
Использование программ для графического отображения алгоритмов (draw.io, Mermaid).
3
2
Определение сложности работы алгоритмов (нотация O-большое).
№
Часов
Содержание
1
2
Работа в среде программирования. Реализация построенных алгоритмов.
2
4
Программы линейной и разветвляющейся структуры.
3
4
Программы циклической структуры. Обработка одномерных и двумерных массивов.
4
2
Работа со строковыми переменными. Работа с данными типа множество.
№
Часов
Содержание
1
4
Организация и использование процедур (def без возвращаемого значения, побочные эффекты).
2
4
Организация и использование функций (multiple return, чистые функции, type hints).
3
4
Работа с файлами последовательного и произвольного доступа (open/with, pathlib, seek/tell).
№
Часов
Содержание
1
4
Программирование модуля. Создание библиотеки подпрограмм (pyproject.toml, uv, __init__.py).
№
Часов
Содержание
1
10
Создание простого проекта по индивидуальным заданиям (CLI-утилита с argparse/typer).
№
Часов
Содержание
1
6
Создание объектно-ориентированного приложения по индивидуальным заданиям (один из шаблонов проектирования).
№
Часов
Содержание
1
4
Проект с использованием компонентов для работы с текстом (regex, парсинг логов или CSV).
2
6
Проект со стандартными диалогами и системой меню (Tkinter + tkinter.filedialog/messagebox).
№
Часов
Содержание
1
4
Разработка оконного приложения (один экран + логирование через logging).
2
4
Разработка оконного приложения с несколькими формами (роутинг между окнами PyQt/Tkinter).
№
Часов
Содержание
2
4
Оформление, отладка кода программы (ruff, mypy, pytest, покрытие).
Итоговая практика
Большой сквозной проект «распределённая система оплаты услуг» — см. практическое задание . Объединяет ООП, HTTP, БД, GUI, логирование и тестирование; зачитывается как итоговая лабораторная.
Как сдавать
Каждая лаба — отдельный коммит (или PR) в репозиторий, который вы создадите по образцу из лекции про системы контроля версий .
Структура: исходный код, README.md с описанием задания и инструкцией запуска, тесты (где применимо).
Все Python-проекты — на uv (см. тему 5 ); Go-проекты — на go mod (см. тему 13 ).
Стиль: ruff format/ruff check для Python, gofmt/golangci-lint для Go — должны проходить чисто.