Кафедра ИСиТ УО ВГТУ
  • Специальности
    • Экономика электронного бизнеса
    • Информационные системы
    • Information Control Systems
  • Каталог
  • Сайт кафедры
  • Сервисы
    • GitLab
    • JupyterHub
    • Soft
  1. ИСиТ
  2. ПСП
  3. Темы курсовых проектов по дисциплине “Программирование сетевых приложений”
  • ИСиТ
    • АОС
      • Теория
        • Введение в операционные системы
        • Управление памятью
        • Управление процессами
        • Система ввода-вывода
        • Информационная безопасность
        • Виртуализация
      • Практика
    • РВПсИПП
      • Теория
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
        • Основы Laravel
        • Шаблоны в Laravel
        • Модели и базы данных в Laravel
        • Формы и валидация в Laravel
        • Аутентификация и авторизация в Laravel
        • Создание REST API в Laravel
        • Работа с файлами и изображениями в Laravel
        • Тестирование и отладка в Laravel
        • Введение в фреймворк Symfony
        • Маршруты и контроллеры в Symfony
        • Шаблоны и Twig в Symfony
        • Формы и валидация в Symfony
        • Доступ к базам данных в Symfony
        • Аутентификация и авторизация в Symfony
        • Сервисы и зависимости в Symfony
        • Создание REST API в Symfony
        • Работа с файлами и медиа в Symfony
        • Сравнение и выбор фреймворка
        • Развертывание веб-приложения
      • Практика
        • Лаб. работа 1 “Создание нового приложения Laravel”
        • Лаб. работа 2 “Добавление главной страницы и базовых маршрутов”
        • Лаб. работа 3 “Создание моделей, миграций и сидеров”
        • Лаб. работа 4 “Создание индексных страниц и пагинация”
        • Лаб. работа 5 “Создание форм для работы с сущностями”
        • Лаб. работа 6 “Работа с файлами (эмуляция S3-хранилища)”
        • Лаб. работа “Создание маршрутов в Laravel”
        • Лаб. работа “Работа с базами данных в Laravel”
        • Лаб. работа “Работа с формами в Laravel”
        • Лаб. работа “Аутентификация и авторизация в Laravel”
        • Лаб. работа “Работа с файлами в Laravel”
        • Лаб. работа “Тестирование и оптимизация в Laravel”
        • Лаб. работа “Создание REST API в Laravel”
        • Лаб. работа “Основы Symfony”
        • Лаб. работа “Шаблоны и представления в Symfony”
        • Лаб. работа “Работа с базами данных в Symfony”
        • Лаб. работа “Фомы и аутентификация в Symfony”
        • Лаб. работа “Сервисы и зависимости в Symfony”
        • Лаб. работа “REST API в Symfony”
        • Лаб. работа “Работа с медиа контентом в Symfony”
        • Лаб. работа “Создание и развертывание проекта”
        • Расчетно-графическая работа: Разработка веб-приложения с использованием Laravel
          • Методические рекомендации по выполнению работы
          • Варианты заданий для расчетно-графической работы
    • ПСП
      • Теория
        • Введение
        • Протокол HTTP
        • Программирование с использованием сокетов
        • Введение в PHP
        • Работа с базами данных в PHP
        • Объектно-ориентированные возможности PHP
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб. работа “Массивы в PHP”
        • Лаб. работа “Создание веб-приложений с использованием Slim”
      • Темы курсовых проектов по дисциплине “Программирование сетевых приложений”
    • Компьютерные сети
      • Теория
        • Введение в компьютерные сети
        • Топологии сетей
        • Кодирование и мультиплексирование
        • Стеки протоколов
        • Адресация в компьютерных сетях
        • Система доменных имен (DNS)
        • Программирование с использованием сокетов
        • Введение в PHP
        • Протокол HTTP
        • Введение в компьютерные сети
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб работа “Массивы в PHP”
    • РиОИИС
      • Теория
        • Классификация оптимизационных задач
        • Генетические алгоритмы
        • Системы массового обслуживания
        • Теория игр
        • Машинное обучение
        • Глубокое обучение (Deep learning)
        • Основы функционального программирования
        • Основы программирования на Haskell
        • Введение в логическое программирование
        • Инференция и рассуждения в логическом программировании
        • Разработка экспертных систем
        • Интеллектуальные системы и их архитектура
        • Веб-скрэйпинг
        • Сбор данных с открытых API
      • Практика
        • JupyterHub
        • Лаб. работа "Методы одномерной оптимизации"
          • Лаб. работа “Методы одномерной оптимизации”
        • Лаб. работа “Методы многомерной оптимизации”
        • Лаб. работа “Основы программирования на Python”
        • Лаб. работа “Функции в Python”
        • Лаб. работа “Рекурсия в Python”
        • Лаб. работа “Итераторы в Python”
        • Лаб. работа “Генетические алгоритмы”
        • Лаб. работа “Haskell”
        • Лаб. работа “Логическое программирование”
        • Лаб. работа “Сбор данных с помощью веб-скрейпинга”
        • Лаб. работа “Предобработка данных”
        • Лаб. работа “Машинное обучение: классификация”
        • Лаб. работа “Создание и обучение простейших нейронных сетей”
        • Лаб. работа “Системы массового обслуживания”
        • Лаб. работа “Обработка естественного языка”
        • Лаб. работа “Компьютерное зрение”
        • Лаб. работа “Нейросети и глубокое обучение”
    • КСКР
      • Практика
        • Лаб. работа “Одномерные и двумерные массивы в C#”
        • Лаб. работа “Обращение матриц в C#”
    • Системное программирование
      • Теория
        • Управление памятью в Windows
        • Файловые операции в Windows
        • Управление процессами в Windows
        • Графический интерфейс Windows
        • ОС Unix
      • Практика
        • Лаб. работа “Работа с динамической памятью в Windows”
        • Лаб. работа “Операции с файлами в Windows”
        • Лаб. работа “Управление процессами в Windows”
        • Лаб. работа “Работа с виртуальной машиной Linux”
        • Лаб. работа “Язык командного энтерпритатора Shell”
        • Лаб. работа “Работа с файлами в Linux”
        • Лаб. работа “Работа с процессами в Linux”
    • ИППРПО
      • Теория
      • Практика
        • Лаб. работа “Язык командного энтерпритатора Shell”
        • Лаб. работа “Управление процессами в Shell”
        • Лаб. работа “Управление файловой системой в Shell”
        • Лаб. работа “Управление пакетами в ОС Linux”
        • Лаб. работа “Сетевые инструменты в Linux”
        • Лаб. работа “Мониторинг и анализ системы Linux”
        • Лаб. работа “Основы Docker. Управление контейнерами”
        • Лаб. работа “Docker: Сети”
        • Лаб. работа "Docker: Образы"
        • Лаб. работа “Docker Compose: Управление многоконтейнерными приложениями”
        • Лаб. работа “CI/CD с GitLab”

