什么是教我的儿子编程Java的好方法

时间:2008-11-01 19:13:54

标签: java

好的,所以我已经阅读了关于教授初学者编程的各种帖子,并且我会更仔细地看一些有用的东西。但我想知道的是,是否有任何有效的工具专门教孩子 Java

我想特别教他Java,因为(a)我在CI的强大背景感觉太复杂了,(b)Java是我非常了解的另一种语言,因此我可以有意义地帮助而不需要自学新但是(对我来说)无用的语言,(c)我觉得托管语言是未来,最后(d)Java是我所熟知的所有语言中最简单的语言之一(除了基本语言)。

我在基础学习,并且我愿意首先教学,但我不知道Windows的一个像样的免费基本shell(虽然我没有真正搜索过,但因为它不是我的第一选择),无论如何希望快速进入Java。

我儿子8岁,所以比我开始早了几年 - 但他表达了一个 学习编程的兴趣(可能是因为我在家工作很多,他看到我一直在编程)。

如果没有人可以建议为此目的设计的工具,我可能会启动基于文本/控制台的应用程序来教授基础知识,然后进入GUI构建。

哦,最后一件事,我不是IDE(旧式文本编辑器类型)的粉丝,因此我不会被一个让他输入真实代码的系统推迟,而且可能更喜欢玩具拖放系统。

编辑:只是为了澄清;我真的特别想要教他Java的方法;已经有很多帖子对其他语言备选方案有很好的答案 - 但这不是我在这里寻找的。 编辑:2D视频游戏的Java框架怎么样?任何人都可以从个人经验中推荐其中任何一个吗?我喜欢他的想法,从他的机制开始(主要游戏循环,得分等)并添加他自己想象的游戏的细节 - 这就是我做的,虽然对我来说这是一个基本的Commodore VIC-20和辛克莱ZX-81。

15 个答案:

答案 0 :(得分:28)

你可能会在这个项目中找到一些灵感:

Teaching Kids Programming: Even Younger Kids Can Learn Java

  

针对儿童,父母和祖父母的Java编程。

您可以在faratasystems web site(直接链接here

找到此处

在这个项目中学到的经验教训中,作者提到:

  • 大多数编程任务都需要很少的算术和代数技能知识。要开始编程,孩子需要了解x = y + 2的含义。要理解的另一个重要概念是if语句。

  • 孩子们在四五年级之前开发抽象推理能力,他们还可以轻松执行浏览网页,下载和安装软件等任务。 Dave已经学会了如何在Eclipse IDE中立即键入,编译和运行Java程序。

  • 孩子们比成年人学得更快,但他们没有“以前的编程经验”,这实际上可能是一件好事,因为他们不必从程序化转向面向对象的思维方式。在了解了遗产后,戴夫称我的妻子为超级班。

  • 成年人是负责任的生物,他们可以继续做孩子们的无聊操作。与孩子一起编程课程必须简短。每周一到两节45分钟的课程就足够了。高中的孩子应该能够学习更多,但我还没有这样的经历。

  • 插图帮助。在我的书中,我包含了许多类似卡通的彩色字符,就像Java织物柔软剂一样 Characters

  • 孩子们喜欢看到立竿见影的效果,喜欢玩较短的节目,比如一节课有一个方法潜水(int howDeep)。让我尝试用不同的参数多次调用这个方法...
    Methods

  • 图形编程是最有趣的,甚至可以向儿童解释像计算器,Tic-Tac-Toe或Ping Pong这样的相当大的程序。

答案 1 :(得分:14)

你有没有看过BlueJ?我知道你说你倾向于IDE,但它是专门用于教授Java的IDE。此外,它似乎有一些8岁的东西可能会发现很酷,就像类结构的图形表示一样。

答案 2 :(得分:11)

我认为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个月前在涉及2 13岁的公关活动中使用它。经过不到1天的刮擦,他们制作了自己的视频游戏:    http://aaue.dk/~av/personal.html(“该死的”游戏,他们称之为:>) 但它是用自己的(可视)编程语言编程的......

答案 3 :(得分:8)

让学习变得有趣,其余的都将随之而来! 令人惊讶的是,如果你尝试Kojo,Scala可能是最简单的语言 (Scala是更好的Java,当然你可以访问所有Java库)

答案 4 :(得分:5)

我知道它不是java,而是我的孩子的家庭学校的朋友,他正在使用

alice - teaching programming in 3d

答案 5 :(得分:3)

我知道你要求使用Java,但是我会想出一个基于Ruby的鞋:http://shoooes.net/http://hackety.org/press/

我相信它最初是作为教具编写的。

如果我小时候学习编程,这会让我感兴趣。

答案 6 :(得分:3)

我会尝试python因为
1)Python带有一个不错的REPL - Idle ..而不是编写长文件的代码,javacing然后javaing它..让你的表达评估你放入它的那一刻可能更适合8岁的注意力范围。 ..你仍然可以制作功能和模块和东西..但在更具互动性的环境中 2)python没有严格的输入,允许你用很少的语法来玩字典和可变大小的链表。那样......你可以先教他一些编程背后的重要思想并留下学习很多语法以后,当他已经非常介入这些东西时 看看http://openbookproject.net//thinkCSpy/

