Suitable environment for a 7 year old
我7岁的时候想学,怎么编程?(他的想法不是我的,他在外面做事情。所以,从这个角度来说,我并不太担心。他已经把一本游戏编程书从我办公室拿出来睡觉的时候看了。)前几天,我们坐下来,写了一个非常简单的数字猜谜游戏(你选了8,它是对的,其他的都是错的)。
虽然没问题,但他根据语言的语法提出了许多问题。(我碰巧选择了Java,就像当时我开的IDE)。我教过中级的入门编程课程,所以这对我来说有点让人大开眼界(大多数高中毕业的学生都不愿意问问题),因为我真的必须弄清楚,如何解释一个7岁的学生的语法。
显然,任何C类型的语言都会有同样的问题,大多数"语言"也是如此。我看了看"吱吱"声,但决定不使用它。我看了爱丽丝的环境,但也不喜欢这样。
从物理角度看,他对键盘/鼠标很满意,可以相对轻松地将乐高玩具组合在一起(因此,遵循有趣结果的指导对他来说是可行的)。我有权访问乐高NXT,但他仍然有点年轻(即使在提供的图形环境中,也要花很长时间才能看到工作结果)。
理想情况下,我希望有经验帮助他建立对数学和逻辑的信心(如果一个7岁的孩子有逻辑-)。
我记得小时候用乌龟图案/标志。我倾向于这一点,但想知道是否还有其他想法,或者是否有人可以推荐一个好的标志环境?
编辑1:
商标效果很好。我需要教他角度的概念(90度,180度)。不幸的是,他们还没有真正在学校做除法,所以角度可能很有趣…
首先画一个正方形:
1 2 3 4 5 6 7 8 | FORWARD 50 RIGHT 90 FORWARD 50 RIGHT 90 FORWARD 50 RIGHT 90 FORWARD 50 RIGHT 90 |
稍后,我将进入循环:
1 2 3 4 5 | REPEAT 4 [ FORWARD 50 RIGHT 90 ] |
然后是变量:
1 2 3 4 5 6 7 | make"length 50 REPEAT 4 [ FORWARD :length RIGHT 90 ] |
这个办法很有效。几乎没有语法,很容易让7岁的孩子记住词汇,并立即反馈。
编辑2:
他写了一个简单的程序(还没有循环),而我则在房间外。实际上效果很好,我们出去画了一张相纸和一个量角器,我们画了90度角,他画了一堆正方形,把一个正方形变成了一个矩形,然后看他哪里出错了,怎么调试。我将向任何对编程感兴趣的7岁儿童推荐这种方法。我想我也会把它推荐给我的中学生!!)
我强烈反对那些说7岁的孩子很难学习新语法的人。这完全是倒退。试着教一个七岁的孩子和一个三十岁左右的非英语母语者用拉丁语。或者和你的孩子一起去国外旅行。看看谁能在一个月后和当地人流利地交谈(提示:可能不是你)。
孩子们比我们白发更快地学会了任意的语言习惯。
实际上,在JavaScript中有一个基于浏览器的徽标解释器。
http://logo.twentygotten.org网站/
我在10岁的时候就学会了如何按照你教你儿子的方式编程。我父亲使用了我们AT&T PC6300附带的gw basic解释器,我们编写了一个游戏,电脑问你一个问题,你必须回答A/B/C。gw basic语法的最大优势是你没有多行语句。你可能想试试类似的东西。Java,有它的大括号,可能有点困难。
示例代码:
1 2 3 4 5 6 | 10 PRINT"What color is Big Bird?" 20 PRINT"A. Blue" 30 PRINT"B. Green" 40 PRINT"C. Yellow" 50 INPUT$ ANSWER$ 60 IF ANSWER$ ="C" THEN PRINT"Good Job!" ELSE PRINT"Oops, wrong answer!" |
我花了好几个小时使用这种语法的各种排列,并编写自己的"游戏"。这让我想了解更多…可能会有所帮助。
告诉他关于解析器的事。你只需要为事物存在的原因添加上下文和推理。大括号使读取代码的机器知道事情从哪里开始和停止。
我发现,大多数人,包括孩子,只要你能解释他们的目的,就很容易地拿起东西。这就是为什么学校对我来说是一个可怕的失败,没有人解释过学习一半东西的意义。
刮痕是另一个。在麻省理工学院专门为向儿童教授编程而开发。
我认为Python可能适合你的需要。众所周知,它比许多其他语言更容易学习,而且交互式解释器允许程序员在执行一段代码时立即看到发生了什么。随附的空闲GUI易于使用。它也有一个龟模块通过tkinter。
https://docs.python.org/library/turtle.html网站
在发展上,一个7岁的孩子不太可能掌握语法的基本知识,即使是在他们的口语中。
无论您使用什么语言或环境,我都建议您关注编程作为游戏的思想,而不是编写实际程序的能力。为了达到这个目的,您可以从命令行运行一些可以立即看到结果的东西,比如python,或者为了更图形化的体验,Silverlight,可能是最好的选择。
微软做了一些有趣的工作,看起来很适合:
Popfly:http://msdn.microsoft.com/en-us/devlabs/cc950523.aspx--"Popfly提供了一种简单的方法,可以创建游戏并与朋友共享游戏。从各种内置模板中进行选择,或者从头开始创建一个侧滚游戏、一个二维射击游戏或其他游戏。最重要的是,你不需要写一行代码就可以开始。我认为这真的有助于被激励:)
- smallbasic:http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx---本应简化,但支持intellisense+.net框架(简短描述过于市场化,因此我没有粘贴它:p)
尝试小的基本语言,它有一个小的基本语言和简化为年轻的人群。
逃离爪哇!尝试一些为教学而设计的东西,比如刮痕、徽标或PLT方案。
我想到了两个想法:
- 我3岁的儿子喜欢和我玩"咕噜"的游戏。他还不能解决问题,但我可以看出他正在吸收大量的信息。
- 和爱丽丝一起去吧。我儿子太小了,不想尝试这个,但一旦他长大了,如果他愿意,我们会试试的。在看了兰迪·鲍什(R.I.P.)的最后一节课之后,我了解了这个节目。
为什么不回到Qbasic的时代?这是我学的第一门语言(实际上是吉布达·伟士基础语言,但这不是重点)。
这种句法更容易让人浮想联翩(尽管易变,有时甚至令人沮丧)。它不教任何东西,但这可能是他的头以上无论如何,因为它本来是我的。
此网站也可能感兴趣。
我会说使用VisualBasic,或者类似的东西,这样你就不必太担心语法、大括号等了。我7岁的时候在编程,但它是在logo和C64basic中。我讨厌商标…我很沮丧,你能做的一件大事就是绕着一只蠢乌龟转。然而,C64基本(对我来说)是伟大的…有一次,当我把它记下来(几年)时,我很想学习C,甚至C64汇编程序。
让他看看http://scratch.mit.edu。我七岁的孩子在打字的时候就学会了…
我参加了一个初级计算机课程,使用StageCast。这是一种为儿童设计的图形编程语言。我发现它是一种理想的入门语言,因为它是图形化和交互式的。它不需要阅读或数学,它运行在Windows和Mac OS上,非常适合简单的游戏,所以孩子们有学习的动力。
Etoys也许是你要找的东西。这是专为孩子们制作的一种小规模谈话的部分图形化风格。这是由OLPC项目使用的。
我对艾丽丝有点恼火。
一方面,有一个框架可以让你用直接的视觉满足来编程是很好的。这真是个好主意。
另一方面,我认为让初学者只通过拖放来进行编程是一个非常糟糕的主意。我担心这可能会导致一种文盲,当拖放界面被删除时,他们无法生成正确编写的代码。
就我个人而言,我认为算术运算和布尔逻辑的基础对于先教给孩子更重要。在他们掌握了这些概念之后,我认为继续进行基本构造是合适的。我只是不明白一个孩子怎么能理解条件和循环而不需要布尔逻辑,但是,还有一些非常聪明的孩子。)
假设前面的声明得到满足,我将不得不投Python的票。
虽然看起来它正在被重新设计,但是你仍然可以得到hackty hack的旧版本,它是一个Ruby编程工具包,由"为什么"为青少年和初学者设计。
我和6岁的格林福特玩得很开心(http://www.greenfoot.org/)。它是以对象为中心的,视觉/图形化的,在我的孩子身上点击很好。
有一本书叫做"从语用学学习编程",它面向的是以前从未编程过的人,可能不是非常技术性的人。
它使用的是红宝石,这对新手来说很容易学会。
scueak smalltalk系统是smalltalk的一个实现,在教育儿童编程方面,我听过很多关于它的好听的内容。据推测,etoys项目包含大量资源,以保持学习体验的乐趣和动力。
当我在高中被介绍到图灵语言时,我开始对编程感兴趣。图灵在当时被许多学校用作教学语言,它对我来说很好地引入了编程概念。这是维基百科对图灵的描述
图灵是1982年由加拿大多伦多大学的RicHolt和JamesCordy开发的一种类似帕斯卡的编程语言。图灵是欧几里得、帕斯卡和sp/k的后代,具有清晰的语法和精确的独立于机器的语义。
图灵以英国计算机科学家阿兰·图灵的名字命名,主要用于高中和大学一级的教学语言。另外还有两个版本,面向对象的图灵和图灵PLUS,一种系统编程变体。2001年9月,"面向对象图灵"被重命名为"图灵",而原来的图灵被重命名为"经典图灵"。图灵可从多伦多的霍尔特软件公司获得。
提供Microsoft Windows、Linux和Apple Macintosh的版本。图灵在安大略省的高中中仍然被广泛用作编程的入门。
2007年11月,图灵,以前是一种商业化的编程语言,变成了免费软件。截至2007年11月28日,可从霍尔特软件网站免费下载,用于个人、商业和教育用途。1
你也可以使用Commodore64模拟器。从基础开始。
我本可以在众多的街机游戏引擎中找到一个,让他玩。选择一个他需要使用循环和条件的地方,也许还有一些过程。
不如扔掉乐高?头脑风暴?作为一种可能性。它使用基于labview的图形编程语言。
我今天早些时候读了这篇文章,然后偶然来到yup.com发现
教孩子们用黑客攻击(程序)
我想我会把它作为一个额外的资源发布给任何关注这个问题的人。
我最近用一个指向开源和跨平台软件kidbasic的指针回答了一个类似的so问题。
在简洁性方面,该方案很好,在语法上与logo相似。此外,该方案还提供了一种非常直观的方式来理解递归,并在计算机科学中提取这些类型的基本概念,这些概念在早期只是很好的,但在更多方面是好的。
UCB方案还提供了许多内置的功能来处理句子,这对一个7岁的孩子来说可能比构建多边形和解决数字难题更有意义(不要说天空是极限!).
我上二年级的时候,正在打《基本乐趣》一书中的程序。
我清楚地记得,无限循环和输入A$的概念就像发现引力一样。令人毛骨悚然的东西
自学成才,我的进步非常缓慢,尽管我在一个程序中达到了一个点,我希望GoSub采用可变参数,回想起来,这意味着我理解函数指针。
我早期的目标包括写长程序。对于一个7岁的孩子来说,一个冗长的计划并不是一个坏的目标,因为一个有明确规范的计划会使失败的风险太高。任何人都可以写一个很长的程序,感觉很好,并且在这一过程中学到很多东西。
从80年代开始,有一整套基本的编程书籍供各种类型的人阅读,这是编程思想的一个很好的来源。不过,即使是7岁的孩子,我也不推荐使用basic——Lua有一种简单的basic感觉,但它并不是一个坏东西。
再进一步看,实际上有一个完整的学习平台/OS是为这个目的而设计的:sugar。
名为sugar的OLPC(每个孩子一台笔记本电脑)操作系统现在可供一般公众使用,您可以在所有主要操作系统(如Mac、Windows和Linux)中以虚拟机的形式运行它。
在糖实验室下载一份。
其中一项有趣的活动被称为"高领衫",是21世纪标志的升级版。还有一个儿童友好版的python ide,叫做pippy。它实际上教孩子们Python!
见高领毛衣和皮皮皮以及其他在糖中发现的活动。
阿兰·凯是《甜心OS》中一些小说概念的幕后黑手,这实际上是他那富有远见的《DynaBook》的现代化身。即使是一个成年人(工程师),我也觉得和他一起玩很有趣。
如果你喜欢糖作为一个虚拟机,你甚至可以购买硬件,同时帮助世界上其他地方的一个穷孩子。
Engadget解释说:OLPC XO买一个,给一个正在进行的程序
作为对美国成年人的一种奖励,糖来自于软呢帽。所以它是一个真正完整的基于Linux的操作系统。应该是有趣的黑客。;-)