1. Начальный курс программирования стремительно следует по стопам Черепашек/Робота, т.е. это изучение скриптинга для создания а) простеньких фильмов-машинима, б) простеньких интерактивных видеоигр. На этом основаны http://www.squeakland.org/ (вот примеры eToys -- это ровно те самые анимации-симуляции и простенькие игры: http://www.squeakland.org/kids/sqfest_2004.htm), eToys для OLPC (one computer per child, $100 computer) -- http://wiki.laptop.org/go/Etoys, "проекты" Scratch являются ровно тем же самым -- http://scratch.mit.edu, и Alice -- www.alice.org (в которой бонусом 2008г. будет использование полной версии Java в качестве языка и аватар с анимациями из The Sims).
2. Обучают теперь не программированию. Программирование преподается как средство для создания историй (презентаций?). Важно, что эти истории не про предметы, а про людей (и прочих антропоморфных -- еще раз повод задуматься над необходимостью явного антропоморфизма в программистских подходах). При таком сдвиге акцентов программированию легко учатся даже маленькие дети и девочки-подростки -- они ведь не учатся программированию, они просто рассказывают истории специфическими средствами! Главное в этом подходе -- сдвиг мотива на цель (психологическое явление, в котором какая-то деятельность начинается с целью заполучить некий бонус, а затем первичная цель добычи бонуса забывается, и уже сама деятельность служит вознаграждением для ей занимающегося). Студентов, которых учили "рассказыванию историй" вместо решения программистских задач (пример из презентации Алисы), и которые затем записались на второй курс по программированию, было вдвое больше (88% против 47%).
3. Главное в образовании -- это управление мотивацией. Если мотивация есть, то можно научить чему-то простому, а затем будет шанс "второго захода" на обучение сложному. Если мотивации нет, то опять-таки можно научить чему-то простому, но шанса на обучение чему-то сложному уже не будет.
Дальше, если моя гипотеза про единообразие "постановки мозгов" для обучения программированию и администрированию (http://ailev.livejournal.com/460198.html и далее неоднократно) верна, то в этом месте нужно надолго задуматься:
а) об этапах постановки мозгов программиста
б) о содержании современного курса программирования (вспомним критику Alan Kay из http://www.windley.com/archives/2006/02/a
в) об антропоморфности в программировании.
г) о мотивах обучения программированию.
д) о паттернах мышления администратора.
е) о мотивах обучения администрированию (в том числе нужно вспомнить работы Ицхака Адизеса про "склонных к администрированию" -- http://v-novikov.livejournal.com/307984.html. И, может быть, требовать перед обучением проходить тест http://www.managementvitality.com/msq/test.php -- чтобы не делать дурной учебной работы, или чтобы уж наверняка знать, что для начала нужны суровые трансформационные практики).
ж) о том, что может быть в нашем комбинированном случае целью, а что -- средством. Какие тут могут быть задачки/проекты "первого курса", и какие -- "второго курса" (лично для меня "постановка мозгов" случилась после того, как я напрягался над задачками, в которых нужно было удерживать три уровня "мета" -- что-то типа написания макроса MOVE на Assembler 360, причем этот макрос сам был использован для написания кодов интерпретатора "анкетной системы", а конечной целью было написать эффективные целевые программы для осмечивания строительных работ на этом "языке анкет". Ну, пишешь программу, и представляешь, как в интерпретаторе выполняются команды, засунутые туда твоим же макросом -- такая естественная программистская медитация. А потом опыт написания программ на Forth. А потом попытка разобраться с микропрограммами какой-то из EC ЭВМ. А потом вдруг понимание, что мозги уже устроены не так, как у большинства окружающих людей. После этого "деятельность над деятельностью" или "организация организации" звучит для меня совершенно нормально -- хотя я и понимаю, что лучше бы в таких местах не допускать циклов "возгонки". Примерно такие же медитации нужны, чтобы достичь беглости в размышлениях об асинхронности процессов, выполняющихся на плохо работающей сети).
з) и так далее...