Предложения по началу детского программирования [закрыто]

StackOverflow https://stackoverflow.com/questions/20059

  •  09-06-2019
  •  | 
  •  

Вопрос

Какие языки и инструменты, по вашему мнению, должен использовать молодой человек, начинающий программировать в современную эпоху?

Многие из нас начинали с проприетарных базовых программ, и они не причинили всем нам долгосрочного вреда :) но, учитывая опыт, который вы получили с тех пор, и ваши знания предметной области сейчас, есть ли лучшие варианты?

К этому запросу есть связанные запросы, например "Как лучше всего научить новичка программировать?" и "Один совет«О начале программирования для взрослых, на оба из которых я отправил ответы, но детям может потребоваться другой инструмент.

Раскрытие информации:чертовски сложно выбрать «правильный» ответ на такой вопрос, поэтому тот, кто когда-либо наберет лучший результат за несколько дней, получит от меня оценку «лучший ответ» на основе выбора сообщества.

Это было полезно?

Решение

Я бы предложил Лего Майндшторм, он обеспечивает интуитивно понятный интерфейс для программирования с помощью перетаскивания, а поскольку он поставляется с аппаратным обеспечением, он дает ребенку что-то осязаемое.Кроме того, поскольку это «LEGO», они могут воспринимать это скорее как игру, а не как упражнение по программированию.

Другие советы

Моя основная работа — в школе, и за последние несколько лет я видел или обучал (или пытался обучать) разных детей в разном количестве урокам программирования.

Дети все разные: кто-то быстро учится, кто-то нет.В частности, у некоторых навыки грамотности выше, чем у других, и это определенно влияет на скорость, с которой они освоят программирование.Могу поспорить, что большинство из нас, профессиональных программистов и людей, которые читают и публикуют сообщения на форумах ради развлечения, научились читать в довольно молодом возрасте.Для таких детей, а если это ваш собственный ребенок, которого вы можете обучать один на один, вы можете добиться большего, чем JavaScript - у него есть то преимущество, что вы можете сразу делать с ним реальные вещи, а цикл редактирования-тестирования просто нажимает «обновить» в браузере.Это становится запутанным, когда вы начинаете сталкиваться с тем, что JavaScript делает все асинхронно и его сложно отлаживать, но для одаренного ребенка, находящегося под пристальным вниманием, эти проблемы можно преодолеть.

LEGO Mindstorms определенно находится на вершине списка.В настоящее время в большинстве школ кубики склеиваются суперклеем, чтобы создать готовые модели, от которых нельзя отодрать кусочки, но дома это не должно быть проблемой.На сайте Times Education Supplement (Forum Forum для еженедельной учебной газеты Великобритании) «Какой язык программирования лучше всего подходит для детей?» Тема появляется довольно регулярно.Там много рекомендаций по Scratch как альтернативе Mindstorms - немного больше свободы, чем Mindstorms, опять же, вероятно, лучше для более способных учеников, которым также можно дать паяльник.

Я обнаружил, что у более медленных учеников все еще могут возникнуть проблемы с Mindstorms, даже несмотря на то, что среда программирования «графическая» - на экране все еще много чего происходит, и есть что запомнить (это была старая версия, помните - убежище еще не пробовал шикарную новинку).По моему опыту, лучшим всесторонним введением в программирование, вероятно, по-прежнему является LOGO — на самом деле это значительно более мощный язык, чем большинство людей ему приписывают.Оригинал Мозговые штурмы Книга Сеймура Пейперта (ничего общего с LEGO — они позаимствовали название книги для своего продукта), одного из создателей LOGO, является каноническим справочником по обучению детей программированию как «навыку мышления» и концепции Конструктивизм в обучении.

У нас были занятия по программированию логотипа для детей 7 или 8 лет.Обратите внимание, что мы не стремимся сделать их «разработчиками программного обеспечения», это карьерный путь, который они могут выбрать в какой-то момент после 16 лет.В юном возрасте мы пытаемся заставить их думать о «компьютерном программировании» как о просто еще одном инструменте – о том, как сформулировать задачу, которую нужно решить с помощью компьютера, точно так же, как они могут использовать интеллектуальную карту, чтобы помочь им организовать и запомнить материал для экзамена.Ни одного бедного ребенка нельзя сажать и тренировать в мелочах и использовании определенного языка, ему следует предоставить возможность исследовать и разбираться во всем так, как ему нравится.

