Перейти к содержанию

Лабораторные работы

Лабораторные работы привязаны к темам курса и идут параллельно лекциям. Ниже — сводный список с указанием темы, объёма и краткой сути. Подробные задания и критерии оценки выдаёт преподаватель индивидуально (или по варианту).

Тема 1. Основные принципы алгоритмизации

Часов Содержание
1 4 Разработка алгоритмов для конкретных задач (блок-схемы, псевдокод).
2 4 Использование программ для графического отображения алгоритмов (draw.io, Mermaid).
3 2 Определение сложности работы алгоритмов (нотация O-большое).

Тема 3. Программирование на Python

Часов Содержание
1 2 Работа в среде программирования. Реализация построенных алгоритмов.
2 4 Программы линейной и разветвляющейся структуры.
3 4 Программы циклической структуры. Обработка одномерных и двумерных массивов.
4 2 Работа со строковыми переменными. Работа с данными типа множество.

Тема 4. Подпрограммы и работа с файлами

Часов Содержание
1 4 Организация и использование процедур (def без возвращаемого значения, побочные эффекты).
2 4 Организация и использование функций (multiple return, чистые функции, type hints).
3 4 Работа с файлами последовательного и произвольного доступа (open/with, pathlib, seek/tell).

Тема 5. Библиотеки и модули

Часов Содержание
1 4 Программирование модуля. Создание библиотеки подпрограмм (pyproject.toml, uv, __init__.py).

Тема 7. Среда разработки: VS Code

Часов Содержание
1 10 Создание простого проекта по индивидуальным заданиям (CLI-утилита с argparse/typer).

Тема 9. Иерархия классов

Часов Содержание
1 6 Создание объектно-ориентированного приложения по индивидуальным заданиям (один из шаблонов проектирования).

Тема 10. Стандартные модули Python

Часов Содержание
1 4 Проект с использованием компонентов для работы с текстом (regex, парсинг логов или CSV).
2 6 Проект со стандартными диалогами и системой меню (Tkinter + tkinter.filedialog/messagebox).

Тема 11. Разработка приложений

Часов Содержание
1 4 Разработка оконного приложения (один экран + логирование через logging).
2 4 Разработка оконного приложения с несколькими формами (роутинг между окнами PyQt/Tkinter).

Тема 12. Качество кода и тестирование

Часов Содержание
2 4 Оформление, отладка кода программы (ruff, mypy, pytest, покрытие).

Итоговая практика

Большой сквозной проект «распределённая система оплаты услуг» — см. практическое задание. Объединяет ООП, HTTP, БД, GUI, логирование и тестирование; зачитывается как итоговая лабораторная.

Как сдавать

  1. Каждая лаба — отдельный коммит (или PR) в репозиторий, который вы создадите по образцу из лекции про системы контроля версий.
  2. Структура: исходный код, README.md с описанием задания и инструкцией запуска, тесты (где применимо).
  3. Все Python-проекты — на uv (см. тему 5); Go-проекты — на go mod (см. тему 13).
  4. Стиль: ruff format/ruff check для Python, gofmt/golangci-lint для Go — должны проходить чисто.