Здравствуйте, мыщъх, Вы писали:
М>Теперь чтобы создать минимально функциональный оконный hello, world нужно либо использовать библиотеки с могучим API, либо же писать код на сотню строк для обработки оконных сообщений, объясняя студентам что это такое и почему все так сложно.
Страуструп в своей
книге ("Programming -- Principles and Practice Using C++" обучающей программированию с нуля) использовал простой самодельный враппер над легковесной GUI библиотекой.
Вполне нормальный подход — преподаватель убирает типичные грабли и обрезает всё лишнее из API, оставляя только необходимое для изучаемых тем.
М>Почему бы не использовать для обучения Си и микроконтроллеры?
Что дадут микроконтроллеры начинающим
программистам кроме дополнительных сложностей (типа отладки железа)?
М>К тому же у многих микроконтроллеров буквально несколько килобайт (!) оперативной памяти на борту, что учит бережно относится к каждому байту.
Усложнение на ровном месте. Если уж брать экономию памяти, то нужно показать почему и когда это необходимо в компьютерных программах — то есть в том что эти самые студенты и будут создавать в будущем.
Например показать что производительность линейного обхода (самой типовой операции) часто упирается в memory throughput, и уменьшив sizeof(T) можно получить практически кратное ускорение. И как следствие если важна скорость, то необходимо также обратить внимание на размеры структур, даже при отсутствии дефицита памяти (как в микроконтроллерах).
М>Вообще-то, из светодиодов можно собрать не только матрицу, но и куб. А в кубе реализовать трехмерную визуализацию звука.
Я когда-то именно это и делал just for fun: вытравил плату методом лазерного утюга, воткнул туда ATmega168 и ST232, соорудил куб из светодиодов 3x3x3, сделал прошивку на asm, сделал плагин к Winamp'у, и по COM-порту гонял управляющие команды для этой цветомузыки.
И при всём при этом, я бы не стал начинать обучение программированию с микроконтроллеров. Это касается именно программистов, если же брать например electrical engineering, то думаю можно начать и с микроконтроллеров