注意:我正在寻找一个实际的应用程序,该应用程序将以有趣和互动的方式帮助他们教授循环,条件逻辑等。我是一名计算机工程师,并且知道Python,Ruby,Perl和C等其他语言,可以很好地教他们其中一种语言,但是我想教给他们更多有关概念的知识,而不是如何用编程语言X进行编码。 。
我已经找到但从未使用过以下任何软件包:
免费
徽标
从头开始
Alice
Hackety Hack
Livecode(免费和商业版),请参见Wikipedia
处理
Karel + xKarel
Turtle Academy
REBOL
商业
Microworlds EX
Arduino + Scratch的修改版
Lego Mindstorm
Stagecast Creator
基于网络的免费和商业版
Pluralsight-儿童免费课程
如您所见,Codecademy
有很多选择(这些是我在大约30分钟的搜索中找到的)。以下哪项最适合让我的孩子动手并有兴趣成为代码猴子?
要求:
应该教这些概念,而不是特定于语言的
必须是交互式的
可以接受商业或开源
应在Linux(最好是Ubuntu或Fedora)上运行
参考文献
为孩子们介绍编程的5种工具
#1 楼
我将推荐Scratch。 Scratch是一款免费程序,专门设计用于满足您的需求:以一种简单的方式教孩子编程的概念,而不必担心他们学习语法。Scratch是通过拖拽编程的,拖放界面。这些命令均按类型进行了颜色编码,并且其形状与Lego块一样可以对齐。这样一来,孩子们就可以很容易地弄清楚该去哪儿了。
启动Scratch时,您会得到一个简单的Sprite,可以编写代码以对该Sprite进行操作。这是一个非常简单的程序的示例:
控制命令为黄色,运动命令为蓝色,声音命令为紫色,运算符为绿色,变量为橙色。命令的形状告诉您它们的去向。事件位于顶部,而执行某些操作的命令则位于其下方。比较运算符和变量的形状经过特殊设计,因此很容易弄清楚该去哪儿。
即使像我在这里展示的那样一个简单的程序,孩子们也可以了解变量,事件,条件,比较,初始化等。我的孩子比官方的Scratch建议的8-16岁小一些,但即使他们也很有趣地重新排列命令并观看Sprite做不同的事情。
Scratch还具有一个在线社区,孩子们可以在这里共享他们的程序并下载他人编写的程序。
您的要求:
从头开始讲授概念,而无需教授语法。
它是交互式的。只要以有意义的方式将命令放到窗口中,它就会被激活。
这是免费的开放源代码。
它可以作为Web应用程序或Linux,Windows,或OSX。
#2 楼
Greenfoot,Scratch和Codecademy是不错的选择。这确实取决于您的学生的学业水平。它以一种简单的,基于块的方式教授基本的编程概念。它可用于相对简单地制作几乎任何类型的2d项目。尽管对于初学者来说,刮擦比代码简单,并且不那么令人恐惧,但它与实际编程也相距甚远,并且没有教授尽可能多的基本编程概念。例如,它不包括for循环,并且自定义块仅限于命令块(与数字/字符串和有条件(布尔)报告器相对。这种问题是由草稿团队希望使一切对于初学者来说简单的结果造成的。这可能很好,或者可能导致学生对带有手动计数变量的循环进行编程,直到得到纠正为止。尽管如此,Scratch仍然是年轻程序员编程的一个很好的切入点,特别是如果代码仍然让他们感到恐惧的话。 />greenfoot.com/overview:
Greenfoot使用Java教授面向对象的方法。创建“ actor”,将其放置在“世界”中以构建游戏,模拟游戏以及其他图形化程序
Greenfoot是可视的和交互式的。可视化和交互性
工具已内置到环境中。在标准的文本Java代码中提供了
传统编程经验的结合基于文本的整体语言
,可视化执行。
我建议Greenfoot用于不怕代码的较早的入门程序员。
Codecademy对于任何有兴趣学习那里提供的一种或多种语言的人都是有益的。以前的编程概念知识可能会帮助您更快地进步,但这不是必需的。只需仔细阅读每节课的分步指南,确保您理解它并完成任务即可。 Codecademy教他们很好的教学,但是结构化,更接近课堂教学。您必须按照他们说的方式编写每个脚本,这可能会有些无聊,但是您会逐渐了解该语言。这与“草稿”和“绿脚”相反,在这里您可以选择制作什么。
#3 楼
您也可以尝试Netlogo-它更多是一个建模环境,并且实际上非常先进。但是,简单的模型包含很少的GUI元素和很少的代码行。它是免费的,并且可能是开源的。需要Java。简单的模型可以用来向孩子们解释。 Netlogo将重点放在文档上。不利之处在于,教师本人必须是Netlogo的高级用户(为了避免使用更复杂的功能)。
另一个值得一看的例子是Racket(具体来说是Racket的“入门学生”方言)球拍)和随附的“如何设计程序HTDP”计划。约翰·卡马克(John Carmack)的儿子在2015年10岁时就为40级跳投式Fly in Racket编程,但约翰不喜欢HTDP的教材。
#4 楼
我会使用在现实生活中使用的工具,而不是为教学而创建的工具。为什么不将PyCharm用作IDE和一个非常简单的基本示例?我建议一个基本示例:
打印“ hello world” 100,000次。孩子们喜欢这个。有创造力的学生可能会将“ hello world”更改为“我的妹妹很烦人”。然后创建了一个基本的构建基块:它们很有趣。这给人的主观体验是很多事情发生了:-)
评论
一方面,Python非常简单,对孩子和小学生都有好处。鸭子打字对孩子有帮助。但是还有一个__init __(self),如果__name__ ==“ __ main__”和一堆很难解释的东西。
–托马斯·韦勒(Thomas Weller)
18年4月17日在14:58
@ThomasWeller-但是,即使有的话,您也不必在开始时就教那些功能。许多人将Python用作系统管理脚本语言,而不必使用这些功能。同样,您的论点几乎可以同样适用于每种编程语言。
–约翰Y
18年4月17日在22:14
我想知道的是为什么您要从import sys开始而不使用经典打印。我们在谈论初学者,对吗? (哎呀,我已经使用Python多年了,包括我的工作,而且我从未使用过sys.stdout.write。
–约翰Y
18年4月17日在22:16
@ThomasWeller是,如果__name__ ==“ __ main__”难以解释。但是孩子们比大人学得更好。在开始时,简单的“就像是”就足够了。
– Guettli
18年4月18日在9:10
@JohnY我使用sys.stdout.write()来避免换行符被print()发出。仅当您省略换行符时,才会出现精美的屏幕抖动。
– Guettli
18年4月18日在9:10
#5 楼
我想推荐python LOGO模组-turtle(是标准库的一部分,因此预先安装在大多数linux发行版中)。我认为它最适合年龄较大的孩子,但是(我认为)比起草稿之类的东西,它更令人满足,因为它是一种真正的编程语言。在学习了使用Turtle的编程基础知识之后,您自然可以继续使用python中的其他库(例如,用于Web开发的cherrypy)。
例如,以下是我知道的两个用于Turtle研讨会的教程:
http://opentechschool.github.io/python-beginners/zh-CN/index.html
https://codeclubprojects.org/python/turtle-race/
评论
这就是我的建议。临时Websie上的教程和示例非常出色,并且很好地展示了诸如循环之类的基础知识。
–游侠怪胎
2014年2月25日在16:19
Scratch无法在iPad上运行,因为它需要闪存。 HTML5版本显然正在开发中,但时间表似乎含糊不清。
–rossmcm
17年1月6日在22:57
我从没看过这个翻译。我的问题是,我所教的孩子可以阅读,但听不懂英语。
–托马斯·韦勒(Thomas Weller)
18年4月17日在14:54
@ThomasWeller Scratch的在线版本提供50种语言,包括德语。要切换语言,请打开您的Scratch项目,然后单击左上角的地球图标。
– Ben Miller-记住莫妮卡
18年4月17日在15:04
@rossmcm Scratch 3.0不使用Flash。
– Eric S
20 Dec 31'的15:41