Темы курсовых работ по дисциплине «Программирование» 2019 – 2020 ( ранний доступ:) )

Закрепление тем с понедельника. Пока только смотрим выбираем.

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

Общие требования для всех тем

  1. Архитектура ПО: Клиент-Сервер и (или) Клиент-Клиент;
  2. Серверная часть:
    • Отвечает за хранение всей информации необходимой для работы. Например: данные о профиле пользователей, состояние игры, …;
    • Отвечает за выполнение всей логики программного продукта. То есть любое действие пользователя в клиентской части приводит к отправке запроса на сервер, сервер выполняет действие и отправляет ответ клиенту;
    • Отвечает за взаимодействие с клиентской частью.
  3. Клиентская часть:
    • Отвечает за графический интерфейс пользователя;
    • Отвечает за обмен данными с серверной частью.

Список ориентировочных тем курсовых работ

1. Симулятор планетарной системы.
Симулятор позволяет моделировать поведение планетарной системы состоящей из:
  • Звезды одной или нескольких;
  • Планет от нуля и более;
  • Спутников планет и свободных небесных тел.
Считается что:
  • Все космические тела идеально сферические;
  • Вращения вокруг своей оси нет;
  • Релятивистскими эффектами пренебречь.
Основные возможность:
  • Создать/удалить пользователя;
  • Создать, удалить, поделиться, показать симуляцию;
  • Отображение планетарной системы (реализовать 2D/3D по выбору студента);
  • Управление временем в симуляции;
  • Управление позицией камеры в симуляции;
  • Просмотр параметров тела при наведении мыши;
  • Редактирование параметров тела;
  • Интерактивное добавление новых космических тел.

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

  • Пользователь может указывать дату и время на которую нужен прогноз;
  • Пользователь может выбирать 1 или более, доступных в сервисе, финансовых активов для прогнозирования;
  • Пользователь может указать временной интервал для которого будет обновляться прогноз. Например: для 1 сек. сервис будет прогнозировать стоимость на 1 сек. вперёд, а по прошествии этой секунды актуализировать данные по активам и снова прогнозировать на 1 сек.;
  • Пользователь может экспортировать прогноз в файл.
Перед началом выполнения работы рекомендуется ознакомиться с данной постом.

3. Сервис самоуничтожающихся одноразовых записок.
Сервис позволяющий обмениваться с другими пользователями сообщениями в режиме Клиент-Сервер и Клиент-Клиент. Сообщение от пользователя 1 передаётся пользователю 2. Сообщение предварительно зашифровывается. В режиме Клиент-Сервер переданное сообщение хранится на сервере указанный промежуток времени затем удаляется, если клиент 2 подключится к Серверу до времени удаления, то сообщение передаётся, а затем удаляется. Сообщения нигде не сохраняются. Основные возможности:

  • Можно указывать адрес сервера или 2го клиента;
  • Можно устанавливать время хранения сообщений, но не более того, что указано на сервере;
  • Позволяет шифровать сообщения заданным ключом;

4. Мессенджер с геопривязкой.
Сервис позволяющий оставлять сообщения привязанные к тому месту где находится пользователь в момент отправки и просматривать сообщения других пользователей привязанных к этому же месту. У каждого пользователя есть параметр определяющий насколько далеко видно его сообщения и насколько далеко он может видеть сообщения других пользователей, эти параметры меняется в зависимости от рейтинга пользователя. Так же существует возможность оценивать сообщения (задизлайканные удаляются), фильтровать по времени и пользователю. Можно просмотреть историю своих сообщений и ненужные удалить. Так же можно добавлять «ловушку» на определённое место.
Например: Приходите к кабинету и ставите «ловушку» на сообщение начальника. Начальник приходит и пишет: «Веду приём». Вам приходит уведомление. Возможность написать конкретному человеку отсутствует.

5. Сервис корректировки искажений сканированных изображений по нескольким сканам.
Иногда при сканировании изображений цифровая копия получается с дефектами, засветами, и т.п. Сервис позволяет повысить качество цифровой копии за счёт обработки нескольких сканов, сделанных например, под разными углами. Изображения отправляются на сервер, там обрабатываются и результат высылается обратно.

6. Разработка движка приложения дополненной реальности.
Клиентская часть получает изображение с камеры и передаёт на сервер. Сервер осуществляет поиск по маркерам зарегистрированным для данного пользователя, определяет положение маркера на изображении и заменяет на целевой контент (изображение, видео, web-страничку), после чего отправляет изображение обратно клиенту. Количество маркеров может быть больше одного.