Содержание

  • Введение
  • Перечень тем
    • 1. Многопользовательский чат с поддержкой приватных сообщений
    • 2. FTP-клиент с графическим интерфейсом
    • 3. Почтовый клиент с поддержкой SMTP и POP3
    • 4. Система удаленного контроля рабочего стола
    • 5. Многопользовательская игра “Морской бой”
    • 6. Система обмена файлами P2P
    • 7. Веб-сервер с поддержкой CGI
    • 8. Клиент для обмена мгновенными сообщениями (аналог ICQ)
    • 9. Система мониторинга сетевых устройств
    • 10. Прокси-сервер с кэшированием
    • 11. Система голосовой связи VoIP
    • 12. Клиент для сетевого времени (NTP-клиент)
    • 13. Система удаленного запуска программ
    • 14. Многопользовательский белый доска (Whiteboard)
    • 15. Система резервного копирования по сети
    • 16. Клиент для сетевого принтера
    • 17. Система опроса и голосования
    • 18. Сетевой калькулятор с историей вычислений
    • 19. Система обмена заметками (аналог стикеров)
    • 20. Клиент для сетевого сканера
    • 21. Система логирования и мониторинга серверов
    • 22. Сетевой проигрыватель медиафайлов
    • 23. Система обмена контактами (vCard)
    • 24. Клиент для сетевой базы данных
    • 25. Система бронирования и резервирования ресурсов
    • 26. Сетевой тренажер для изучения иностранных языков
    • 27. Система сбора и анализа опросников
    • 28. Клиент для управления IoT устройствами
    • 29. Система координатной доски для презентаций
    • 30. Сетевой архиватор и файловый менеджер
  • Общие требования к курсовому проекту
  • Критерии оценки
  1. ИСиТ
  2. ПСП
  3. Темы курсовых проектов по дисциплине “Программирование сетевых приложений”

Темы курсовых проектов по дисциплине “Программирование сетевых приложений”

