Лабораторные работы
Это курсовые задания, а не DSA-лабы из репозитория
На этой странице — учебные лабораторные работы курса: задания по темам лекций, которые студент выполняет в отдельном репозитории. Их не путать с DSA-лабами lab00–lab11 (массив, стек, сортировки, графы, hash map и т.д.) — те реализованы прямо в этом репозитории, их код и разбор сложности см. в конспекте DSA.
Лабораторные работы привязаны к темам курса и идут параллельно лекциям. Ниже — сводный список с указанием темы, объёма и краткой сути. Подробные задания и критерии оценки выдаёт преподаватель индивидуально (или по варианту).
| № |
Часов |
Содержание |
| 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 — должны проходить чисто.