标签 Scratch 下的文章

EduBlocks 提供了 Scratch 式的图形界面来编写 Python 3 代码。

如果你正在寻找一种方法将你的学生(或你自己)从使用 Scratch 编程转移到学习 Python,我建议你了解一下 EduBlocks。它为 Python 3 编程带来了熟悉的拖放式图形用户界面(GUI)。

从 Scratch 过渡到 Python 的一个障碍是缺少拖放式 GUI,而正是这种拖放式 GUI 使得 Scratch 成为 K-12 学校的首选程序。EduBlocks 的拖放版的 Python 3 改变了这种范式。它的目的是“帮助教师在较早的时候向儿童介绍基于文本的编程语言,如 Python。”

EduBlocks 的硬件要求非常适中 —— 一个树莓派和一条互联网连接 —— 应该可以在许多教室中使用。

EduBlocks 是由来自英国的 14 岁 Python 开发人员 Joshua Lowe 开发的。我看到 Joshua 在 2018 年 5 月的 PyCon 2018 上展示了他的项目。

入门

安装 EduBlocks 很容易。该网站提供了清晰的安装说明,你可以在项目的 GitHub 仓库中找到详细的截图。

使用以下命令在 Raspberry Pi 命令行安装 EduBlocks:

curl -sSL get.edublocks.org | bash

在 EduBlocks 中编程

安装完成后,从桌面快捷方式或 Raspberry Pi 上的“编程”菜单启动 EduBlocks。

启动程序后,你可以使用 EduBlocks 的拖放界面开始创建 Python 3 代码。它的菜单有清晰的标签。你可以通过单击 Samples 菜单按钮使用示例代码。你还可以通过单击 Theme 为你的编程界面选择不同的配色方案。使用 Save 菜单,你可以保存你的作品,然后 Download 你的 Python 代码。单击 Run 来执行并测试你的代码。

你可以通过单击最右侧的 Blockly 按钮来查看代码。它让你在 ”Blockly” 界面和普通的 Python 代码视图之间切换(正如你在任何其他 Python 编辑器中看到的那样)。

EduBlocks 附带了一系列代码库,包括 EduPythonMinecraftSonic PiGPIO ZeroSense Hat

学习和支持

该项目维护了一个学习门户网站,其中包含教程和其他资源,可以轻松地 hack 树莓派版本的 Minecraft,编写 GPIOZero 和 Sonic Pi,并使用 Micro:bit 代码编辑器控制 LED。可以在 Twitter @edu\_blocks@allaboutcode 以及 email 提供对 EduBlocks 的支持。

为了更深入的了解,你可以在 GitHub 上访问 EduBlocks 的源代码。该程序在 GNU Affero Public License v3.0 下许可。EduBlocks 的创建者(项目负责人 Joshua Lowe 和开发人员 Chris DellLes Pounder)希望它成为一个社区项目,并邀请人们提出问题,提供反馈,以及提交 pull request 以向项目添加功能或修复。


via: https://opensource.com/article/18/8/edublocks

作者:Don Watkins 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

随着奥巴马总统的全民学习计算机(#CSforall)的倡议以及人们对 STEM ( 科学 Science 技术 Technology 工程 Engineering 数学 Mathematics )的日益关注,表明我们到了需要建立儿童计算机教育的标准和最佳实践的时候了。业内一致认为,可视化编程是教授给孩子们计算机科学和计算思想的最好方式,这样可以摆脱艰涩的编程语法,让孩子们在很小的时候就可以灵活地掌握软件编程的精髓。

改进中的 Logo 语言

在过去的五十年,设计师们不断改进 Seymour Papert 创造的 Logo 编程语言(LCTT 译注:应该有同学见过那个“小乌龟”),出现了一大批界面稍有不同而核心思想相同的编程语言。当前的教学标准是基于 模块 blocks 的编程方式,这要归功于 MIT 的 Scratch 编程语言的流行。在 CSTA 的 K-12 计算机科学教学标准中,对于 K-5 年级,要求达到“使用基于模块的可视编程语言来构建和测试解决方案”的编程能力。

越来越年轻化

计算机科学教育的另外一个趋势是受众越来越年轻。研究表明,才仅仅五岁的孩子就能够掌握计算机编程的概念,所以这是必然的趋势。要教还不认识字的孩子们学习编程,就需要避免使用文字。最近像 Scratch Jr 和 Code.org 的第一阶段课程就在基于模块的编程语言中使用图标替代了文字。

机器人编程

看见你的代码出现在生活中是一件神奇的事情。早在本世纪初,乐高和 MIT 就合作了一个项目,将基于模块的编程带到了现实世界。学生们可以在计算机上写程序,然后将其下载到他们搭建的机器人里。早期的 RIS( 机器人创造系统 robotics invention system )看起来十分像 Scratch。

乐高机器人 Lego Mindstorms 2013 版The 2013 中虽然变得更加复杂,但是其大部分所做的事情同之前的版本一样。现在可以给模块增加输入参数,以指定距离、时间、输出等等。

Martin Exner 创建了一幅简明的信息图,概括了由 Logo 以及更近一些的 Scratch 衍生而来的这些编程语言。许多 Logo 语言的衍生语言都是围绕着特定场景的,比如创建游戏、制作 3D 故事情节环境、绘制图片、机器人编程,甚至可以控制虚拟鱼缸。这种方式吸引了许多不同的孩子们,但是许多孩子在学习编写一段程序仍然感觉有些困难。

Logo 之上的编程思想

在现实生活中,计算机编程通常需要考虑各种类型的输入,并且同时还要动态处理各种逻辑判断。让我们举一个判断起床后要做什么的简单例子:如果是周六日,我们会去外面玩;如果是周一,我们需要穿上运动服;如果是周四,我们需要倒垃圾;而不是周末的日子,我们需要去上学。下面展示了用 Scratch 实现的逻辑。

除了这些基于模块的编程语言,还有一种新的语言采用了不同的方式来教孩子们编程。2015年,Wonder Workshop 设计一个名为 Wonder 的新编程语言,采用的是基于流的编程界面。Wonder 可以让学生们将注意力放在一些预先定义好的功能单元(或语句)的连接上,来构建一个 状态机 state machine 。在任何时刻,机器人都是一个单一的给定状态;它会做一些操作,给一些输入就会让它改为做不同的操作。

下图展示了如何使用基于流的方式来判断起床后的任务。

除了摆脱了线性编程范式,这种编程语言还提供了一种不同的计算思想,可以让学生们以一种容易掌握的方式来模拟响应现实中的变化。学生们可以更容易的把问题分解成小的部分,然后用这些部分来解决复杂的问题。学生们在解决问题时只需要一次关注一个问题。这个过程称之为分解,则既是计算机领域的基础知识,也是 Wonder 的设计目的。

在我们的每天的生活中有很多机器人和状态机的例子,而且它们变得越来越常见了。当你投入了正确组合的钱币之后,自动售货机就给你对应的食物。自动驾驶汽车会根据它周围的障碍物来决定该怎么移动。状态机也可以进一步对大量问题进行建模,包括语言解析、人工智能、通讯协议、游戏中的角色变化,甚至神经网络。

随着机器人应用的越来越广泛,教师们正在接受培训,把基于模块的编程作为教授孩子们计算机科学的标准。随着它进入到越来越多的课堂,我们应该思考这是否是一个正确的方向?还有没有其他更好教授孩子们计算机编程的方法。