Подходящая среда для 7-летнего ребенка

Мой 7-летний ребенок хотел бы научиться программировать? (Его идея не моя, и он делает вещи во внешнем мире. Так что я не слишком беспокоюсь с этой точки зрения. Он уже зашел так далеко, что взял из моего офиса книгу по программированию игр, чтобы читать перед сном. На днях мы сели и написали очень простую игру по угадыванию чисел (вы выбираете 8, и это правильно, все остальное - неправильно).

Все прошло нормально, но у него возник ряд вопросов, связанных с синтаксисом языка. (Я выбрал Java, так как в то время у меня была открыта среда IDE.) Я преподаю вводные курсы программирования для послесреднего образования, так что это было для меня чем-то вроде сенсации (большинство учеников средней школы неохотно задают вопросы), так как Мне действительно нужно было понять, как объяснить синтаксис 7-летнему ребенку?

Очевидно, что любой язык типа C будет иметь те же проблемы, что и большинство «языков». Посмотрел на писк, но решил пока не использовать. Я посмотрел на среду Алисы, но она мне тоже не понравилась.

С физической точки зрения ему удобно пользоваться клавиатурой / мышью и относительно легко собирать наборы Lego (так что следование инструкциям с интересным результатом для него работает). У меня есть доступ к Lego NXT, но он еще немного молод для этого (слишком долго, чтобы увидеть результаты работы, даже с прилагаемой графической средой).

В идеале мне бы хотелось, чтобы этот опыт помог ему развить уверенность в математике и логике (если у 7-летнего ребенка есть логика :-).

Я помню, как в детстве использовал графику / логотип черепахи. Я склоняюсь к этому, но мне интересно, есть ли еще какие-нибудь идеи или кто-нибудь может порекомендовать хорошую среду для логотипа?

Изменить 1:

Логотип хорошо получается. Мне нужно научить его концепции углов (90 градусов, 180 градусов). К сожалению, в школе на самом деле не делают деление, так что углы могут быть забавными ...

Сначала нарисуйте квадрат:

FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90

Позже я перейду к циклам:

REPEAT 4 
[
    FORWARD 50
    RIGHT 90
]

А затем переменные:

make "length 50

REPEAT 4 
[
    FORWARD :length
    RIGHT 90
]

Это очень хорошо работает. Практически отсутствует синтаксис, семилетний ребенок легко запоминает словарный запас и мгновенная обратная связь.

Изменить 2:

Что ж, это был успех, поскольку он смог написать простую программу (еще без циклов), пока меня не было в комнате. На самом деле это работает очень хорошо - мы пошли и взяли миллиметровую бумагу и транспортир, мы вычислили углы в 90 градусов, и он сделал кучу квадратов, превратил квадрат в прямоугольник и посмотрел, где он ошибся, и как его отлаживать. Я бы порекомендовал этот подход всем 7-летним, кто интересуется программированием. Думаю, я бы порекомендовал это своим ученикам послешкольного образования (!)

Ответов (25)

Решение

На самом деле в Javascript есть интерпретатор логотипов на основе браузера.

http://logo.twentygototen.org/

Вы также можете использовать эмулятор Commodore 64. Это началось прямо с БЕЙСИКА.

Не смотрите дальше, на самом деле существует целая обучающая платформа / ОС, предназначенная именно для этой цели: Sugar .

OLPC (Per Child One Laptop) операционная система под названием Sugar теперь доступен для широкой публики , и вы можете запустить его в качестве VM во всех основных операционных системах , таких как Windows, Mac и Linux.

Загрузите копию в Sugar Labs .

Одно интересное занятие называется TurtleArt, усовершенствованная версия логотипа 21 века. Также есть удобная для детей версия Python IDE под названием Pippy. Он действительно учит детей Python!

См. TurtleArt и Pippy, а также другие занятия в Sugar.

Алан Кей стоял за некоторыми новыми концепциями в Sugar OS, которая на самом деле является современным воплощением его дальновидного DynaBook. Даже будучи взрослым (инженером), я нахожу забавным играть с ним.

А если вы любите Sugar как виртуальную машину, вы даже можете купить оборудование и в то же время помочь бедному ребенку в другом месте в мире.

Engadget объясняет: программа OLPC XO Buy-One, Give-One реализуется

OLPC OX

В качестве бонуса для нас, взрослых , сахар является производным от Fedora. Так что это настоящая и полноценная ОС на базе Linux. Взломать должно быть весело. ;-)

Недавно я ответил на аналогичный вопрос SO, указав на kidbasic , кроссплатформенное программное обеспечение с открытым исходным кодом.

