Продолжаем подбрасывать студентам интересные темы для курсовых и дипломных работ по программированию. Надо признать, что не всегда полукомпетентным экзаменационным комиссиям понятны абстрактные темы. Им подавай что-то понятное, с понятным практическим применением. Если вы, например, предложите свой алгоритм обфускации кода, а в комиссии в виде "председателя или головы" сидит классический профессор, который разбирается в лучшем случае в численных методах, то будет вам беда на защите. Тогда что? Ну вот вам один из таких примеров.
Вы изучали в программировании рекурсию, разобрались с фракталами и владеете основами компьютерной графики? Так почему бы не попробовать написать программу, которая оптимизирует создание орнаментов. Например, для вышивальной машины. Вы в курсе, что современные машины для автоматической вышивки программируются? Вот посмотрите тут: https://vishivkashop.com.ua/ какие шедевры и чудеса вышивки можно создавать на таких машинах. Конечно, ручная вышивка стоит дороже, но это же и намного дольше. А для программиста - это способ реализовать свой алгоритм или даже написать специализированную программу для вышивальной машины. Идея вашей работы может быть в том, чтобы оптимизировать последовательность выполнения операций с целью уменьшения времени на получение того или иного рисунка. Очевидно полезно.
Проблема будет в том, что память в таких машинах при автономной работе для вашей программы ограничена. Но, часто есть способ подключения к компьютеру, что расширяет возможности. Вы можете взять типовые орнаменты, поставляемые в комплекте с софтом, подсчитать число выполняемых для них операций и написать свой алгоритм создания аналогичного орнамента с меньшим числом шагов. А если вы напишите программу, которая оптимизирует любой, заранее не известный шаблон рисунка, то у вас и заказчики на такую программу найдутся.
Найти такую вышивальную машину для экспериментов не сложно - точно найдется у кого-то из ваших родственников или знакомых. Ну в крайнем случае, можно и в каком-то салоне предложить свои услуги.