标签 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 附带了一系列代码库,包括 EduPython、Minecraft、Sonic Pi、GPIO Zero 和 Sense 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 Dell 和 Les 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 的设计目的。

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

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