Содержание
Регламент выполнения и защиты курсовой работы
Требования к отчёту по курсовой работе
В отчёте должны быть:
- титульный лист, лист задания, аннотация, содержание;
- формальная постановка задачи;
- описание алгоритма;
- описание структур данных и функций;
- описание интерфейса пользователя - для работ с визуализацией;
- тестирование;
- исследование реализованной структуры / алгоритма;
- исследование всех операций над структурой
- графики практической и теоретической оценки
- программный код (в приложении);
- выводы.
Титульный лист, лист задания и программный код являются абсолютно необходимыми разделами, без которых даже не может быть начат процесс защиты.
Отчёт по курсовой работе должен быть оформлен в соответствии с шаблоном оформления курсовой работы: https://etu.ru/ru/studentam/dokumenty-dlya-ucheby/
Общие требования к работе
Реализация структур и алгоритмов
- Все необходимые в рамках выполнения работы структуры должны реализовываться студентом самостоятельно
- Не допускается использование встроенных / импортированных классов, представляющих из себя структуры или их аналоги (Python: list, dict, set и др. С/С++: map, set, deque и пр.)
- Использование в тестировании / исследовании - разрешается, в иных частях работы - по согласованию с преподавателем.
- Все необходимые в рамках выполнения работы алгоритмы должны реализовываться студентом самостоятельно
- Не допускается использование встроенных / импортированных функций/классов, предоставляющих реализацию алгоритмов
Исследование реализованных структур и алгоритмов
- Исследование реализованной структуры проводится по всем реализованным операциям
- Должны быть приведены обоснования лучшего, среднего, худшего случаев работы операций, а также способ формирования входных данных (или характеристик структуры) для этих случаев (если применимо)
- Графики практической и теоретической оценки (для всех операций и случаев)
- Исследование реализованного алгоритмы проводится по всем случаям работы алгоритма
- Должны быть приведены обоснования лучшего, среднего, худшего случаев работы, а также способ формирования входных данных (или настроек алгоритма) для этих случаев (если применимо)
- Графики практической и теоретической оценки (для всех случаев)
См. также раздел «Исследования в рамках ЛР/КР» в документе [ALG] Типовые ошибки отчета / работы
Требования к обоснованию
Цель обоснования
Продемонстрировать понимание не только выбранной структуры данных, но и альтернативных вариантов, а также умение проводить системный анализ задачи на основе её операционной семантики и характеристик данных.
Формализация постановки задачи
Операции
Явный нумерованный список всех операций, которые должна поддерживать структуры в рамках решаемой задачи:
# Пример 1. Добавление записи 2. Поиск по уникальному ключу 3. Удаление по ключу 4. Получение всех данных в отсортированном порядке.
Анализ частоты операций
Качественная или количественная (если применимо) оценка относительной частоты выполнения каждой операции:
- если указана в задании - берётся из задания
- иначе - вводится студентов самостоятельно (или берётся равномерной)
Характеристики данных
- Объем данных
- Ожидаемое количество элементов (100 / 10^6 / 10^9)
- Фиксированность размера данных - постоянное (после создания структуры) или растущее/уменьшающееся в процессе работы.
- Динамика данных
- Данные статичны после загрузки или активно изменяются (вставка/удаление).
- Ключи (если применимо)
- Тип ключа (целое число, строка, составной ключ)
- Характер доступа (случайный, последовательный)
- Наличие уникальности.
- Потребления по памяти (по желанию)
- Размер хранимого объекта (байты, килобайты).
Критерии выбора
Явно перечислить, какие критерии оптимальности важны для конкретно вашей задачи и почему.
# Пример 1. Скорость доступа по ключу (поиск, вставка, удаление). 2. Скорость выполнения специализированных операций (поиск минимума/максимума, слияние). 3. Поддержка упорядоченности данных. 4. Предсказуемость времени выполнения. 5. Эффективность по памяти.
Анализ альтернативных структур данных
- Необходимо минимум 2-3 реальных альтернативы
- Можно оформить в виде таблицы «Критерий / Структура»
- Для каждого аналога необходимо провести анализ по обозначенным критериям выбора (см. предыдущий раздел «Критерии выбора»)
- Теоретическая сложность операций
- Для каждой операции из раздела «Операции» указать сложность при работе с исследуемой структурой (средний и худший случаи)
- Практические особенности
- Указать имеющиеся нюансы реализации, усложняющие работу, и вероятность встречи с ними (например, рехеширование для хэш-таблиц, сложность балансировки и пр.)
- Пригодность под характеристики данных
- Подходит ли структура под ожидаемый объем, тип ключа, динамику
- Вывод по каждому аналогу
- Вывод, почему аналогу подходит / не подходит
Выбор структуры
- На основе таблицы и анализа делается итоговый вывод.
- Необходимо явно и четко ответить на вопросы
- Почему преимущества выбранной структуры максимально соответствуют сформулированным критериям, а недостатки — минимально критичны в контексте задачи?
- (если применимо) Почему не выбрана комбинация из структур, максимально покрывающих операции в контексте задачи?.
# Пример Плохое обоснование: "хэш-таблица работает быстрее". Хорошее обоснование (краткий пример): * Выбрана хеш-таблица с открытой адресацией, поскольку основная операция в задаче — ..., что позволяет .... * Операция ... из-за отсутствия встроенной упорядоченности / диапазонных запросов будет производиться за счет ... * Ожидаемый размер данных (до 10 000 записей) позволяет выбрать ....
Порядок защиты курсовой работы
Защита курсовой работы состоит из двух этапов: решение билета на защиту и беседа с преподавателем. На решение билета студенту отводится 40 минут. Билет на защиту содержит (билеты):
- задачу на программирование (модификация существующего кода курсовой работы студента или другая смежная задача в зависимости от выбранной темы)
- теоретические вопросы по теме курсовой работы студента
В случае, если студент не выполнил часть билета на защиту (например, одно из заданий: задача / теор. вопросы), он может быть допущен ко второму этапу защиту со снижением максимально возможной оценки за защиту (на 1 балл). Невыполнение обоих пунктов билета на защиту означает прекращение защиты и оценку «неудовлетворительно».
В результате беседы с преподавателем, ответов на вопросы по билету на защиту, исходному коду и теме курсовой работы оценка студента может быть снижена (на 1 балл). После беседы с преподавателем студент получает максимальную возможную оценку с учётом всех её снижений.
Студент получает максимальную оценку согласно выбранному уровню курсовой работы, если выполнены все следующие условия:
- Студент выполнил полностью задание на защиту, программа запускается и демонстрирует корректность работы на тестах, предложенных студентом и преподавателем. Задание было успешно встроено в курсовую работу.
- Студент верно отвечает на все вопросы преподавателя.
- Студент способен прокомментировать свою работу как с точки зрения логики её выполнения, так и с точки зрения использования конструкций языка.
Основания для снижения оценки во время беседы с преподавателем:
- Задание на программирование выполнено полностью, но корректный результат работы программа показывает только на нескольких тестах.
- Студент совершает более двух ошибок при ответе на вопросы.
- Студент не может прокомментировать логику работы своей программы и/или дать комментарии по программному коду. Неправильно данные ответы приравниваются к неспособности студента дать комментарии.