Я поддержу предложения Джеффа о Программа (раньше была KPL), и Алиса.

Мое единственное другое предложение Лего Майндштормс NXT.Язык программирования NXT поддерживает перетаскивание, он очень прост в использовании и может выполнять некоторые очень сложные задачи, как только вы его изучите.А еще маленьким мальчикам обычно нравится смотреть, как все движется.:)

Я использовал Alice и NXT с некоторыми маленькими детьми, и они очень хорошо восприняли это.

Две возможности:

Scratch — разработан в Массачусетском технологическом институте — http://scratch.mit.edu/

и

EToys из серии «Один ноутбук на ребенка» — http://wiki.laptop.org/go/Squeak

Полное раскрытие:Я один из тех, кто изобрел детский язык программирования, который сейчас http://www.Phrogram.com, который другие рекомендовали здесь.Позвольте мне добавить немного информации об этом, ориентированной на программистов.

Это IDE для кода, а не метод перетаскивания или конструктор.Это было сделано намеренно с нашей стороны — мы хотели, чтобы заниматься настоящим текстовым программированием, особенно программированием игр и графики, было легко и увлекательно.В этом фундаментальное отличие нас от Алисы и Скретча.Что вы выберете, зависит от ребенка, его возраста и способностей, ваших целей.Использование их последовательно с одним и тем же новичком может быть отличным способом - если вы это сделаете, я бы рекомендовал Scratch, Alice, Phrogram в качестве порядка.Phrogram лучше всего работает для детей от 12 лет и старше, но я знаю пап с 6-летними детьми, которые учили с ее помощью своих детей, и я знаю 10-летних детей, которые научились с ее помощью себя.

Язык настолько похож на английский, насколько мы можем его создать, и настолько минимален, насколько мы можем его сделать.Секретный соус заключается в иерархии объектов на основе классов, которая снова настолько проста, интуитивно понятна и англоязычна, насколько мы могли ее сделать.Иерархия объектов оптимизирована для игр и графики.Доступны 3D-модели и 2D-спрайты.Поддерживается абсолютное перемещение с использованием экранных координат или относительное перемещение, как в случае с черепахами LOGO - Вперед(x), Поворот влево(y).

В состав IDE входит более 100 примеров, несколько языковых примеров (циклы), несколько обучающих примеров (массивы), несколько полнофункциональных игр и симуляторов (Pong, Missile Command, Game of Life).

Чтобы дать вам представление о том, насколько эффективно мы сделали язык и IDE:С помощью 27 инструкций вы сможете управлять 3D-моделью космического корабля вокруг 3D-скайбокса, используя клавиатуру.То же самое и с 2D-спрайтом — от 12 до 15 инструкций.

Мы работаем над совместимой с Blade версией Phrogram, которая позволит запускать программы на XBox 360.Да, XBox на твоем большом телевизоре.Хороший мотиватор для того, чтобы завести ребенка?:)

Phrogram включает поддержку программирования на основе классов с методами и свойствами, но это всего лишь инкапсуляция, а не наследование или полиморфизм.

Учебное пособие и руководство пользователя доступны,

Моя собственная электронная книга «Научитесь программировать с помощью Phrogram!» доступна на Amazon и в других местах в Интернете. Она помогает новичку начать программировать классический Pong.

Книга Джерри Ли Форда-младшего «Программирование программ для начинающих» также доступна в мягкой обложке на Amazon и других сайтах.

Для ребенка я бы взял Алиса.Любому ребенку больше понравится взаимодействие с перетаскиванием, которое использует Алиса, чем попытки запомнить, как пишется и ставит знаки препинания на любом языке программирования.Он/она изучит основные структуры программирования (условные выражения, циклы и т. д.) и получит удовольствие от создания анимационной программы, которую сможет продемонстрировать другим членам семьи или друзьям.

Начинающий курс информатики в местном колледже фактически использует Алису для обучения программированию независимо от языка.Он обеспечивает хорошую основу для перехода к программированию на определенном языке (или нескольких языках) в будущем.

Недавно я видел презентацию о ГринФут (среда обучения детей на основе Java).Это выглядело потрясающе.Если бы у меня были дети, я бы попробовал

Ссылка на презентацию