Я думаю, что Python может удовлетворить ваши потребности. Он известен тем, что его легче выучить, чем многие другие языки, а интерактивный интерпретатор позволяет программистам сразу видеть, что происходит при выполнении фрагмента кода. IDLE gui, поставляемый с ним, прост в использовании. Также есть модуль черепахи через TKinter.

https://docs.python.org/library/turtle.html

Я категорически не согласен с людьми, которые говорят, что семилетним детям будет сложно изучить новый синтаксис. Это полностью наоборот. Попробуйте научить свиному латыни семилетнего ребенка и тридцатилетнего ребенка, для которого английский язык не является родным. Или попробуйте отправиться в путешествие за границу со своими детьми. Посмотрите, кто сможет свободно болтать с туземцами через месяц (подсказка: скорее всего, это будете не вы).

Дети усваивают произвольные языковые условности намного быстрее, чем мы, седые волосы.

С точки зрения развития семилетний ребенок вряд ли постигнет основы синтаксиса даже на своем разговорном языке.

Какой бы язык или среду вы ни использовали, я бы рекомендовал сосредоточиться на идее программирования как на игре, а не на способности писать настоящие программы. С этой целью, вероятно, лучше всего подойдет что-то, что вы можете запустить из командной строки и сразу увидеть результаты, например Python или, для большей наглядности, Silverlight.

Почему бы не вернуться во времена QBasic? Это первый язык, который я выучил (на самом деле это был GW-BASIC, но это не имеет значения).

С синтаксисом гораздо легче разобраться (хотя и непостоянно, а иногда и совершенно разочаровывающе). Он ничему не учит ОО, но это, вероятно, в любом случае выше его головы, поскольку это было бы моим.

Этот сайт тоже может быть интересным.

Попробуйте Small Basic , который имеет язык mini-BASIC и упрощен для молодежи.

У Microsoft есть пара интересных усилий, которые, кажется, подходят:

  • popfly: http://msdn.microsoft.com/en-us/devlabs/cc950523.aspx --- "Popfly включает простой способ создавать игры и делиться ими с друзьями. Выберите из множества встроенных шаблонов или начните с нуля, чтобы создать игру с боковой прокруткой, 2D-стрелялку или множество других. И, что лучше всего, вы можете начать работу, не написав ни строчки кода "... Я думаю, это действительно может помочь получить мотивацию :)

    • smallbasic: http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx --- должен быть упрощен, но с поддержкой инфраструктуры intellisense + .net (краткое описание слишком похоже на маркетинг, поэтому я не вставлял это: P)

Я бы поискал один из множества движков для аркадных игр и дал ему поиграть с ним. Выберите тот, в котором ему нужно будет использовать циклы и условия, а может быть, несколько процедур.

Расскажите ему о парсерах. Вам просто нужно добавить контекст и обоснование того, почему что-то существует. Фигурные скобки предназначены для того, чтобы машина, читающая код, знала, где что-то начинается и где заканчивается.

Я считаю, что большинство людей, включая детей, легко берут вещи, если вы объясняете их назначение . Вот почему школа была для меня ужасным провалом, никто так и не объяснил смысл выучить половину материала.

Скретч - еще один. Разработан в Массачусетском технологическом институте специально для обучения детей программированию.

Я научился программировать в 10 лет точно так же, как вы учили своего сына. Мой отец использовал интерпретатор GW-Basic, поставляемый с нашим AT&T PC6300, и мы написали игру, в которой компьютер задавал вам вопрос, а вы должны были отвечать A / B / C. Большим преимуществом синтаксиса GW-Basic было то, что у вас не было многострочных операторов. Возможно, вы захотите попробовать что-то подобное. Java с фигурными скобками может быть немного сложнее.

Пример кода:

10 PRINT "What color is Big Bird?"
20 PRINT "A. Blue"
30 PRINT "B. Green"
40 PRINT "C. Yellow"
50 INPUT$ ANSWER$
60 IF ANSWER$ = "C" THEN PRINT "Good Job!" ELSE PRINT "Oops, wrong answer!"

Я час за часом использовал различные варианты этого синтаксиса и писал свои собственные «игры». И мне захотелось узнать больше ... может помочь.

