Курсовая по прикладной математике и информатике в МГУ сильна тогда, когда в ней есть собственная постановка задачи, математическая модель или алгоритм и проверка результата на вычислительном эксперименте. Простого обзора библиотек, языков программирования или известных методов для такой работы обычно недостаточно.
На факультете вычислительной математики и кибернетики МГУ действует бакалаврское направление 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.
Остальные параметры сохраняются.
Если одновременно меняются размер, структура данных и оборудование, интерпретация становится слабой.
