好的,所以我已经阅读了关于教授初学者编程的各种帖子,并且我会更仔细地看一些有用的东西。但我想知道的是,是否有任何有效的工具专门教孩子 Java ?
我想特别教他Java,因为(a)我在CI的强大背景感觉太复杂了,(b)Java是我非常了解的另一种语言,因此我可以有意义地帮助而不需要自学新但是(对我来说)无用的语言,(c)我觉得托管语言是未来,最后(d)Java是我所熟知的所有语言中最简单的语言之一(除了基本语言)。
我在基础学习,并且我愿意首先教学,但我不知道Windows的一个像样的免费基本shell(虽然我没有真正搜索过,但因为它不是我的第一选择),无论如何希望快速进入Java。
我儿子8岁,所以比我开始早了几年 - 但他表达了一个 学习编程的兴趣(可能是因为我在家工作很多,他看到我一直在编程)。
如果没有人可以建议为此目的设计的工具,我可能会启动基于文本/控制台的应用程序来教授基础知识,然后进入GUI构建。
哦,最后一件事,我不是IDE(旧式文本编辑器类型)的粉丝,因此我不会被一个让他输入真实代码的系统推迟,而且可能更喜欢玩具拖放系统。
编辑:只是为了澄清;我真的特别想要教他Java的方法;已经有很多帖子对其他语言备选方案有很好的答案 - 但这不是我在这里寻找的。 p> 编辑:2D视频游戏的Java框架怎么样?任何人都可以从个人经验中推荐其中任何一个吗?我喜欢他的想法,从他的机制开始(主要游戏循环,得分等)并添加他自己想象的游戏的细节 - 这就是我做的,虽然对我来说这是一个基本的Commodore VIC-20和辛克莱ZX-81。
答案 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织物柔软剂一样
孩子们喜欢看到立竿见影的效果,喜欢玩较短的节目,比如一节课有一个方法潜水(int howDeep)。让我尝试用不同的参数多次调用这个方法...
图形编程是最有趣的,甚至可以向儿童解释像计算器,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,而是我的孩子的家庭学校的朋友,他正在使用
答案 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,竞争对于让他思考,甚至是父子竞赛都非常有用。
答案 14 :(得分:0)
此问题与https://stackoverflow.com/questions/165905/how-and-when-do-you-teach-a-kid-to-code#165909类似。
我的年长者也是8岁,我知道他有正确的编程大脑,但他需要时间。我认为你应该保持小的作业,但他们必须有早期的结果。否则他们会变得沮丧。