Я бы сказал, используйте Visual Basic или что-то подобное, где вам не нужно беспокоиться о синтаксисе, фигурных скобках и т. Д. Я программировал в 7 лет, но это было в LOGO и C64 Basic. Я НЕНАВИЛ ЛОГОТИП ... меня это так расстраивало, что одна из "больших" вещей, которые вы могли сделать, - это передвигаться вокруг глупой черепахи. Тем не менее, C64 Basic (для меня) был великолепен ... как только я отказался от этого (пару лет), я был воодушевлен изучением C и даже ассемблера C64.

Система Squeak Smalltalk - это реализация Smalltalk, о которой я слышал много хорошего, когда дело касалось обучения детей программированию. Предполагается, что проект Etoys содержит множество ресурсов для того, чтобы процесс обучения был интересным и мотивирующим.

Есть книга под названием «Учимся программировать из прагматиков», которая предназначена для людей, которые никогда раньше не программировали, и, возможно, не слишком технических.

Он использует Ruby, который может быть довольно легко освоить новичками.

Бегите с Явы! Попробуйте что-нибудь, предназначенное для обучения, например скретч , логотип или схему PLT .

Я заинтересовался программированием, когда в старшей школе познакомился с языком Тьюринга. В то время Тьюринг использовался в качестве языка обучения во многих школах, и мне очень помогло введение концепций программирования. Вот описание Тьюринга из WikiPedia

Тьюринг - это язык программирования, подобный Паскалю, разработанный в 1982 году Риком Холтом и Джеймсом Корди, затем из Университета Торонто, Канада. Тьюринг является потомком Евклида, Паскаля и SP / k, который отличается чистым синтаксисом и точной машинно-независимой семантикой.

Названный в честь британского ученого-информатика Алана Тьюринга, Тьюринг используется в основном в качестве языка обучения в средней школе и университете. Существуют две другие версии, объектно-ориентированный Тьюринг и Тьюринг плюс, вариант системного программирования. В сентябре 2001 года «Объектно-ориентированный Тьюринг» был переименован в «Тьюринг», а оригинальный Тьюринг был переименован в «Классический Тьюринг». Тьюринг можно получить в Holt Software Associates в Торонто.

Доступны версии для Microsoft Windows, Linux и Apple Macintosh. Тьюринг по-прежнему широко используется в средних школах Онтарио в качестве введения в программирование.

В ноябре 2007 года Turing, который ранее был коммерческим языком программирования, стал бесплатным. По состоянию на 28 ноября 2007 г. он был доступен для бесплатной загрузки с веб-сайта Holt Software для личного, коммерческого и образовательного использования. 1

Попросите его зайти на http://scratch.mit.edu . Мой семилетний ребенок учится этому, пока мы печатаем ...

С таким же успехом можно было бы выбросить Lego ™ Mindstorms ™ как возможность. Он использует графический язык программирования на основе LabView.

Я прочитал этот пост сегодня, а затем случайно зашел на YUP.com и обнаружил

Обучение детей взлому (программа) с помощью Hackety Hack

Я решил опубликовать его как дополнительный ресурс для всех, кто интересуется этим вопросом.

Схема хороша и синтаксически похожа на Logo в отношении простоты. Кроме того, Scheme предлагает очень интуитивно понятный способ понимания рекурсии и сбора таких фундаментальных концепций в информатике, которые на раннем этапе не что иное, как хорошее с большим количеством пользы.

UCB Scheme также предлагает множество встроенных функций для манипулирования предложениями, которые могут иметь больше смысла для семилетнего ребенка, чем построение многоугольников и решение числовых головоломок (не говоря уже о том, что нет предела!).

Я набирал программы из книги «BASIC Fun», когда учился во 2-м классе.

Я отчетливо помню, что концепция бесконечных циклов и INPUT A $ была похожа на открытие гравитации. Головокружительная штука.

Самоучка, мой прогресс был невероятно медленным, хотя я действительно достиг точки в программе, когда мне хотелось, чтобы GOSUB принимал переменные аргументы, что в ретроспективе означало, что я понял указатели на функции.

В мои ранние цели входило написание ДЛИННЫХ программ. Длительная программа - неплохая цель для 7-летнего ребенка, потому что программа с четко определенной спецификацией делает риск неудачи слишком высоким. Любой может написать длинную программу, чувствовать себя хорошо и многому научиться в процессе.

Был целый жанр книг по программированию на BASIC для видов из 80-х. Это отличный источник идей для программирования. Однако я бы не рекомендовал использовать BASIC даже для 7-летнего ребенка - lua имеет простое ощущение BASIC, но это не сломанная чушь.

Я очень повеселился с моим 6-летним ребенком и Гринфутом (http://www.greenfoot.org/). Он объектно-ориентированный и визуально-графический, что понравилось моему ребенку.