2008-08-21 7 views
45

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

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

Есть связанные запросы к этому, такие как «Best ways to teach a beginner to program?» и «One piece of advice» о начале программирования для взрослых, оба из которых я отправил ответы, но детям может потребоваться другой инструмент.

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

ответ

43

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

+0

+1: Это, как я начал, когда мне было 10. – 2009-08-15 16:24:48

+0

Эти вещи также помогут вам начать с аппаратного обеспечения - вы не просто печатаете что-то на экране ... вы перемещаете вещи в физическом пространстве, и это здорово! – 2010-11-17 14:02:30

7

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

Link to the presentation

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

1

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

8

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

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

3

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

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

5

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

2

Хотя _why не дарил ему много любви в прошлом году или около того, какое-то время я был очень взволнован о Hackety Hack. Я думаю, что ключ для большинства новых программистов, особенно детей, которые больше склонны потерять интерес к вещам, - это мгновенная обратная связь.Это была действительно замечательная вещь в Hackety Hack: несколько строк кода, и вдруг у вас что-то впереди, что-то делает. Есть несколько подобных приложений, направленных на такие вещи, как рисование графики (одна из которых, я кратко помог Натан Вайзенбаум, Scribble!). Детям просто нужна положительная обратная связь, что они делают что-то правильное на регулярной основе, иначе нет ничего, что могло бы заинтересовать их в задаче. Я думаю, что будущее для обучения детей программе - это своего рода DSL, построенный на языке с дружественным синтаксисом (к ним относятся, возможно, Ruby, Python и Scheme), целью которого является создание интуитивной среды для построения простых игры (скажем, Tic-Tac Toe, или Hangman).

5

Для ребенка я бы пошел с Алисой.

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

+2

Это сообщение заставило меня посмеяться :) – andrewrk 2008-11-18 00:46:04

13

Я буду предлагать предложения Джеффа Phrogram (used to be KPL) и Alice.

Мое единственное другое предложение: Lego Mindstorms NXT. Язык программирования NXT является перетаскиванием, очень прост в использовании и может выполнять некоторые очень сложные задачи, как только вы его изучите. Также молодым мальчикам обычно нравится видеть, как все движется. :)

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

3

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

3

Оформить заказ Squeak от Alan Kay кто думает, что программирование должно преподаваться в раннем возрасте.

1

Хорошо, если они молоды и не узнали их ABC, вы можете попробовать их на BF - не из тех надоедливых букв и цифр, с которыми нужно иметь дело.

Я получу «пальто».

Skizz

+0

помогите объяснить, что такое BF? – Axarydax 2010-01-14 12:50:16

+0

Это язык программирования, который использует восемь символов: «[] + -><." - нет букв или цифр. Хорошо, это имя не особенно дружелюбное к ребенку - держите его как BF. – Skizz 2010-01-18 10:27:40

1

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

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

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

2

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

Ближайшие, которые я недавно видел в этой простоте, это pygame library для python и Processing, набор java-библиотек с IDE.

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

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

10

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

Scratch - разработанный в MIT - http://scratch.mit.edu/

и

еТоуз от One Laptop Per Child славы - http://wiki.laptop.org/go/Squeak

+0

Просто добавьте, что теперь у нас есть две группы в течение всего года, использующие Scratch, и она работает очень хорошо - они получают завитки циклов, подпрограмм, полных работ. – 2009-05-22 14:14:38

6

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

Причина, по которой я рекомендую использовать C64, потому что она ОСНОВНАЯ, но вам все равно придется изучать некоторые связанные с компьютером вещи, такие как модель памяти, пиксели, символы, карты символов, символы новой строки и т. Д. И т. Д., Если вы хотите сделать более продвинутый материал. Кроме того, если ваш ребенок считает скучным, вы знаете, что его сердце действительно не в кодировании.

0

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

2

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

4

Game Maker может быть другой подход. Вы можете начать просто с легкой разработки перетаскивания, а затем ввести более продвинутое программирование, когда идете. В книге The Game Maker's Apprentice: Game Development for Beginners есть несколько примеров игр и проводится через шаги, необходимые для их создания.

6

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

1

Глядя на Алису, я вижу, что она «предназначена для школьников и студентов».Там, как представляется, другой язык/версия под названием Story Telling Alice, который «предназначен для студентов средней школы»

Alice Download Page

25

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

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

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

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

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

7

Я бы пошел с Scratch, некоторые моменты относительно этого.

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