Это очень игровая среда, где вы можете начать с самых простых методов.Дети учатся объектно-ориентированному мышлению (вы не можете создать экземпляр животного, но можете создать экземпляр кошки).И чем лучше они становятся, тем больше Java вы сможете открыть для них или вместе с ними.

я бы пошел с Царапать, некоторые моменты по этому поводу.

  • Это графический язык программирования.Это не основано на текста (это может быть положительным или отрицательным).Это делает его более интуитивно понятным и легким для детей (7 лет и старше).
  • На самом деле это очень возмутительно.К объектам, которые вы пишете в этих графических сценариях, прикреплен код, и их можно повторно использовать и перемещать.
  • Очень важно:быстрые и впечатляющие результаты.Детям нужно действовать быстро и добиваться результатов, чтобы их зацепить.

Я хотел бы отметить, что, хотя многие из нас начали программировать в молодом возрасте на базовом языке или логотипе, а также то, что мы стали программистами в более позднем возрасте, это не означает, что это хорошие языки для начала.Я думаю, что сегодня у детей есть гораздо лучшие варианты, например, «Скретч» или «Алиса».Текстовые языки (python, Ruby, Basic, C# или даже C) зависят от внешних библиотек и инструментов (редакторов, компиляторов), в то время как что-то вроде Alice или Scratch является всеобъемлющим и научит детей (не предназначенных для подростков) концепциям программирования.Позже они смогут двигаться дальше и расширить свое обучение.

Проверить Программа (ранее КПЛ) и Алиса

Я бы сказал:дайте ребенку настоящий C64, потому что я с этого начинал.Но сегодня...Я бы сказал Руби, но Руби слишком хаотичен.BASIC будет лучше в долгосрочной перспективе.Обработку легко освоить, и по сути это Java.

Причина, по которой я рекомендую C64, заключается в том, что это BASIC, но вам все равно придется изучить некоторые вещи, связанные с компьютером, такие как модель памяти, пиксели, символы, карты символов, переводы строк и т. д.и т. д., если вы хотите делать более сложные вещи.Кроме того, если вашему ребенку это кажется скучным, знайте, что его душа действительно не к программированию.

Я бы предложил ЛОГО.Этому учили в моей начальной школе.Он дает почти немедленную обратную связь и обучает действительно базовым концепциям программирования.Перемещать эту маленькую черепаху может быть очень весело.

В детстве я бы выбрал Алису.

Вот еще один голос за Алису.Мои четверо детей получили массу удовольствия, работая с ним и изучая основные концепции программирования.Конечно, для них все дело в общении с феями и ограми, но, черт возьми, чертова система наследия, над которой я работаю, тоже могла бы использовать некоторых фей и огров.

Я бы порекомендовал Python, потому что он очень краток и выразителен.Кажется, что при начале работы это вряд ли разочарует, но дает достаточно места для изучения и более продвинутых концепций.

Создатель игр может быть другой подход.Вы можете начать с простого процесса разработки с помощью простого перетаскивания, а затем по мере продвижения внедрять более сложное программирование.Книга Ученик гейммейкера:Разработка игр для начинающих содержит несколько примеров игр и описывает шаги, необходимые для их создания.

Я думаю, что Python — хорошая альтернатива;это очень мощный язык, и вы можете легко делать много вещей (совсем не скучно).

Проверить Скрип разработан Алан Кей которые считают, что программированию следует обучать в раннем возрасте.

Сколько лет?Многие из нас когда-то изучали BASIC, но до этого я изучил концепции объединения команд, переменных и циклов с помощью LOGO.Понимание того, как нарисовать круг с треугольником, который может двигаться только по прямой и поворачивать, было моим самым первым достижением в программировании.

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

Хотя _why не проявлял к нему особой любви в течение последнего года или около того, какое-то время я был очень взволнован этим Хакети Хак.Я думаю, что для большинства начинающих программистов, особенно для детей, которые более чем склонны терять интерес к вещам, ключом является мгновенная обратная связь.Вот что было действительно замечательно в Hackety Hack:несколько строк кода, и внезапно перед вами появляется что-то, что что-то делает.Существует несколько подобных приложений, предназначенных для таких вещей, как рисование графики (одно из которых, в котором я кратко помогал Натану Вайзенбауму, Каракули!).Детям просто нужна положительная обратная связь, что они регулярно делают что-то правильно, иначе ничто не будет поддерживать их интерес к поставленной задаче.Я думаю, что будущее за обучением детей программированию — это своего рода DSL, построенный на основе языка с дружественным синтаксисом (к ним, возможно, относятся Ruby, Python и Scheme), цель которого — предоставить интуитивно понятную среду для создания простых игры (скажем, «Крестики-нолики» или «Палач»).

Я думаю, вам следует начать с C.Чем раньше они освоят указатели, тем лучше.

Видеть Понимание указателей и Должен ли я выучить C.

Я думаю, что первый вопрос:какую программу было бы интересно создать?Одной из вещей, которая помогла мне начать заниматься программированием в детстве (на BBC Basic, а затем на QBasic), была простота написания графических программ.Я мог написать пару строк кода и сразу увидеть, как моя программа рисует линию на экране.

Ближе всего к такой простоте я видел в последнее время библиотека pygame для питона и Обработка, набор Java-библиотек с IDE.

Я полагаю, что взлом веб-страниц был бы еще одним хорошим способом начать:это повлечет за собой HTML, Javascript (с использованием такой библиотеки, как jQuery), возможно, PHP или что-то в этом роде.

Какие бы инструменты вы ни предоставили, главное, чтобы было легко сразу приступить к работе.Если вам придется написать двадцать строк правильного кода и выяснить, как вызвать компилятор, прежде чем вы увидите какие-либо ощутимые результаты, прогресс будет медленным.

Здесь уже есть много хороших предложений.Я полностью согласен с Кроникарзом.Приобретите ретро-компьютер (или эмулятор), который вас интересует, и учите с его помощью.Почему ретро-компьютер?Базовый встроен.Создание звуков и примитивной графики — тривиальная задача.Настоящая игра может быть лучше, чем эмулятор, потому что она будет немного интереснее для ребенка, который привык видеть только современные устройства.

Как я сказал здесь, я бы пошел на Сквикленд и знаменитый Вести машину пример (при поддержке Скрип).

Синтаксис Smalltalk прост, что отлично подходит для детей.

А позже, по мере развития ребенка, он сможет изучить более сложные и даже очень продвинутые понятия, которые также есть в «Скрипе» (например.программирование веб-приложений с сохранением состояния с автоматическим рефакторингом и автоматизированными модульными тестами!).

И, как сказали @cpuguru и @Rotem, Scratch (также основанный на Squeak) тоже великолепен.

Я думаю, что Java может быть хорошим выбором просто потому, что вы можете легко создавать графические интерфейсы и видеть, как происходят «крутые вещи».По той же причине, возможно, любой из языков .NET.Я также слышал хорошие отзывы о языках сценариев (особенно Ruby и Python), которые помогают детям научиться программировать.

Что ж, если они молоды и еще не выучили азбуку, вы можете попробовать их на BF - без этих надоедливых букв и цифр.

Я принесу себе пальто.

Скизз

Я бы сказал то, что мне хотелось бы знать в первую очередь:простая коробка MS-DOS и встроенный ассемблер (отладка).Замечательно действительно изучить и понять основы общения с компьютером.

Если это не отпугивает ребенка, то я бы перешел на «следующий уровень» и представил C.Это не должно быть сложно, учитывая, что к тому времени основная концепция указателей, регистров и инструкций в целом будет хорошо понята.

Однако я не совсем уверен, куда идти дальше.Сделайте большой скачок к Lisp, Haskell или аналогичным абстрактным языкам, или следует добавить какие-нибудь простые объектно-ориентированные языки (возможно, даже C ++), или это больше повредит, чем поможет?

Глядя на Алису, я вижу, что она «предназначена для старшеклассников и студентов».Кажется, существует другой язык/версия под названием Рассказчик Алисы это «предназначено для учащихся средних классов»

Страница загрузки Алисы

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

Попробуйте [Гвидо ван Робот][1].Это отличное введение в робототехнику и отличный способ познакомить детей со стороной программирования (а не со стороной «создания роботов»).

Разве Smalltalk не был создан для этой цели?Я думаю, что Ruby будет хорошим выбором как потомок Smalltalk.

Я знаю, что в первые несколько лет старшей школы нас «учили» логотипу и, как ни странно, HTML.После этого прогресс пошел к макросам в MS Office, затем к базовому VBA, а затем к Visual Basic.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top