Blockly 让代码学习更轻松

还没有读者喜欢这个。
Freer than free, opener than open: The fight for the learning management systems

Opensource.com

Blockly 是许多在线教程背后的引擎,这些教程用于向所有年龄段的人介绍编程。在本文中,我们采访了 Blockly 开发团队的 Neil Fraser,了解了该团队的观点和愿景。

Interview Q&A

我们在哪里见过 Blockly?

最近几个月,我们看到了大量旨在吸引所有年龄段的人参与计算机编程的活动。例如,编程一小时 组织了超过 7 万场活动,全球超过 9500 万人尝试过,从 小学生到国家元首

Code.org 提供了任何人都可以几分钟内尝试的 免费在线教程。那些尝试过其中任何一个教程的人,例如 Flappy Bird 是我的最爱,都会看到画布上有一些代码块,我们可以像乐高积木一样将它们拼接在一起。

创建这些可视化代码块的平台是 Blockly,这是一个开源库,主要由 Google 工程师开发,并得到了社区中 许多其他贡献者 的贡献,并托管在这个 Github 仓库 中。

[标题:Blockly 主页的屏幕截图]

Neil Fraser picture

Neil,请您介绍一下自己,Blockly 是如何开始的,以及您是如何参与到这个项目中的。

App Inventor 是 Google 的一个项目,允许新手程序员为 Android 手机创建应用程序。它使用了图形化编程,易于学习且有趣。不幸的是,用户界面是用 Java 编写的,这使得非技术用户安装和运行它成为一场噩梦。我以使用 JavaScript 构建棘手的东西而闻名,因此 App Inventor 团队请我帮忙。目标只是简单地将他们的用户界面移植到 JavaScript,以便它可以在浏览器中运行,从而消除用户安装任何东西的需求。

在项目进行了几个月后,App Inventor 被取消,项目的代码 转移到了 MIT。我相信我的新用户界面的潜力,并拒绝让它放弃。所以我采取了唯一可用的选择,并用完了我所有累积的假期。我每天都会来办公室并处理它。两个月后,我能够进行演示。我的经理们印象深刻,启动了 Blockly 项目,并追溯性地还给了我假期。这又一次证明了我为什么喜欢 Google。

这段历史的结果是,Blockly 不仅仅是一个项目的用户界面;它是一个可以放入任何项目的库。现在有数百个教育、企业和爱好项目正在使用 Blockly。

很高兴看到 Blockly 在计算机编程非正式教育中产生的巨大影响。Blockly 确实是一个教程构建工具包,它使网站更容易创建他们自己的 编程教程。您能否详细介绍一下 Blockly 社区与使用它构建教程的组织之间的相互作用?

Blockly 在我们的开发者新闻组中有一个非常活跃的社区。不断有 pull request 被提供,并且很多人互相帮助。偶尔我们会瞥见开发者们使用 Blockly 的意想不到的方向。当我们收到关于程序中超过 10,000 个代码块的性能问题的错误报告时,我们只能挠头,想知道他们在做什么。

但在大多数情况下,我们很少有机会看到其他开发者实际构建的东西。我通常是在新闻媒体上读到关于新的 Blockly 应用程序发布或美国总统使用了它。

Code.org 中的教程是针对初学者的,因此它们呈现了一个简化的界面。Blockly 可以做 更多的事情,包括类型检查、代码生成(用于 Javascript、Python、Dart 和其他语言)、代码编辑 和调试,正如您的 演示 中所示。您如何看待在完整的计算机编程课程中使用 Blockly?例如,在高中阶段,或大学编程入门课程中?

新程序员同时面临两场战斗:语法之战和逻辑之战。Blockly 消除了语法之战,在 Blockly 中不可能犯语法错误。学生可以完全专注于条件语句、循环、变量和其他核心概念背后的逻辑,而无需担心不平衡的括号或丢失的分号。

然而,我们认为,一旦理解了逻辑基础知识,学生就应该迁移到传统的基于文本的语言。Blockly Games 就是一个例子,它在每个关卡的末尾都会显示学生创建的生成代码。Blockly Games 还会在课程快结束时,引导学生从代码块转向基于文本的编程。我们不希望学生使用基于代码块的编程时间过长。没有人会因为他们有三年的 Blockly 经验而找到工作。

您的目标受众是广泛的国际受众。您能否详细介绍一下将 Blockly 翻译成 40 多种语言的努力,以及社区中的人们如何帮助进行这些工作?

世界上 94% 的非英语母语人士很难记住字母“R”、“E”、“P”、“E”、“A”、“T”按顺序排列会使某事发生多次。想象一下学习编码,同时不得不记住“كرر”或“عودة”。诚然,只有几十个单词需要记忆,但被迫这样做,再加上理解逻辑的战斗,就增加了一道额外的障碍。

