Код — это не вся работа
Самая частая история на этом направлении: программа написана, работает, студент доволен — и получает замечания на защите, потому что пояснительная записка состоит из пересказа учебника по выбранному языку.
Что оценивает комиссия
Не качество кода, а обоснованность решений и доказательство работоспособности. Почему эта СУБД, а не другая. Почему такая структура данных. Какие альтернативы рассматривались. Чем доказано, что система делает то, что заявлено.
Как обосновать выбор технологий
- Сформулируйте критерии из требований: объём данных, число одновременных пользователей, требования к скорости отклика, целостность, стоимость, поддержка.
- Возьмите два-три варианта, реально применимых к задаче.
- Сопоставьте в таблице по каждому критерию.
- Сделайте вывод со ссылкой на таблицу.
Формулировка «выбран язык Python, поскольку он популярен и удобен» — то, за что цепляются в первую очередь.
Тестирование доказывает работоспособность
Самая пропускаемая часть работы и при этом самая убедительная. Минимум — таблица сценариев: что подавали на вход, что ожидали получить, что получили, какой вывод.
Хорошо — модульные тесты с указанием покрытия и результаты проверки под нагрузкой. Без тестирования утверждение «система работает» остаётся словами, и на защите это ровно так и воспринимается.
Типичная структура
| Глава | Что в ней |
|---|---|
| Первая, аналитическая | Анализ предметной области, обзор аналогов с таблицей сравнения, формулировка требований, обоснование выбора технологий |
| Вторая, проектная | Модель предметной области, схема базы данных в нотации ER, архитектура приложения, диаграммы вариантов использования и последовательности |
| Третья, реализация | Описание основных алгоритмов, интерфейс, тестовые сценарии с результатами, руководство пользователя, оценка решения задачи |
Листинги кода идут в приложение и в объём основной части обычно не входят. Сорок страниц кода подряд в основной части читаются как попытка набрать объём.
За что заворачивают
- Выбор технологий не обоснован. «Популярен и удобен» вместо критериев.
- Нет тестирования. Работоспособность утверждается, но не доказывается.
- Нет обзора аналогов или он без таблицы сравнения по функциям.
- База данных не нормализована, а шаги нормализации не показаны.
- Не разграничен собственный вклад и готовые компоненты.
- Пересказ учебника по языку вместо первой главы.
Не выбрали тему? Собрал подборку из 45 тем по этому направлению — курсовые, дипломные и магистерские, — и у каждой указал, что проектировать и чем тестировать: темы работ по направлению «Информатика и программирование».
Что делаю по этому направлению
Разработка веб-приложений и настольных программ, базы данных и их проектирование, алгоритмы и структуры данных, информационные системы предприятия, мобильная разработка, компьютерные сети, анализ данных и машинное обучение, тестирование и обеспечение качества, методика обучения информатике.
Диаграммы строю в нотациях UML и ER в редакторе, тестовые сценарии свожу в таблицу с фактическими результатами, а собственный вклад в работе обозначаю отдельным разделом.