Недавно тут обсуждали проблему выбора языка для обучения студентов. При этом студены по умолчанию изображались в виде тупых свиноматок, хотя если взять матчать, то матрицы, комплексные числа, интегралы и прочие производные падают на студентов стремительным домкратом прямо на пороге вузов. Почему программирование должно быть исключением?
Но разве только в языке дело? Ведь еще есть операционная система и железо. Прошло то время когда кодом из несколько строк было можно рисовать фигуры лиссажу на экране. Теперь чтобы создать минимально функциональный оконный hello, world нужно либо использовать библиотеки с могучим API, либо же писать код на сотню строк для обработки оконных сообщений, объясняя студентам что это такое и почему все так сложно. И вот какие мысли у меня возникают.
Почему бы не использовать для обучения Си и микроконтроллеры? Микроконтроллеры превращаются в микрокомпьютеры минут за пять времени прямо на макетнике и поддерживают цифровые и аналоговые входы/выходы.
Микроконтроллеры не нуждаются в оси (зачастую там просто недостаточно памяти для этого) и готовы к работе сразу при включении. Можно поморгать светодиодами или подрыгать моторчиком. А если к моторчику прикрутить пропеллер и вотнкуть в микроконтроллер термодатчик -- получится автономная система охлаждения. В первый же день можно собрать множество полезных устройств для дома.
К тому же у многих микроконтроллеров буквально несколько килобайт (!) оперативной памяти на борту, что учит бережно относится к каждому байту. Можно запрограммировать тетрис, подключив ЖК дисплей или XxY матрицу из светодиодов (все это тоже стоит копейки).
Вообще-то, из светодиодов можно собрать не только матрицу, но и куб. А в кубе реализовать трехмерную визуализацию звука.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.