Подтвердить что ты не робот

Какой хороший способ научить моего сына программировать Java

ОК, поэтому я прочитал различные сообщения о том, как начинающий учитель начал программировать, и были некоторые полезные вещи, которые я буду смотреть более внимательно. Но я хочу знать, есть ли какие-нибудь эффективные инструменты, чтобы научить ребенка Java конкретно?

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

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

У моего сына 8, так что на пару лет раньше, чем я начал, - но он выразил интерес к обучению программированию (возможно, потому, что я много работаю от дома, и он постоянно видит меня в программировании).

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

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

РЕДАКТИРОВАТЬ: просто уточнить; Я действительно особенно после того, как научил его Java; есть уже много сообщений с хорошими ответами на другие альтернативы языка - но это не то, что я ищу здесь.

EDIT: Как насчет фреймворков Java для 2D-видеоигр - можете ли кто-нибудь порекомендовать кого-либо из личного опыта? Мне нравится идея его начать с механики на месте (основной игровой цикл, подсчет очков и т.д.) И добавить особенности игры для его собственного воображения - что я сделал, хотя для меня это было основополагающим на Commodore VIC-20 и Sinclair ZX-81.

4b9b3361

Ответ 1

Просто сделайте учебную забаву, и все остальное последует! Удивительно Scala может быть самым простым языком, если вы попробуете Kojo (Scala лучше Java, у вас есть доступ ко всем библиотекам Java, конечно)

Ответ 2

Вы можете найти вдохновение в этом проекте:

Обучение программированию детей: даже младшие дети могут изучать Java

Java-программирование для детей, родителей и бабушек и дедушек.

Вы можете найти здесь, на веб-сайте faratasystems (прямая ссылка здесь)

Среди уроков, извлеченных в ходе такого проекта, автор упоминает:

  • Большинство задач программирования требуют минимального знания навыков арифметики и алгебры. Чтобы начать программирование, ребенок должен понять, что означает x = y + 2. Еще одна важная концепция для понимания - это утверждение if.

  • Дети развивают абстрактные способности рассуждений к четвертому пятому классу, и они также легко выполняют такие задачи, как просмотр веб-страниц, загрузка и установка программного обеспечения. Дэйв научился быстро вводить, компилировать и запускать Java-программы в Eclipse IDE.

  • Дети учатся намного быстрее, чем взрослые, но у них нет "предыдущего опыта программирования", что на самом деле может быть хорошим, потому что им не нужно переключаться с процедурного на объектно-ориентированное мышление. Узнав о наследовании, Дэйв назвал мою жену суперклассом.

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

  • Помощь с иллюстрациями. В моей книге я включил много цветных мультипликационных символов, которые похожи на смягчитель Java-ткани.
    Characters

  • Детям нравится видеть немедленные результаты и наслаждаться игрой с более короткими программами, например, у класса Fish есть метод погружения (int howDeep). Позвольте мне попытаться вызвать этот метод несколько раз с разными аргументами...
    Methods

  • Графическое программирование является самым забавным, и даже детям может быть объяснена довольно большая программа, такая как калькулятор, Tic-Tac-Toe или Ping Pong.

Ответ 3

Вы заглянули в BlueJ? Я знаю, вы сказали, что склоняетесь к IDE, но это IDE, специально предназначенная для обучения Java. Также, похоже, есть некоторые вещи, которые 8-летние могут найти классные, как графические представления структур классов.

Ответ 4

Я думаю, что Greenfoot лучше, чем BlueJ, для 8-летнего возраста. Он разработан теми же людьми, которые сделали Bluej, но это еще более графически, все еще позволяя полное программирование Java приложений.

http://www.greenfoot.org/getting-started/ 1- скачать и установить JDK 2- затем загрузите и установите greenfoot, и вы готовы начать 3- проверьте хороший и легкий учебник CrabWorld: http://www.greenfoot.org/scenarios/files/crab.zip

Недавно я использовал GreenFoot для обсуждения Java-программирования в очень коротком вводном курсе для студентов старших классов в нашем университете: http://aaue.dk/~av/brobygning2008-software/ (если это может быть полезно).

Если поддержка Java не является фундаментальной особенностью, вы также можете попробовать MIT scratch (автономная версия squeak): http://scratch.mit.edu/ Это очень хорошо для начала, и я использовал его 2 месяца назад в PR-деятельности с участием 2 13-летнего возраста. После менее чем одного дня игры с нуля они сделали свою собственную видеоигру:  http://aaue.dk/~av/personal.html (игра "Черт", они так называли: > ) но он запрограммирован на собственном (визуальном) языке программирования...

Ответ 6

Я знаю, что вы попросили Java, но я собираюсь выйти на конечность и предложить посмотреть туфли на основе Ruby: http://shoooes.net/ и http://hackety.org/press/

