Как учить маленьких детей программированию?
Один мой давний друг не так давно (около года назад) стал отцом. И с тех пор был озадачен тем, как начать учить ребенка программированию до того, как он (ребенок) сможет ходить. Мне все-таки кажется, что до 4-5 лет беспокоиться об этом не стоит, но вот после 5-ти лет – уже пора что-то придумывать!
Удивительно, но индустрия “программирования для детей” развита очень незначительно. Мой коллега писал про то, как учить детей объектному мышлению. Мы тоже думаем в этом направлении. Однако технический вопрос о среде программирования тоже остаётся открытым, и C# для вундеркиндов, равно как и Small Basic, как-то не дают ответов.
Недавно смотрел среду NetLogo (искал среду многоагентного моделирования для использования в курсе по многоагентным системам), и вспомнил про классический Logo. Был удивлён тем, что практически не существует хороших классических реализаций Logo на русском языке! Удалось найти лишь ЛогоМиры, которые наверное хорошо, но уж больно непонятны и чрезмерно усложнены. Однако некоторые попытки продемонстрировать основы программирования ребенку 5.5 лет я сделал, и вот что получилось (с ребенком мы разбирали только построение звёздочки, сначала по шагам в интерпретаторе, потом добавив цикл, а затем вынеся в процедуру с параметром - остальное про ёлку я писал сам как демонстрицию):
Если кому интересно - вот исходный код:
ЭТО ЗВЕЗДОЧКА :N
ПР 90
ПОВТОРИ 5
[ ВП :N ПР 144 ]
ЛВ 90
КОНЕЦ
ЭТО ВЕТКА :N
ПР 30
ВП :N НАЗАД :N
ЛВ 60
ВП :N НАЗАД :N
ПР 30
КОНЕЦ
ЭТО ЕЛКА :M :N
ПР 180
ПОВТОРИ :M
[ ВЕТКА :N ВП 10 ]
ВП 30 ПР 180
КОНЕЦ
К слову - недавно коллеги из восточной европы предложили другой подход к обучение программированию (правда, школьников): использовать функциональные языки (F#) и двигаться "от математики": "вот формула, введём её в компьютер, она вычисляется", дальше добавляем рекурсию и т.д.
Внимание, вопрос: как вы думаете, стоит ли учить детей программированию? С какого возраста? В какой парадигме? На каких инструментальных средствах?
Comments
Anonymous
December 23, 2009
В этом кроется одна маленькая но большая проблемма. Как мы учим детей программировать? Это ведь обычный пошаговый алгоритм. А что сейчас творится в мире? Параллельное программирование! И это проблема, её очень четко обозначили когда я был в Intel. Мы не учим наших детей параллельному программированию, ведь мир он "параллельный". В итогде ребенок уже с детства впитает эту пошаговость. И потом поверьте мне престроиться сложно.Anonymous
May 25, 2010
Не думаю, что детей следует учить программированию. Разве что, в виде факультативов для желающих. Включать программирование в общеобразовательную программу ну уж точно не следует, на мой взгляд.Anonymous
February 24, 2011
Смотря с какого возраста. Детей-гениев не много. Но чем раньше начать учить ребенка чему-то тем вероятнее в будущем ему это легче будет даваться. Приведу пример из своей жизни. Отдала я ребенка в 4 года на английский в группу 7-10 детей. Год походил, потом вместо английского занялись актерским мастерством - чтение стихов с выражением, кукольный театр, постановка сценок и т.д. Сейчас ему легко даются гуманитарные дисциплины: английский, немецкий, русский, литература, риторика, история... Но есть проблемы с математикой, физикой. И вот когда ему исполнилось 14 лет, я решила, что неплохо было бы ему стать программистом. Нашла практикующего программиста по соседству и велела раз в неделю ходить к нему на занятия и учиться потихоньку. Домашнюю работу делаем вместе. )) Пока выполняем задачки на перле, паскале или бэйсике. Понимаю, что он не математик... совсем не математик... Может потихоньку разовьет в себе и эти способности... Мама (бабушка) ругается, что это деньги на ветер, слишком рано, нужно через год или два, что учится не он, а я... Тем не менее, я продолжаю оплачивать услуги репетитора и заставляю ребенка туда ходить.