将 Blockly 翻译成母语可以让人将语言障碍推迟到掌握编程概念之后。我们非常感谢人们通过提交翻译提供的帮助。令人惊叹的是,看到越南五年级的学生投入 Blockly 并开始自己摸索,而不需要老师的指导。

Blockly 中的许多设计决策似乎都是为了尽可能接触到最广泛的受众。例如,完全作为 Javascript 客户端运行(无需服务器),作为一个小型紧凑的库,支持平板电脑和触摸屏,并考虑到可访问性。与此同时,必须做出一些艰难的选择,例如放弃旧版本的浏览器,以便能够集中精力。做出这些决策的过程是什么?

大多数新学生对编程没有特别的兴趣。我们大约有 20 秒的时间来吸引他们,否则他们就会感到无聊,然后跑去玩电子游戏。每个进入门槛(安装 Java,或下载速度慢,或学习英语,或混乱的用户界面)都代表着受众的重大损失。我们依靠指标、用户研究和开发者社区的反馈来识别和消除这些障碍。

Blockly 被形容为入门毒品。它很容易尝试,它让人上瘾,并且它推动用户去做更难的事情。可能不是最讨人喜欢的比喻,但有些准确。

您对 Blockly 的未来有何愿景?开源社区如何提供帮助?

Google 将继续增强 Blockly 环境,添加新功能,例如用于多人项目的实时协作,或用于大型项目的 Google 地图式缩放,或用于盲人用户的键盘控制。但 Google 的贡献现在变得次要。Blockly 的未来已被外部开发者接管。他们是那些 fork 它、扩展它并在教育、家庭自动化、机器人技术和数据可视化中使用它的人。他们是将它翻译成 40 多种语言(包括克林贡语)的人。他们是将基于 Blockly 的应用程序送到世界各地学生手中的人。我对开发者社区所从事的工作感到无比自豪。

初学者入门
开源

关于如何开始参与开源的文章合集

标签
User profile image.
Luis Ibáñez 在芝加哥 Google Inc. 担任高级软件工程师。

4 条评论

当我刚开始学习编码时,我使用过 Google App Inventor 一段时间,我很喜欢它的简洁性。当我发现他们要放弃它时,我感到很失望,但我很高兴听到有人继续这项工作。我在使用 Max/MSP(另一种可视化编程语言)时学习了 OOP 的基础知识,App Inventor 对我来说是将这些知识桥接到基于文本的语言的好方法。

很棒的文章,Luis!我喜欢阅读这篇文章,并且看到许多学生在使用我现在知道是运行 Blockly 的网站。

这看起来很像 MIT 的 Scratch。谷歌看到适合复制 Scatch 而不注明出处,这相当令人失望。

感谢您指出与 Scratch 的相似之处。

这确实不是巧合。

可视化编程范式 [https://en.wikipedia.org/wiki/Visual_programming_language] 已经存在了几十年。自 20 世纪 80 年代中期以来,我们在计算机图形系统中使用可视化编程。例如 1985 年的 PICT 和 PROGRAPH,以及 1986 年的 BLOX。自 20 世纪 80 年代早期以来,我们在数据处理和电子领域也看到了 LabVIEW。

在 20 世纪 90 年代早期,我们有在 VAX 和 Sun Sparc 工作站上运行的 IDL,以及在 Silicon Graphics 机器上运行的 Open Inventor;以及 IBM 用于数据分析的 OpenDX。

在 20 世纪 90 年代中期,我们有用于数据处理的 SIMULINK (Matlab)。在教育领域,Alice 和 Etoys 在 20 世纪 90 年代后期提供了可视化代码块编程。

到 21 世纪初,我们还在 NXT LEGO Mindstorms 上为机器人技术提供了可视化代码块编程,并在 Blender 中为计算机图形提供了可视化代码块编程。

用于动画的角色精灵早在 20 世纪 80 年代早期就在 Vic 20 和 Commodore 64 中使用了。控制角色移动可以追溯到 20 世纪 60 年代后期的 Turtle Graphics 和 Logo 编程语言。

...诸如此类...

今天多种可视化编程界面之间外观的相似性,是我们从该领域 40 多年的探索中集体学到的有效经验的自然结果。

完整的归属链可能应该追溯到 1968 年 Douglas Engelbart 的“所有演示之母”。 [https://en.wikipedia.org/wiki/The_Mother_of_All_Demos]

这项练习强化了开源思维的一个原则

“我们建立在前人的基础上。”

这在视频系列中得到了精湛的展示

“万物皆是混音”
http://everythingisaremix.info/watch-the-series/

这可能就是为什么 Benjamin Franklin 和 Thomas Jefferson 热衷于让思想不受所有权限制地流动,以便它们能够进化、成熟并结出果实,造福所有人。

回复 ,作者:不是 Google 的产品 (未验证)

© . All rights reserved.