7. Симуляция распространения инфекции на основе мультиагентной модели.
Система состоит из отдельных агентов с заданным набором параметров, которые определяют поведение агента (подвижность, заразность, иммунитет, и т.п.). Агенты располагаются не некоторой территории поделённой на сектора с заданным числом связей между секторами.
В целом итоговый вариант симуляции должен быть поход на игру «Plague Inc» без игровых элементов.

8. Сервис синтеза речи.
Реализовать сервис синтеза русской речи из текста.

9. Клавиатурный тренажёр.
Реализовать клавиатурный тренажёр, наподобие «Stamina», «Соло на клавиатуре».
Обязательные элементы:

  • Статистика пользователя;
  • Режим урок;
  • Режим свободной набивки текста;
  • Режим дуэль с другим пользователем;
  • Рейтинг пользователей по скорости и ошибкам.

10. Распознавание движения глаз пользователя.
Сервис получает изображение человека и определяет направление его взгляда, а так же вероятность того, что пользователь хочет кликнуть по элементу. Основное предназначение сервиса – взаимодействие с ПК без использования мыши, например для людей с ограниченными двигательными возможностями. Клиентская часть отвечает за отправку изображений на сервер и управление указателем в соответствии с результатами обработки данных на сервере. Предусмотреть режим калибровки.

11. Визуальное программирование при помощи мыши/тачскрина.
Разработать сервис позволяющий программировать без использования клавиатуры. В качестве элемента ввода разрешено использовать мышь или тачскрин на смартфоне/планшете. Возможно потребуется разработать промежуточный язык, который в дальнейшем будет транслироваться в требуемый.

12. Сервис автоматического рерайта русского текста.
Задача сервиса по заданному русскому тексту сформировать русский текст с тем же самым смыслом, но написанный другими словами с как можно меньшим процентом «пересечения» с исходным текстом.

13. Сервис обмена информацией о стоимости и качестве товара с геолокацией.
Задача сервиса собирать информацию о различных товарах и услугах. Информацию предоставляют сами пользователи. В дальнейшем пользователь может получить информацию от сервиса.
Пример использования: Пользователь увидел «Рафаэлки» по низкой цене, открыл приложение набрал в поиске название товара и добавил цену. Или купил сыр, а он оказался плохой, набрал название и выставил плохую оценку. Сервис автоматически определяет положение пользователя и фиксирует санные.
Другой пользователь хочет найти самые дешёвые «Рафаэлки» в городе. Выставляет фильтр и получает ответ.

14. Симулятор шифровальной машины «Энигма».
Реализовать симулятор шифровальной машины «Энигма» позволяющий шифровать и расшифровывать сообщения. В дополнение реализовать возможность расшифровки любого сообщения зашифрованного «Энигмой».

15. Сервис поиска визуально схожих изображений в неорганизованных коллекциях.
Сервис получает группу изображений и группирует их по визуальной схожести.

16. Приложение для обучения по карточкам.
Довольно часто подобные приложения используют при обучении иностранным языкам. В приложении есть карточки разделенные на группы. Каждая карточка имеет связанное с ней слово – правильный ответ на карточку.
Основные возможности:

  • Режим обучение. Приложение показывает карточку и несколько вариантов ответа, пользователь выбирает. В зависимости от ответа карточка в дальнейшем будет показываться чаще или реже;
  • Возможность добавления своих карточек и своих групп карточек;
  • Возможность делиться.
  • ежим дуэль. Кто быстрее и правильнее ответит на вопросы из группы карточек.

17. Сервис ведения Agile-проектов.
Упрощённый аналог сервиса YouGile.

18. Менеджер паролей.
Сервис обеспечивающий хранение и генерацию логинов и паролей.

  • хранение базы данных в зашифрованном виде локально или на сервисе при указании адреса.
  • мастер пароль, защита от брутфорса (особенно при локальном хранении паролей. В том числе если базу данных скопируют несколько раз и будут параллельно взламывать).

19. Народная голосовалка.
Принцип действия программы в основном похож на подсказку «Помощь зала» в игре «Кто хочет стать миллионером». Пользователь может сформировать вопрос и предложить несколько вариантов ответа, а так же теги. Вопрос вывешивается на всеобщее обозрение и любой может проголосовать. Пользователь желающий проголосовать может отфильтровать опросы по тегам или подписаться на опросы конкретного пользователя. Опросу можно назначить время жизни или оставить висеть вечно.
Пример: Девушка спрашивает, какое платье мне больше идёт и прилагает фотографию. Ответы: Красное, Зелёное. Время жизни: 5 мин. Теги: мода, вечеринка.

