Re: язык и железо для обучения
От: Evgeny.Panasyuk Россия  
Дата: 03.04.15 23:10
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>Теперь чтобы создать минимально функциональный оконный 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, то думаю можно начать и с микроконтроллеров
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.