Решил приобщить детей к программированию. Пошарил - нашёл программную среду Scratch (бесплатную, разработка MIT). По-моему, для детей в районе 10 лет - самое то. Язык неполноценный (без коллекций, без работы со строками, без создания экзепляров объектов, без...), но всё-таки с событиями, условиями, циклами, параллельностью, заточенный под анимацию, рисование, звуки и так далее. Алгоритмы не пишутся текстом, а собираются из графических блоков. Мощности инструмента хватает на написание полноценного тетриса, а классическую игрушку Invaders я сложил за двадцать минут.

Когда же ребёнок перерастёт Scratch, можно дать ему KPL, а за ним - уже любой взрослый язык.
Костя полюбопытствовал, но немедленно программировать не рванулся. Ему пока интереснее играть в готовые красивые игрушки, чем творить что-то примитивное, но своё. Нам было легче: наши поделки по качеству вполне соответствовали большинству доступных на то время игр.

Когда же ребёнок перерастёт Scratch, можно дать ему KPL, а за ним - уже любой взрослый язык.
Костя полюбопытствовал, но немедленно программировать не рванулся. Ему пока интереснее играть в готовые красивые игрушки, чем творить что-то примитивное, но своё. Нам было легче: наши поделки по качеству вполне соответствовали большинству доступных на то время игр.
no subject
Date: Friday, 28 December 2007 16:21 (UTC)no subject
Date: Friday, 28 December 2007 16:32 (UTC)no subject
Date: Friday, 28 December 2007 16:33 (UTC)Правда, ребёнку её, наверное, стОит показывать под присмотром. Чтобы он не рулил этим всем ручками, а заценил, насколько прикольно шевелится робот-страшный-охотник или робот-собиратель-минералов, наблюдать за ними можно вечно, испытывая чувство глубокого морального удовлетворения: нашёл руду, притащил к заводу, закинул, если у завода кончилась батарейка -- достал, отвёз на подзарядку, вернулся, вставил, достал из завода Кусочек Металла, отвёз в кучку кусочков металла, повторил с шага 1, если на каком-то этапе кончается своя батарейка, тоже подзарядился. И вот оно как бы само ездит, жужжит, существует!
Очень жалко, что нет продолжения "для взрослых", где можно было бы войнушки устраивать и всё такое.
гм, а чем это лучше
Date: Friday, 28 December 2007 16:37 (UTC)no subject
Date: Friday, 28 December 2007 16:38 (UTC)Re: гм, а чем это лучше
Date: Friday, 28 December 2007 16:40 (UTC)no subject
Date: Friday, 28 December 2007 17:33 (UTC)no subject
Date: Friday, 28 December 2007 17:54 (UTC)no subject
Date: Friday, 28 December 2007 18:52 (UTC)Re
Date: Friday, 28 December 2007 21:45 (UTC)тем
Date: Friday, 28 December 2007 23:10 (UTC)Как минимум, я не видел в скриншотах никаких goto (стрелок из произвольного места в произвольное место).
Ещё чем лучше -- что приучает к тому, что для каждой проблемы существует свой domain specific language. Для простейших игр -- простейшие блок-схемы, а как человек поймёт, что нужно что-то мощнее, так и возьмёт. В противовес текущему среднему подходу, когда берут слишком уж универсальный и неподходящий язык и решают на нём всё (даже то, что не стоит), а в качестве облегчения предлагают copy'n'paste. Очень хорошая практика, б/п.
А мешок книг по бейсику из-за того и нужен, что язык кривой и требует этого мешка для понимания.
Лучше уж рисованые блок-схемы.
И лучше, когда программирование является и остаётся удовольствием, нежели тупыми разборками с синтаксисом, с семантикой (нетривиальной для средних языков программирования), с клавиатурой (когда кода слишком много), с ненужными, лишними деталями (а язык именно тогда считается низкоуровневым, когда требует внимания к вещам, не относящимся к предметной области).
а он знает инглиш в таком объеме?
Date: Saturday, 29 December 2007 08:06 (UTC)no subject
Date: Saturday, 29 December 2007 09:08 (UTC)Re: а он знает инглиш в таком объеме?
Date: Saturday, 29 December 2007 10:35 (UTC)Ага, "нашёл у папы на компьютере Турбо-Бухгалтер, дошёл до второго уровня, на налогах меня заколбасили".
Re: гм, а чем это лучше
Date: Saturday, 29 December 2007 14:05 (UTC)другое дело, что, конечно такого уровня игрушки не писал в том возрасте.
Re: гм, а чем это лучше
Date: Saturday, 29 December 2007 14:12 (UTC)платформа MSX лучше приспособлена к играм, чем PC.
учитывая что выпущено это дело было в 1983 году, там уже был звукогой (многоголосный) процессор, видео-процессор уровня EGA (и с зачатками VGA) с аппаратной поддержкой спрайтов (и детектирования их пересечения), кравиатура гораздо отзывчивее, чем ПиСишная.
так что игры там писать было несколько легче.
no subject
Date: Saturday, 29 December 2007 15:00 (UTC)Детского воображения вполне должно хватить, чтобы все эти блоки представить самостоятельно (если хочется), имея перед глазами только голый текст скрипта :)
Единственная проблема - английский язык. Не все его в 10 лет знают достаточно, чтобы нормально понимать, что написано хоть слева картинками, хоть справа текстом.
Re: гм, а чем это лучше
Date: Saturday, 29 December 2007 15:19 (UTC)no subject
Date: Thursday, 3 January 2008 14:49 (UTC)вот "упраженения" - хороши. обучательны. обидно только что после этого нет нормальной возможности "запустить все это" - чтобы мир где можно было бы наладить действительно длинную производственную цепочку.
язык напоминает C++ по большей части. идея классная, но много ляпов. главный по сути то что каждый робот независим и система разваливается от тычка.
из конкретных идиотизмов:
- перезарядить другой бот - анрил, точка прикручивания батарейки не прописана.
- прицеливание стрелялок нормально не сделано, только костылями.
- скрипты прикручены к роботу, сдох - скрипт стирается, если не сохранили - плачьте.
- алгоритмы путенахождения - кривы и регулярно зависают. писать свои. причем хорошо если для каких-нибудь ползалок, про полеты вообще молчать можно.
но в целом идея богатая, да. кабы тут было общее скриптовое пространство...
no subject
Date: Thursday, 3 January 2008 15:11 (UTC)Да, я и говорю, продолжения для взрослых очень не хватает =)
Re: Reply to your comment...
Date: Thursday, 3 January 2008 15:47 (UTC)Scratch как "разогревающий язык"
Date: Sunday, 6 January 2008 06:00 (UTC)Созданные программы можно загрузить на сайт, как и скачать оттуда любую другую, и смотреть, изучать, модифицировать. Нахолдить красивые решения и делать их еще лучше.
Скретч - это не еще один инструмент для обучения программированию. Ориентированность на игры и графику создает для детей ощущение "игры на своем поле". Они тут сами по себе и играют (создают) по своим правилам, а не по навязанным взрослыми, чито неизбежно при раннем изучении "взрослого языка".
При этом обратим внимание, что графические эффекты там сравнимы с фотошопом, плавность движения и управляемость - с флеш. Мультимедийные возможности - тоже на высоте (чего стоит одна только возможность озвучить персонаж с микрофона). Это не убогая подделка под мультимедиа, как Лого-миры, которые по сути являются анимированным Paint'ом. Алгоритмика и Лого, упомянутые тут, никогда не позиционировались как игры - дидактика там так и прет. Хотя для начального обучения и они хороши. Вопрос только когда (я даю их в третьем, а не в седьмом-восьмом, как рекомендуется) классе - и в этом возрасте это хорошо.
Но Скретч - лучше.
А вот KPL - не осилил. По-моему, это уже перебор. Когда дети подходят к такому уровню освоения, пора сказать "стоп" и переходить к "нормальным" языкам.
Кто-то прекрасно охарактеризовал Скретч как "разогревающий язык". Его роль в том, чтобы заинтересовать тех, кто прошел бы мимо программирования, дать возможность тому, кто в паскалевом "begin" делает три ошибки (есть у меня такие ученики в 9 классе), понять, что не все в компьютере приносят в запечатанных пластиковых упаковках. Кое-что можно делать и самому.
no subject
Date: Sunday, 6 January 2008 06:03 (UTC)Поверьте, Лого много круче.
no subject
Date: Sunday, 6 January 2008 06:06 (UTC)В прошлом году искал ее долго - нашел на каком-то торренте, закачал. Так она оказалась насквозь прошпигована троянами...
Почикал, блин, даже не запустив.
no subject
Date: Sunday, 6 January 2008 10:01 (UTC)no subject
Date: Friday, 1 February 2008 14:09 (UTC)no subject
Date: Friday, 1 February 2008 14:23 (UTC)Никаких светлых идей у меня на этот счёт нету. Только обычные методы - демонстрация личным примером, затаскивание на посмотреть в интересные места, где люди творят, поощрение инициатив...
Re: Scratch как "разогревающий язык"
Date: Friday, 1 February 2008 14:24 (UTC)Re: Reply to your comment...
Date: Tuesday, 19 February 2008 12:49 (UTC)Here is a list of mathematical functions:
sin(angle) sinus
cos(angle) cosinus
tan(angle) tangent
asin(value) arc-sinus
acos(value) arc-cosinus
atan(value) arc-tangente
sqrt(value) square root
pow(x, y) x power y
rand() random value ranging between 0 and 1
У объекта есть pitch, roll.
По-моему всего достаточно, только думать лень =)
dcb_BanDos