Курсовая работа

Курсовая по прикладной математике и информатике в МГУ: модель, алгоритм и вычислительный эксперимент вместо пересказа теории

Как писать курсовую по ПМИ в МГУ: поставить задачу, построить математическую модель, выбрать алгоритм, провести вычислительный эксперимент и проверить итог.

Содержание +

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

На факультете вычислительной математики и кибернетики МГУ действует бакалаврское направление 01.03.02 «Прикладная математика и информатика». Учебные планы ВМК строятся вокруг фундаментальной математики, алгоритмов, программирования, вычислительных методов и специализированных дисциплин.

Официальные страницы:
https://cs.msu.ru/education/bachelors
https://cs.msu.ru/studies/curricula

Начните с задачи, а не с технологии

Плохо:

«Использование Python для решения математических задач».

Сильнее:

«Численное исследование устойчивости метода X при решении задачи Y».

Или:

«Сравнение алгоритмов поиска кратчайшего пути на графах с различной структурой».

В теме сразу должны быть:

  • объект;
  • метод;
  • критерий;
  • результат.

Постановка задачи

Запишите:

  • входные данные;
  • искомый результат;
  • ограничения;
  • критерий качества.

Например:

вход - взвешенный граф;

выход - кратчайшие расстояния;

ограничение - до N вершин;

критерий - время и память.

Так задача становится формальной.

Математическая модель

Если исследуется реальный процесс, сначала определите:

  • переменные;
  • параметры;
  • ограничения;
  • целевую функцию;
  • допущения.

Не начинайте кодировать, пока непонятно, что именно рассчитывает программа.

Допущения

Любая модель упрощает реальность.

Например:

  • коэффициент постоянный;
  • поток стационарный;
  • наблюдения независимы;
  • граф статический.

Каждое важное допущение нужно назвать.

Иначе читатель принимает приближение за свойства реального объекта.

Размерность

Проверьте единицы у физических или экономических величин.

Если в модели смешаны секунды, часы и минуты, красивый график не спасёт ошибку.

Размерностный контроль полезен ещё до запуска программы.

Аналитическое решение как контроль

Если существует простой частный случай с известным ответом, используйте его.

Например:

  • симметричная конфигурация;
  • малая размерность;
  • линейный случай.

Совпадение с известным решением даёт базовую проверку реализации.

Алгоритм

Опишите не только код, но и идею.

Хорошее описание содержит:

1. вход;
2. последовательность шагов;
3. условия остановки;
4. выход;
5. сложность.

Не вставляйте 200 строк кода в основную главу.

Псевдокод

Он помогает показать логику независимо от языка.

Используйте понятные операции и переменные.

Не переписывайте синтаксис Python как псевдокод.

Корректность

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

Для учебной курсовой это может быть:

  • доказательство;
  • ссылка на теорему;
  • инвариант;
  • проверка частных случаев.

Не ограничивайтесь фразой «алгоритм работает».

Вычислительная сложность

Оцените время и память хотя бы асимптотически.

Например:

O(n log n)

имеет смысл только после объяснения, что такое n.

Не сравнивайте алгоритмы по Big O без учёта реальных констант, если задача практическая.

Baseline

Перед сложным методом выберите простой ориентир.

Например:

  • полный перебор;
  • явная схема;
  • стандартная библиотечная реализация;
  • наивный классификатор.

Если новый метод не лучше baseline по выбранному критерию, это тоже важный результат.

Данные для эксперимента

Они могут быть:

  • синтетическими;
  • открытыми;
  • реальными;
  • сгенерированными по модели.

Обязательно объясните происхождение.

Не называйте случайно сгенерированный набор «реальными данными».

Генератор данных

Для синтетического эксперимента задайте:

  • распределение;
  • параметры;
  • seed;
  • размер.

Так эксперимент можно повторить.

Вычислительный эксперимент

Изменяйте один фактор за раз, если хотите понять его влияние.

Например:

n = 100, 1000, 10000.

Остальные параметры сохраняются.

Если одновременно меняются размер, структура данных и оборудование, интерпретация становится слабой.

Число повторов

Время выполнения колеблется.

Один запуск может быть случайным.