Программирование сетевых приложений
Курсовой проект

Введение

Курсовой проект должен представлять собой разработку клиент-серверного (либо только клиентского, либо только серверного) приложения, реализующего либо стандартный протокол, либо протокол, разработанный студентом самостоятельно. Клиентское приложение должно иметь графический пользовательский интерфейс.

Перечень тем

1. Многопользовательский чат с поддержкой приватных сообщений

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

Технологии: TCP сокеты, Qt GUI, многопоточность, SQLite для хранения истории

Сложность: Средняя

2. FTP-клиент с графическим интерфейсом

Описание: Реализация FTP-клиента с поддержкой основных команд FTP протокола (LIST, GET, PUT, DELETE, MKDIR). Двухпанельный интерфейс для навигации по локальной и удаленной файловым системам.

Технологии: TCP сокеты, FTP протокол, Qt Widgets, QFileSystemModel

Сложность: Средняя

3. Почтовый клиент с поддержкой SMTP и POP3

Описание: Приложение для отправки и получения электронной почты. Поддержка вложений, адресной книги, HTML-писем.

Технологии: SMTP, POP3 протоколы, MIME формат, Qt Network, Qt WebEngine

Сложность: Высокая

4. Система удаленного контроля рабочего стола

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

Технологии: TCP/UDP сокеты, сжатие изображений, Qt GUI, захват экрана

Сложность: Высокая

5. Многопользовательская игра “Морской бой”

Описание: Сетевая реализация классической игры с поддержкой нескольких одновременных игр, рейтинговой системы и чата.

Технологии: TCP сокеты, Qt GUI, игровая логика, SQLite

Сложность: Средняя

6. Система обмена файлами P2P

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

Технологии: UDP/TCP, DHT протокол, Qt GUI, многопоточность

Сложность: Высокая

7. Веб-сервер с поддержкой CGI

Описание: HTTP-сервер с поддержкой статических страниц, CGI скриптов, логированием и базовой аутентификацией.

Технологии: HTTP протокол, TCP сокеты, процессы, файловая система

Сложность: Высокая

8. Клиент для обмена мгновенными сообщениями (аналог ICQ)

Описание: Приложение для обмена текстовыми сообщениями с поддержкой контакт-листа, статусов, файловых трансферов.

Технологии: TCP сокеты, Qt GUI, XML/JSON для протокола, SQLite

Сложность: Средняя

9. Система мониторинга сетевых устройств

Описание: Приложение для сканирования сети, обнаружения активных устройств, мониторинга их доступности и сбора информации.

Технологии: ICMP, ARP, TCP сканирование, Qt GUI, графики

Сложность: Средняя

10. Прокси-сервер с кэшированием

Описание: HTTP прокси-сервер с кэшированием страниц, логированием, фильтрацией контента и базовой статистикой.

Технологии: HTTP прокси, TCP сокеты, кэширование, Qt (для GUI мониторинга)

Сложность: Высокая

11. Система голосовой связи VoIP

Описание: Приложение для голосового общения по сети с поддержкой кодеков, регулировки качества звука, контакт-листа.

Технологии: UDP сокеты, аудио кодеки, Qt Multimedia, многопоточность

Сложность: Высокая

12. Клиент для сетевого времени (NTP-клиент)

Описание: Приложение для синхронизации времени с NTP-серверами с графическим отображением точности синхронизации и истории.

Технологии: NTP протокол, UDP сокеты, Qt GUI, графики

Сложность: Средняя

13. Система удаленного запуска программ

Описание: Клиент-серверное приложение для удаленного запуска и управления процессами на другом компьютере.

Технологии: TCP сокеты, процессы, Qt GUI, безопасность

Сложность: Средняя

14. Многопользовательский белый доска (Whiteboard)

Описание: Совместное рисование несколькими пользователями в реальном времени с различными инструментами и цветами.

Технологии: TCP/UDP сокеты, Qt Graphics Framework, сериализация объектов

Сложность: Средняя

15. Система резервного копирования по сети

Описание: Автоматическое резервное копирование файлов на сетевой сервер с поддержкой расписания, инкрементного копирования и шифрования.

Технологии: TCP сокеты, файловые операции, криптография, Qt GUI

Сложность: Высокая

16. Клиент для сетевого принтера

Описание: Приложение для отправки документов на сетевой принтер с поддержкой различных форматов и очереди печати.

Технологии: TCP сокеты, обработка документов, Qt GUI, очереди

