Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Образование в области программирования

Я ознакомился со свежей презентацией системы обучения программированию Alice http://www.alice.org/downloads/presentations/SIGCSE_Tea_Party_2007.ppt (это из проекта www.alice.org). 3D-миры (в версии 3.0 это будет мир игры The Sims по лицензии Electronic Arts), анимированные Java. Студенты учатся программированию, создавая фильмы или даже простенькие видеоигры. Эта презентация интересна тем, что дает некоторые цифры, чтобы оценить роль такого подхода.

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/alan_kay_is_com.shtml) -- что в нем творческая суть, а что в нем -- технические навыки.
в) об антропоморфности в программировании.
г) о мотивах обучения программированию.
д) о паттернах мышления администратора.
е) о мотивах обучения администрированию (в том числе нужно вспомнить работы Ицхака Адизеса про "склонных к администрированию" -- http://v-novikov.livejournal.com/307984.html. И, может быть, требовать перед обучением проходить тест http://www.managementvitality.com/msq/test.php -- чтобы не делать дурной учебной работы, или чтобы уж наверняка знать, что для начала нужны суровые трансформационные практики).
ж) о том, что может быть в нашем комбинированном случае целью, а что -- средством. Какие тут могут быть задачки/проекты "первого курса", и какие -- "второго курса" (лично для меня "постановка мозгов" случилась после того, как я напрягался над задачками, в которых нужно было удерживать три уровня "мета" -- что-то типа написания макроса MOVE на Assembler 360, причем этот макрос сам был использован для написания кодов интерпретатора "анкетной системы", а конечной целью было написать эффективные целевые программы для осмечивания строительных работ на этом "языке анкет". Ну, пишешь программу, и представляешь, как в интерпретаторе выполняются команды, засунутые туда твоим же макросом -- такая естественная программистская медитация. А потом опыт написания программ на Forth. А потом попытка разобраться с микропрограммами какой-то из EC ЭВМ. А потом вдруг понимание, что мозги уже устроены не так, как у большинства окружающих людей. После этого "деятельность над деятельностью" или "организация организации" звучит для меня совершенно нормально -- хотя я и понимаю, что лучше бы в таких местах не допускать циклов "возгонки". Примерно такие же медитации нужны, чтобы достичь беглости в размышлениях об асинхронности процессов, выполняющихся на плохо работающей сети).
з) и так далее...
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 86 comments