Сделайте серию повторов и используйте:

  • медиану;
  • среднее;
  • разброс.

Укажите число запусков.

Warm-up

Для некоторых сред и библиотек первый запуск отличается из-за загрузки, компиляции или кеша.

Если это влияет на benchmark, исключайте или учитывайте warm-up осознанно.

Окружение

Для воспроизводимости сохраните:

  • язык;
  • версию;
  • библиотеки;
  • ОС;
  • процессор, если производительность важна.

Не пишите «тестировалось на компьютере» без характеристик, если сравниваете скорость.

Численная устойчивость

Для вычислительной математики важен не только runtime.

Проверяйте:

  • ошибку;
  • накопление погрешности;
  • чувствительность;
  • сходимость.

Быстрый метод с большой ошибкой может быть непригоден.

Погрешность

Определите метрику:

  • абсолютная;
  • относительная;
  • норма;
  • RMSE.

Не пишите «точность высокая» без числа.

Сходимость

Если метод итерационный, исследуйте:

  • число итераций;
  • критерий остановки;
  • зависимость от начального приближения;
  • чувствительность к параметру.

Не выбирайте epsilon произвольно без объяснения.

Дискретизация

Для численного решения проверьте, как результат меняется при уменьшении шага.

Если решение сильно зависит от сетки, итог требует осторожной интерпретации.

Оптимизация

Если есть целевая функция, сравнивайте:

  • значение цели;
  • время;
  • стабильность;
  • соблюдение ограничений.

Не называйте локальный результат глобальным оптимумом без основания.

Машинное обучение

Если курсовая использует ML, разделите:

  • train;
  • validation;
  • test.

Не подбирайте гиперпараметры на тестовой выборке.

Тест предназначен для финальной оценки.

Утечка данных

Например, нормализация должна обучаться на train, а не на полном датасете.

Иначе информация теста попадает в модель.

Метрика становится завышенной.

Метрики

Для классификации:

  • precision;
  • recall;
  • F1;
  • ROC-AUC;
  • PR-AUC.

Для регрессии:

  • MAE;
  • RMSE;
  • R².

Выбор должен соответствовать задаче.

Несбалансированные классы

При 99% отрицательных объектов модель «всегда отрицательно» имеет accuracy 99%.

Но практически бесполезна.

Поэтому accuracy нельзя использовать в одиночку.

Графики

Хорошие визуализации:

  • ошибка от шага;
  • время от размера;
  • качество от параметра;
  • распределение ошибки.

Подписывайте оси и единицы.

Логарифмическая шкала

Она полезна при широком диапазоне значений.

Но укажите её явно.

Не заставляйте читателя принимать логарифмическую ось за линейную.

Репозиторий

Для программной части удобно сохранить:

  • исходный код;
  • README;
  • requirements;
  • пример запуска.

Не обязательно публиковать проект открыто, если это не требуется, но структура должна быть воспроизводимой.

Теоретическая глава

Она должна готовить модель:

  • определение задачи;
  • существующие методы;
  • свойства;
  • критерий выбора.

Не пишите общий обзор информационных технологий.

Практическая глава

Рабочая логика:

1. постановка;
2. модель;
3. алгоритм;
4. реализация;
5. эксперимент;
6. результаты;
7. анализ ошибок;
8. ограничения.

Что важно именно в МГУ

На ВМК МГУ ПМИ является отдельным действующим направлением. Но содержание курсовой зависит от кафедры и дисциплины: математическая модель, алгоритмы, анализ данных и программная реализация могут иметь разный вес.

Поэтому проверяйте задание конкретного курса.

Защита

Будьте готовы:

  • вывести ключевую формулу;
  • объяснить алгоритм;
  • показать baseline;
  • назвать сложность;
  • объяснить эксперимент;
  • показать ошибку и ограничение.

Сильная курсовая по прикладной математике и информатике в МГУ показывает не только работающий код, но и математическую логику, воспроизводимый эксперимент и границы применимости результата.

Степан Сергеев

Автор – Степан Сергеев

Кандидат физико-математических наук (PhD). Четыре диплома о высшем образовании. Помогаю разобраться в учебных и исследовательских задачах.

Ещё по теме