Курсовые работы по дисциплине «Алгоритмы и структуры данных» ИВТ УлГТУ — 2015

Материал из Олимпиадное программирование в УлГТУ
Версия от 11:10, 7 ноября 2015; Ctrlalt (обсуждение | вклад) (Новая страница: «== Требования к защите == До конца семестра необходимо подготовить: # Работающее приложен…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Требования к защите

До конца семестра необходимо подготовить:

  1. Работающее приложение
  2. Пояснительную записку
  3. Презентацию

Защита курсовой работы происходит при показе презентации. Оценка за курсовую работу объявляется и выставляется непосредственно после защиты.

До защиты требуется отправить пояснительную записку и код приложения преподавателю для ознакомления.

Структура пояснительной записки

  • Техническое задание (общее)
  • Индивидуальное задание (уникальное для каждого из авторов, распределяется в соотношении 50/50)
  • Техническое проектирование (архитектура приложения, классы, взаимодействие)
  • Алгоритмические обеспечение (используемые алгоритмы, их назначение)
  • Теоретическое обоснование сложности (O-оценка на время работы, её причины)
  • Эмпирическое обоснование сложности (опытное доказательство соответствующего роста времени)
Представление об ожидаемом теоретическом и эмпирическом обосновании сложности можно получить отсюда, отсюда и отсюда
  • Тестирование (описание набора тестов для проверки кода соавтора)
  • Выводы (в ходе выполнения курсовой работы рассмотрел... получил знания... освоил...)
  • Приложение 1. Руководство пользователя (описание интерфейса и работы с приложением)
  • Приложение 2. Исходный код (весь, кегль 6)

Библиотеки Принстонского университета

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

Предложенные программы используют классы из библиотек stdlib.jar и algs4.jar. Скачайте их и добавьте в свой Java-проект.

Варианты курсовой работы

Seam Carving

Требуется создать приложение, позволяющее загружать изображения и производить их масштабирование с сохранением контента.

Реализовать:

  • Класс, представляющий изображение в виде матрицы пикселей (можно использовать готовый класс Picture из stdlib.jar, но это снижает оценку);
  • Класс SeamCarver, осуществляющий поиск и удаление путей минимального веса в изображении;
  • Класс(ы) графического интерфейса приложения (можно использовать только консольный интерфейс, но это снижает оценку).

Основные алгоритмы в этой работе:

  • Поиск кратчайших путей в ориентированном ациклическом графе;
  • Динамическое программирование на графе.

Вспомогательные материалы:

Распакуйте архив и подключите его содержимое в ваш проект как Source Folder. Если вы реализуете класс SeamCarver в соответствии со спецификацией, то сможете использовать программы для тестирования:
  • Вызов "ShowEnergy HJocean.png" отображает в оттенках серого энергию пикселей переданного в качестве аргумента изображения (в данном случае HJocean.png).
  • Вызов "ShowSeams HJocean.png" отображает минимальные вертикальный и горизонтальный разрез изображения HJocean.png.
  • Вызов "ResizeDemo HJocean.png 50 100" уменьшает изображение HJocean.png на 50 пикселей по горизонтали и 100 пикселей по вертикали с сохранением контента.