Я считаю, что это было первоначально написано как учебное пособие.

Если бы я учился программировать, это меня заинтересовало.

Ответ 7

Я бы попробовал python, потому что
1) Python поставляется с достойным REPL - Idle.. вместо того, чтобы писать длинные файлы кода, javacing и затем javaing его. Если ваше выражение оценивается в тот момент, когда вы его помещаете, лучше подходит для внимания восьмилетнего возраста... u все еще может выполнять функции и модули и прочее.. но в более интерактивной среде
2) python не имеет строгой типизации и позволяет вам играть со словарями и связанными списками с переменным размером с очень небольшим синтаксисом.. таким образом.. вы могли бы научить его некоторым из больших идей, лежащих в основе программирования, и оставить много синтаксиса позже, когда он уже очень вовлечен в этот материал
проверьте http://openbookproject.net//thinkCSpy/

Ответ 8

Я бы пошел на схему. В любом случае, посмотрите на этом сайте, у него есть Java и педагогические ресурсы: http://www.teach-scheme.org/

Ответ 9

Есть интересный Google Tech Talk на Teching Kids для кода - он охватывает часть программного обеспечения под названием Greenfoot, который является вводным программным инструментом, который использует Java. Он использует drag-and-drop и другие визуальные методы взаимодействия с классами.

Ответ 10

Я не запустил бы ребенка с Java. Сначала научите его более концептуально чистым. Что-то вроде LISP, или Logo. Логотип - удивительно мощный язык программирования, и это взрыв, который нужно изучить, поскольку он визуально взаимодействует прямо из коробки.

Ответ 11

Найдите то, что было бы интересно для него, как проект, особенно если вы можете разработать способ, не связанный с графическим интерфейсом. Я считаю, что графические интерфейсы помогают заинтересовать людей, но они принципиально трудны - слишком много усилий изучать как графический интерфейс, так и язык, слишком много, ИМО. Мне нравятся консольные программы - у небольшой консольной программы все прямо перед вами, поэтому вы можете легко понять каждый отдельный символ.

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

EDIT: Еще одна вещь, о которой стоит подумать, основываясь на VonC, на тему "давайте попробовать..." - возможно, начните с интерактивного языка, такого как Groovy (который очень похож на Java) или найдет "оболочку Java" некоторых чтобы позволить вашему сыну "исследовать" язык, выполняя действия немедленно.

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

Ответ 13

Я предлагаю "Программирование видеоигр для злого гения" Яна Синамона. Автору было 15 в то время, когда он написал книгу..... В любом случае, книга относительно проста для того, чтобы следовать и учит, как делать какие-то забавные вещи с Java. Потому что пусть честно, большинство детей хотят делать видеоигры. Назад, когда мне было 10 или около того, я делал программы Visual Basic, которые были текстовыми приключенческими играми. Это мечта о том, чтобы делать видеоигры в средней школе. Во всяком случае, в книге много говорится о том, что вы можете сделать с Java на этом фронте... Не обращайте внимания на то, что 29-летний будет делать с книгой, написанной 15-летним свистком. Мне было 28, когда я купил его...

В любом случае у Java, имеющей так много библиотек, довольно легко получить графику. У Qbasic была сочная графика, но у нее были довольно простые призывы включать и выключать пиксели и рисовать линии, и когда мне было 12 или 13, многие из нас просто делали бы странные эффекты с графикой в ​​QBasic с использованием петель и т.д. Пока это было полная трата времени, это еще больше помогло укрепить концепции итераций, массивов и т.д....

Так или иначе, основываясь на моем опыте и опыте моих друзей, которые могли бы программировать в то время, я бы сказал, что дети любят колокола и свистят графические эффекты и создают видеоигры. Даже текстовые игры подсчитываются. Тот факт, что Java имеет множество библиотек, которые много делают и освобождает программиста от деталей реализации, означает, что если бы Java была вокруг, когда я была такой молодой, я бы, вероятно, потрудился с ней. Добавьте в книгу, написанную 15-летним ребенком на простых видеоиграх на Java (заметьте, что он не нормальный 15-летний, в то время ребенок был Sophomore в колледже... так что подумайте о детском Prodigy), и у вас есть рецепт чтобы привлечь внимание ваших детей.

Если многословие Java слишком много, чтобы удержать интерес вашего ребенка, попробуйте Python. Я думаю, что я помню, как я видел библиотеку для создания там 2-х игр....... Но по крайней мере она, возможно, может сделать намного лучше приключенческие игры, чем qbasic:)

Ответ 14

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

CodeInvaders @IBM

Ответ 15

Этот вопрос похож на https://stackoverflow.com/info/165905/how-and-when-do-you-teach-a-kid-to-code#165909.

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