答案 7 :(得分:3)

我会选择计划。无论如何,看看这个网站,它有一些Java和教学资源:http://www.teach-scheme.org/

答案 8 :(得分:3)

Teching Kids to Code上有一个有趣的Google Tech Talk - 它涵盖了一个名为Greenfoot的软件,它是一个使用Java的入门编程工具。它使用拖放和其他与类交互的可视化方法。

答案 9 :(得分:3)

我不会用Java开始一个孩子。先教他一些概念清洁的东西。像LISP或Logo之类的东西。 Logo是一种令人惊讶的强大的编程语言,它是一个值得学习的东西,因为它开箱即用。

答案 10 :(得分:2)

找一些对他来说很有意思的项目,特别是如果你可以找到一种不涉及GUI的方法。我相信GUI有助于让人们感兴趣,但它们从根本上说很难 - 试图同时学习GUI框架和语言太多了,IMO。我喜欢控制台程序 - 一个简短的控制台程序就在你面前有所有,所以你可以轻松地理解相对的每一个字符。

例如,如果他对足球感兴趣,你可能会有一个带有结果的文本文件,并制作一个读取数据的项目,找出有多少分等的项目。

编辑:根据VonC关于“让我们尝试......”的观点来考虑另一件事 - 可能从像Groovy这样的交互式语言(非常像Java)开始,或者找到一些描述的“Java shell”让你的儿子通过立即执行来“探索”语言。

我会非常有兴趣看这个帖子 - 我真的想教我的孩子去编程 几年后,我想在此之前写一篇介绍性的C#书......

答案 11 :(得分:2)

我今天随机注意到Sun/Oracle has a page dedicated to young developers.我认为它可能是一个有用的参考页面。

它有BlueJ,Alice和Greenfoot(已经讨论过)的链接,以及其他一些资源。

答案 12 :(得分:1)

我建议Ian Cinnamon为“邪恶的天才编程视频游戏”。作者在撰写本书时已经15岁了.....无论如何,这本书相对容易理解,并教你如何使用Java做一些类似游戏的事情。因为说实话,大多数孩子都想制作视频游戏。回到我10岁左右的时候,我正在制作基于文本的冒险游戏的Visual Basic程序。这个制作视频游戏的梦想贯穿整个高中。无论如何,这本书在这方面展示了很多你可以用Java做的事情....没关系一个29岁的孩子会用一本15岁的口哨写的书。我买的时候才28岁......

无论如何,拥有如此多库的Java使得获取图形变得相当容易。 Qbasic有笨拙的图形,但它有相当简单的调用来打开和关闭像素和绘制线条,当我12或13时,我们很多人只会使用循环等QBasic中的图形做出奇怪的效果......虽然它是完全浪费时间,它进一步帮助加强了迭代,数组等的概念....

所以无论如何根据我的经验和我当时可以编程的朋友的经验,我会说孩子们喜欢钟声和口哨的图形效果,以及制作视频游戏。甚至文字游戏都很重要事实上,Java有很多库可以做很多事情并且从程序员的实现细节中解放出来,这意味着如果Java在我那么年轻的时候出现,我可能会一直在修补它。添加一本15岁的简单电子游戏用Java编写的书(注意他不是一个正常的15岁,那个孩子当时是大学的二年级学生......所以想想神童)并且你有一个食谱引起孩子们的兴趣。

如果Java的冗长程度过高,无法让孩子感兴趣,请尝试使用Python。我想我还记得在那里看到一个用于制作2D游戏的库.......但至少它可能比qbasic制作更好的文字冒险游戏:)

答案 13 :(得分:1)

一旦你的儿子开始你就可以尝试CodeInvaders,竞争对于让他思考,甚至​​是父子竞赛都非常有用。

CodeInvaders @ IBM

答案 14 :(得分:0)

此问题与https://stackoverflow.com/questions/165905/how-and-when-do-you-teach-a-kid-to-code#165909类似。

我的年长者也是8岁,我知道他有正确的编程大脑,但他需要时间。我认为你应该保持小的作业,但他们必须有早期的结果。否则他们会变得沮丧。