Я хотел бы отметить, что, хотя многие из нас начали программировать в раннем возрасте в базовом или логотипе, а потому, что программист в дальнейшем не означает, что для начала это хорошие языки. Я думаю, что у детей сегодня есть намного лучшие варианты, такие как царапины или Алиса. Языки, основанные на тексте (python, ruby, basic, C# или даже c), зависят от внешних библиотек и инструментов (редакторов, компиляторов), в то время как что-то вроде Alice или scratch - все включено и будет обучать детей (не нацеленных на подростков) концепциями программирования. Позже они могут двигаться дальше и расширять свое обучение.

2

Как я сказал here, я бы пошел за Squeakland и знаменитым примером Drive a Car (приведенный в действие Squeak).

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

И позже, когда ребенок развивается, он может изучить более сложные и даже очень продвинутые концепции, которые также находятся в Squeak (например, программирование statefull webapps с автоматическим рефакторингом и автоматическими модульными тестами!).

И, как @cpuguru и @Rotem, Scratch (также основанный на Squeak) тоже хорош.

0

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

0

Хотя я возился с LEGO Mindstorms (и понравился) в прошлом я бы рекомендовал тщательно XNA Game Studio по следующим причинам:

  • Она включает в себя создание чего-то многие дети будут заинтересованы в (играх).
  • Это бесплатно.
  • Это настоящий язык (C#) и настоящая IDE (Visual Studio).
  • Вы узнаете ООП.
  • Это то, что родители собираются найти так же весело, как дети.
0

Как насчет AIML? Не столько язык программирования, но вы получаете мгновенное удовлетворение, и потому что все об искусственном интеллекте, скорее всего, вызовет его (ее?) Чувство волнения.

0

Я начал программировать во Flash.

"игрушечный язык" meh meh meh.

и до этого крошечного количества логотипа в школе

Я понятия не имею о Mindstorms, но я предполагаю, что это было бы хорошо.

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

С немного мгновенным удовлетворением, если вы перемещаете несколько снимков на экране, вызывая несколько звуков здесь и там, может быть немного более привлекательным результатом, чем создание программы кассового аппарата, создавая программу озвучивания fizz и т.д.

«Смотри бабушку, я построил веб-страницу!» - даже начиная с HTML и некоторого javascript, везде с таблицами и шрифтами, а также иметь возможность делиться тем, что развивается с кем-то, кто не является техническим, вероятно, будет более полезным в долгосрочной перспективе, чем 30 строк C, закодированных, чтобы успокоить код с ума отец. Что может быть или не может быть

0

Что относительно Stagecast Creator?

Я использовал его с моей 7-летней дочерью (мы начали, когда ей было 6 лет).

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

Он учит о том, если ... затем логика. Порядок операций (поскольку он обрабатывает первое правило, которое является истинным). Имеет отладчик, чтобы вы могли пропустить свой код и т. Д.

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

Как только вы это определите, вы можете перейти на «настоящий» язык.

0

Python - отличный первый язык программирования, и его можно использовать для осуществления концепций процедурных и функциональных языков.

Бесплатная книга A Byte of Python - это легкое введение, написанное для новичков, и доступно на нескольких языках.

10

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

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

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

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

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

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

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

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

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

Программирование Phrogram для Absolute Beginner, Джерри Ли Форд-младший, также доступно в мягкой обложке в Amazon и в других местах.

0

Когда моей дочери было 6 или 7 лет, я показал ей логотип - должен был подумать, что это весело рисовать фигуры, - но потом потерял интерес.

Когда ей было 10 лет, я попробовал Squeak - и она подумала, что это здорово. Она быстро подобрала синтаксис Smalltalk, и ей было очень весело. Я также пробовал Greenfoot - но с меньшим успехом.

Я думаю, что Руби может быть стоит идти к (я использую Ruby, время от времени - хороший материал)

Теперь она больше заинтересована в других - невычислительных - деятельности.

Так что в эти дни я бы сказал, что Squeak стоит попробовать. Что относительно Hackety-Hack. еще не пробовал это с детьми, но выглядит интересно.

1

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

0

Уоррен и Картер Санд, которые я приобрел для своего 9-летнего ребенка, есть новая книга под названием «Hello World: компьютерное программирование для детей и других начинающих». Он изучит программирование, и я изучу Python.

0

Scratch.

Не позволяйте подобным мультфильму результатам обмануть вас. Дети любят эту вещь, и она предлагает большую часть того, что вы ожидаете на языке программирования: петли; условная логика; Мероприятия; подпрограммы; и объектно-ориентированное программирование.

Другие вещи, чтобы понравиться:

  • Отличная документация
  • Многофункциональность Некоторые дети любят игры. Другие любят рассказывать истории или создавать мультфильмы. Другие любят делать музыку или графические эффекты. Все это можно сделать с помощью Scratch. Дети могут даже публиковать свои программы на веб-сайтах, которые они создают, как часть мультимедийных/веб-классов.
  • Окружающая среда Графическая среда разработки, в которой элементы программирования связаны друг с другом. Форма и цвет используются очень хорошо, как визуальные сигналы.
  • Социальное кодирование Большая коллекция созданных сообществом программ с рейтинговой системой, которую дети могут использовать для получения новых идей, выяснить, как решить конкретные проблемы, или поделиться своими творениями со своими сверстниками.
  • Взлом Детям очень легко добавить свои собственные звуки и нарисовать собственные персонажи. Напоминает мне о цифровой строительной бумаге.
  • Подходит для использования Интерфейс достаточно прост, чтобы дети могли начать использовать его с очень небольшим количеством введения.

Самое важное, что Scratch может работать на Windows, Linux и OS X, поэтому школы со смешанными аппаратными настройками не будут забыты.

0

PHP или Visual Basic. Я начал с PHP, когда мне было 9, и теперь мне нравится только сто языков. Мое любимое PHP и C++.

0

Мои сыновья (и мне) было весело, используя комбинацию предложений уже упомянутых здесь:

NXTurtle это немного mashup, чтобы начать ...

0

Im 6-й грейдер, и я был заинтересован в концепции программирования с тех пор, как увидел компьютер. Я пробовал много языков программирования (.NET, Python и Javascript), и я должен сказать, что моим фаворитом пока является Visual Basic (.NET), потому что проектирование легко, и сам код легко понять. Это так здорово, как ребенок, увидеть программу, которую ВЫ сделали и работаете, и я думаю, что Visual Basic имеет лучший способ сделать это.

-Карл

0

Любой попадались BigTrak? Это был мой первый опыт программирования. По существу это физически гигантская эмблема черепахи, в форме боевого танка, с клавиатурой поверх нее, чтобы ввести программу.

Возможно, в зависимости от возраста 5-8, , даже если у детей есть терпение/координация для ввода на экране.

 Смежные вопросы

  • Нет связанных вопросов^_^