Сложность: Средняя

17. Система опроса и голосования

Описание: Создание и проведение опросов с возможностью голосования нескольких участников, подсчета результатов в реальном времени.

Технологии: TCP сокеты, Qt GUI, визуализация данных, SQLite

Сложность: Средняя

18. Сетевой калькулятор с историей вычислений

Описание: Клиент-серверный калькулятор с возможностью сохранения и обмена историей вычислений между пользователями.

Технологии: TCP сокеты, Qt GUI, математические вычисления, JSON

Сложность: Низкая

19. Система обмена заметками (аналог стикеров)

Описание: Приложение для создания и обмена текстовыми заметками между пользователями сети с категоризацией и поиском.

Технологии: TCP сокеты, Qt GUI, текстовые данные, поиск

Сложность: Средняя

20. Клиент для сетевого сканера

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

Технологии: TCP сокеты, обработка изображений, Qt GUI, файловые операции

Сложность: Средняя

21. Система логирования и мониторинга серверов

Описание: Сбор и визуализация логов с нескольких серверов, оповещения о критических событиях, построение графиков.

Технологии: TCP/UDP сокеты, логирование, Qt GUI, графики, базы данных

Сложность: Высокая

22. Сетевой проигрыватель медиафайлов

Описание: Потоковая передача аудио/видео файлов с сервера клиенту с поддержкой различных форматов и буферизации.

Технологии: TCP/UDP сокеты, Qt Multimedia, потоковое вещание, буферизация

Сложность: Высокая

23. Система обмена контактами (vCard)

Описание: Приложение для обмена электронными визитками с автоматическим обновлением и синхронизацией контактов.

Технологии: TCP сокеты, vCard формат, Qt GUI, адресная книга

Сложность: Средняя

24. Клиент для сетевой базы данных

Описание: Удаленный доступ к базе данных с возможностью выполнения запросов, просмотра таблиц и экспорта данных.

Технологии: TCP сокеты, SQL протокол, Qt GUI, Qt SQL, JSON

Сложность: Высокая

25. Система бронирования и резервирования ресурсов

Описание: Приложение для бронирования переговорных комнат, оборудования или других ресурсов с календарем и уведомлениями.

Технологии: TCP сокеты, Qt GUI, календари, SQLite, уведомления

Сложность: Средняя

26. Сетевой тренажер для изучения иностранных языков

Описание: Многопользовательская система для изучения языков с карточками, тестами и рейтингом пользователей.

Технологии: TCP сокеты, Qt GUI, обучающие алгоритмы, SQLite

Сложность: Средняя

27. Система сбора и анализа опросников

Описание: Создание распределенных опросников с различными типами вопросов, сбор ответов и автоматический анализ результатов.

Технологии: TCP сокеты, Qt GUI, статистика, визуализация данных

Сложность: Средняя

28. Клиент для управления IoT устройствами

Описание: Удаленное управление и мониторинг умных домашних устройств (лампы, термостаты, датчики) по сети.

Технологии: TCP/UDP сокеты, MQTT протокол, Qt GUI, JSON

Сложность: Высокая

29. Система координатной доски для презентаций

Описание: Совместная работа с презентациями нескольких участников с возможностью аннотирования и управления.

Технологии: TCP сокеты, Qt GUI, обработка изображений, презентации

Сложность: Высокая

30. Сетевой архиватор и файловый менеджер

Описание: Удаленное сжатие, распаковка и управление архивами с поддержкой различных форматов и шифрования.

Технологии: TCP сокеты, алгоритмы сжатия, криптография, Qt GUI

Сложность: Высокая

Общие требования к курсовому проекту

  1. Клиент-серверная архитектура с корректным разделением функционала
  2. Графический интерфейс на стороне клиента (Qt или другая GUI библиотека)
  3. Сетевое взаимодействие через сокеты или высокоуровневые протоколы
  4. Обработка ошибок и некорректных ситуаций
  5. Логирование основных событий в приложении
  6. Документация кода и пользовательская документация
  7. Тестирование основных функций приложения

Критерии оценки

  • Техническая реализация (40%) - качество кода, архитектура, обработка ошибок
  • Функциональность (30%) - полнота реализации заявленных возможностей
  • Интерфейс пользователя (20%) - удобство и интуитивность интерфейса
  • Документация и тестирование (10%) - качество документации и тестов
Наверх
Лаб. работа “Создание веб-приложений с использованием Slim”
Компьютерные сети