Курсовая по информатике и вычислительной технике в МГТУ им. Баумана может быть заметно ближе к железу и системному уровню, чем обычная работа по разработке приложения. Здесь естественны темы про вычислительные системы, сети, архитектуру, embedded, обработку информации, производительность и взаимодействие аппаратной и программной частей.
В МГТУ им. Н.Э. Баумана направление 09.03.01 «Информатика и вычислительная техника» реализуется в нескольких подразделениях. Кафедра ИУ5 ведёт программу «Системы обработки информации и управления», а Мытищинский филиал публикует программу «Вычислительные машины, комплексы, системы и сети».
Официальные страницы:
https://home.science.iu5.bmstu.ru/ab
https://mf.bmstu.ru/sveden/education/programs/vychislitelynye-mashiny-kompleksy-sistemy-i-seti-suos-09.03.01.html
Сначала определите уровень системы
Тема может быть про процессор, микроконтроллер, сеть, ОС, драйвер, вычислительный узел, распределённую систему или обработку сигнала.
Не смешивайте все уровни в одной курсовой.
Пример сильной постановки
«Исследование задержки передачи данных в embedded-системе при разных режимах шины».
Или:
«Разработка прототипа сетевого сервиса с измерением пропускной способности и задержки».
Здесь есть метрика.
Архитектура вычислительной системы
Покажите:
- CPU;
- memory;
- storage;
- bus;
- peripherals.
Для программной системы:
- process;
- thread;
- network;
- storage.
Схема должна объяснять bottleneck.
Память
Различайте cache, RAM и disk. Время доступа отличается на порядки.
Алгоритм, который теоретически O(n), может упираться в память.
Cache locality
Для массивов и матриц исследуйте порядок доступа.
Две реализации одной формулы могут работать по-разному из-за кеша. Измерьте, а не только рассуждайте.
Процессор
Для performance-темы учитывайте cores, frequency, SIMD, branch и cache.
Не объясняйте ускорение только частотой CPU.
Многопоточность
До потоков найдите параллельную часть.
Покажите serial fraction, synchronization и shared data.
Не создавайте 100 потоков автоматически. Overhead может уничтожить ускорение.
Закон Амдала
Он помогает оценить предел ускорения.
Если половина программы последовательная, бесконечное число ядер не даст бесконечное ускорение.
Race condition
Если несколько потоков меняют данные, нужен контроль.
Создайте тест, который воспроизводит проблему.
Не ограничивайтесь фразой «использован mutex».
Deadlock
Покажите порядок блокировок, ресурсы и ожидание.
Если проект использует несколько mutex, задайте единый порядок.
Embedded
Для микроконтроллера важны память, цикл, interrupts, таймер, интерфейсы и питание.
Код, который работает на ПК, может быть непригоден в ограниченной системе.
Interrupt
Обработчик должен быть коротким.
Длительная логика внутри ISR может блокировать другие события.
Измерьте latency, если это критично.
Real-time
Разделяйте среднее время, максимальное и deadline.
Система реального времени определяется не тем, что она «быстрая», а тем, что укладывается в сроки.
Scheduler
Для RTOS-темы можно исследовать priority, period, execution time и deadline.
Не назначайте всем задачам максимальный приоритет.
Сети
Для сетевой темы измеряйте:
- latency;
- throughput;
- loss;
- jitter.
Не используйте только ping как полную характеристику.
TCP и UDP
Выбор зависит от надёжности, задержки, порядка и допустимых потерь.
Не называйте UDP «быстрее всегда».
