Прошу прощения, если эта тема уже затрагивалась. Видел много тем по обучению, но мне хотелось сделать акцент именно на обучении детей.
Небольшое лирическое отступление.
Я начал учиться программированию лет в 10, когда отец купил мне книжку для детей по программированию на Бейсике. Компьютера у меня тогда не было, поэтому свою первую программу я написал на бумажке
(кажется она переворачивала введенную строку). Эта самая программа послужила толчком для покупки компьютера (ZX Spectrum
). Далее я изучал ассемблер, Паскаль, потом С++ (на котором пишу и сейчас) плюс еще кое-какие языки чисто для ознакомления.
Сейчас у меня есть 10-летний племянник, и мой отец, видимо решив повторить путь успеха, хочет отдать ему ту самую книгу по Бейсику, дабы ребенок мог ознакомиться с азами и решить, интересно ему это или нет. Проблема в том, что я не смог объяснить неспециалисту, что Бейсик — это плохой язык для обучения (тем более, что в книге описывается еще тот "классический" вариант с номерами строк и повсеместными goto). На резонный вопрос, что я могу порекомендовать в качестве "хорошего" языка для обучения, ответа у меня не нашлось. Когда я начинал, другого варианта кроме спектрум+бейсик у меня просто не было, но калечить мозг ребенку сейчас не хочется. Проблема еще в том, что в "мое" время я мог вывести на экран какой-то текст, нарисовать квадратики и т.п. и чувствовать себя счастливым. Сейчас же, мне кажется, дети разбалованы всевозможными GUI-шными красивостями, 3D-игрушками, и вывод текста в консоли может показаться им не слишком заманчивым. Надеюсь, что я ошибаюсь
.
Поэтому был бы благодарен за конструктивную информацию по данному вопросу (слово "конструктивная" означает, что не нужно флудить и писать "С++", "ассемблер" и т.п.
).
Я для себя сформулировал приблизительный список требований к такому языку.
1. Он должен быть интерпретируемым.
2. Должен иметь достаточно простой и интуитивно понятный синтаксис.
3. Никакой экзотики, язык должен быть в целом подобен массово используемым языкам.
4. Желательно, чтобы были простые средства визуализации, возможность чего-то порисовать (мне кажется, для детей это важно — сам сначала этим увлекался
).
5. Желательно, чтобы язык был объектно-ориентированным, но допускал и простое алгоритмическое применение (ИМХО, ООП — это важно, но начинать лучше без него).
6. Очень желательно, чтобы была простая и наглядная среда программирования (например, Visual Studio — это НЕ простая среда для ребенка).
7. В дополнение к языку, конечно, хотелось бы иметь по нему хорошую книжку-учебник для детей. Но у меня создалось впечатление, что с этим у нас туго.
C/C++, C#, Java и т.д. отпадают по понятным причинам. Паскаль для ребенка ИМХО тоже не совсем то. Некоторые рекомендуют Питон. Интересно было бы узнать, как он соответствует приведенному выше списку.
Спасибо.