20. Сервис тестирования знаний.
Классический вариант сервиса для тестирования знаний.

21. Электронный студенческий/пропуск/бейдж/ключ.
Сервис позволяющий регистрировать и выдавать электронные ключи-приложения доступа. Ключ может быть одноразовый, n-разовый, вечный. Сервер регистрирует и фиксирует факт и время использования ключа.
Варианты использования ключа:

  • Ключу передаётся метка (штрих-код, QR-код, пароль) ключ генерирует ответ и передаёт его на сервер, сервер отвечает разрешено/запрещено.
  • Охрана считывает метку с ключа, сервер обрабатывает и отвечает разрешено/запрещено.
Особое внимание уделить исключению возможности клонирования ключа.

22. Сервис обслуживания такси.
Реализовать сервис позволяющий:

  • Регистрировать таксистов;
  • Регистрировать клиентов, их заказы, бонусы и т.д.;
  • Распределять клиентов по таксистам;
  • Оценивать качество обслуживания;
  • Рассчитывать оплату и долю таксиста

23. Сервис личной безопасности.
Аналог видео-регистратора для человека.
Устройство снабжено радом датчиков (видео, аудио, пульсометр, шагомер, …) производит фиксацию информации, шифрует её личным кодом пользователя (знает только пользователь и например, родственники) и отправляет на сервер. Сервер хранит данные 24 часа данных на пользователя.
В случае необходимости данные можно получить и посмотреть информацию с датчиков, в том числе и видео. Пользователь может разрешить сервису обработку некоторых данных (например, пульса и геоинформации) и в случае необходимости, например высылать бригаду скорой помощи.
Возможность тревожной кнопки.
Требуется разработать протокол (API) передачи данных и сервис по хранение шифрованию/дешифрованию данных. И эмулятор устройства для проверки работоспособности сервиса.

24. Сервис анонимизации платежей (тема носит исследовательский характер).
Задача сервиса переводить средства от одного человек другому, без возможности отследить путь денежных средств.
Компоненты системы: сервер хранящий информацию о транзакциях и деньгах, а так же о виртуальных владельцах; клиент – хранит наборы паролей от транзакций.
Клиент может:

  • перевести деньги от одного виртуального владельца другому, если знает пароль от транзакции. В том числе и в автоматическом режиме и порциями например сделать 1000 переводов между случайными владельцами.
  • посылать запрос на слияние нескольких транзакций в одну с заменой пароля;
  • посылать запрос на вывод средств из системы с множества виртуальных владельцев.
Счета есть только у виртуальных владельцев. Когда пользователь вводит деньги в систему он получает пароль на транзакцию, далее его можно ввести в клиент или передать другому. Кто знает пароль от транзакции тот и владеет деньгами, даже если пароль просто угадали.

25. Лаунчпад.
Реализовать приложение выполняющее функции лаунчпада.
Дополнительные возможности:

  • Запись треков;
  • Возможность поделится треками с другими;
  • Обучение;

26. Рекомендательная система на основе предпочтений пользователей.
Пользователь регистрируется и проходит базовый опрос о предпочтениях в формате: да/нет, оцените по n-бальной шкале. Далее периодически сервис просит оценить: музыку, фильмы, кухню, места, и т.д. Эта информация нужна для улучшения рекомендаций. На основании собранных данных сервис рекомендует то, что пользователь в данный момент от него хочет, от выбора сорта пельменей, до невесты/жениха. В качестве критерия оценки можно использовать похожесть профилей пользователей, то есть рекомендовать то, что предпочитают пользователи с похожим профилем.

27. Личный фитнес тренер.
Основные возможности:

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

28. Симуляция экосистемы.
Реализовать симуляцию экосистемы на основе известной игры «Волчий остров».
Дополнительные возможности:

  • Увеличить количество параметров «животного». Например добавить: скорость, силу, область зрения, и т.д.
  • Характеристики потомков определяются на основании характеристик предков (применить генетические алгоритмы);
  • Редактор карт;
  • Управление временем симуляции;
  • Добавление особей других видов (хищников, травоядных);
  • Возможность интерактивного изменения симуляции. Например: перенести «животное» в другое место или добавить новое.

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

  • Карточные игры.
  • Платформер.
  • RPG.
  • RTS.
  • Квест.
  • Головоломка.
  • Аркада.
  • Раннер.
  • Настольные игры в компьютерном варианте.

Scroll Up