Firia Labs 通过真实世界的学习体验教授编程

今日头条

1134人已加入

描述

Firia 的主要目的是教孩子们使用真实世界的 Python 语言进行编程,而不是图形化的拖放方法。

很久以前,Max(我们尊敬的编辑)在 Firia Labs 上发表了一篇专栏文章,这家公司由 David Ewing 创立,他在 1981 年用一台 Sinclair ZX81 开始了他的计算机生活——巧合的是,我几乎在同一时间也有同样的小电脑(他只是把他的经历更进一步)。我从我的 ZX81 中学到了很多东西,但与 David 有相似的经历,Max 说,“许多书对于初学者来说水平太高,很快就感到沮丧。” 大卫告诉自己,“我要学习所有这些,然后有一天,我要写一本书,让像我这样的孩子比我现在要做的更容易学习这些东西!”

好吧,大约在过去一年左右,David 和他的妻子 Geri 实现了这个梦想并创办了Firia Labs,只不过它是一个网站,而不是一本书,而且 Firia 使用的不是 ZX81s,而是 BBC micro:bit(是的,没错,没有大写)。Firia 很友好地给我寄了一个 Explorer Kit,它已经在我的办公室里搁置了几个月(对不起,Firia!),但我终于找到时间开始掌握它了。

Firia 存在的主要理由是教孩子(任何年龄的……唷!)使用现实世界的 Python 语言编程,而不是图形拖放方法。我认为,Python 是近来相当流行和广泛使用的语言,尤其是由于 Raspberry Pi 的兴起。我在 Basic 方面做了很多工作,并涉足机器代码和汇编,但我什至不懂 C,而我的格言之一是,“拥有快乐的童年永远不会太晚。” 所以我可能是一个很好的人,可以为 Firia 的产品提供试驾。

Firia 寄给我的Explorer Kit包含两个 BBC micro:bit 板、两个 USB 引线、两个电池盒(带电池)、两个热敏电阻、光敏电阻和压电发声器,以及四个短鳄鱼夹引线。该公司还生产了一个更大的 Jump Start Kit,其数量是上述数量的五倍——即足够 10 名学生使用的硬件,这是有道理的,因为学校需要这些数量。

我对 BBC micro:bit 的最初反应是,“它太小了!” 我期待的是 Arduino 大小的东西,这大约是那个大小的一半,超过 1.5 × 2 英寸的阴影。我看到的照片缺乏很多关于真实尺寸的视觉线索。它具有通常的 USB Micro 插座、一个用于独立运行的电源插座、几个按钮、一个 5 × 5 LED 矩阵和一个边缘连接器,其中有五个连接(3 V、接地和三个端口)更宽且运动孔一个 4 毫米的香蕉插头可以插入其中(好主意)。我看过 LED 侧的各种颜色的绘画,但事实证明这只是随机的。Firia 的 micro:bit 加载了自己的软件,但它提供了非常清晰的说明,说明如何在必要时将其加载到您自己的 micro:bit 上。micro:bit 有一个 16-MHz Arm Cortex-M0 微控制器、256-KB 闪存、和 16 KB SRAM,以及 USB 和蓝牙通信以及一系列外围设备,其中一些在下面的板上进行了说明。它被吹捧为比 80 年代推出的原始 BBC 计算机小 75 倍和快 18 倍(只有 18 倍?),但它有一个全尺寸键盘,在前面提到的 Sinclair ZX80 之后我发现这个功能很受欢迎等人薄膜键盘。当然,在这里,我们使用的是您 PC 的键盘和屏幕。

Firia 在其网站上运行其 IDE,CodeSpace,因此无需下载和设置常驻 IDE。我将 micro:bit 插入 PC 的 USB 端口,它立即被识别并显示为我的电脑中的 USB 驱动器。单击 Firia 主页上的 CodeSpace 链接会显示一些关于将 micro:bit 链接到 Codespace 的简单说明。我跟着这些,来到了我的第一个障碍。Firia 说我看起来好像有一个 Windows 8.1 之前的版本(真的——我还在 Windows 7 上),然后通过一个链接,我了解到“不幸的是,Windows 7 或更早版本将无法运行。” 幸运的是,我有一台装有 Windows 10 的笔记本电脑,所以我再次尝试使用它。Firia 希望您使用 Google 登录,而我已经很长时间没有使用我的 Google 帐户并且忘记了密码。更新后,我插入了 micro:位并被识别,但它告诉我它需要更新。这需要下载一个文件(到下载文件夹),然后将它拖放到 micro:bit 驱动器。这既快速又简单,我可以继续做事。

感受爱

Codespace 提供一分为二的屏幕,左侧是 IDE 编辑器窗口,右侧是教程内容。

Firia 做的第一件事就是让你进入一个两行程序。我用不少于三个错误来解决这个问题(好吧,我使用的是我不熟悉的笔记本电脑键盘)!这些错误用简单的术语解释,很容易纠正。程序加载图像 Image.HEART,它在 5 × 5 LED 显示屏上显示了一颗心。正如 Max 喜欢指出的那样,“给我看一个闪烁的 LED,我会告诉你一个流口水的男人!” 我认为,对于注意力有限的孩子(比如我!)来说,这是一个不错的选择——让你的董事会真正做点事情的努力最少。它跟随不同的图像。您可以快速浏览教程屏幕,但我总是想在走路之前先跑步。教程屏幕上有各种蓝色文本项目,旁边有一个扳手,这些项目会打开一个包含更深入信息的弹出框,例如可用图像列表,如何构建和显示您自己的 5 × 5 LED 图像,以及如何显示图像序列。我尝试了这两种方法,但在尝试使用心脏和小心脏图像显示“跳动的心脏”时感到非常沮丧。显示了执行此操作的语法,但它仅列出了语法中的“图像”,并没有向您展示如何构建列表。幸运的是,帮助选项卡中有一个可用的命令参考,使用它,在几次错误的启动之后,我得到了我的心跳显示。我的一个批评是,在帮助框中,您无法复制任何内容,因此在您的程序中添加这样的一行:我尝试了这两种方法,但在尝试使用心脏和小心脏图像显示“跳动的心脏”时感到非常沮丧。显示了执行此操作的语法,但它仅列出了语法中的“图像”,并没有向您展示如何构建列表。幸运的是,帮助选项卡中有一个可用的命令参考,使用它,在几次错误的启动之后,我得到了我的心跳显示。我的一个批评是,在帮助框中,您无法复制任何内容,因此在您的程序中添加这样的一行:我尝试了这两种方法,但在尝试使用心脏和小心脏图像显示“跳动的心脏”时感到非常沮丧。显示了执行此操作的语法,但它仅列出了语法中的“图像”,并没有向您展示如何构建列表。幸运的是,帮助选项卡中有一个可用的命令参考,使用它,在几次错误的启动之后,我得到了我的心跳显示。我的一个批评是,在帮助框中,您无法复制任何内容,因此在您的程序中添加这样的一行:

display.show([Image.HEART_SMALL,Image.HEART], delay=400, wait=True, loop=True, clear=False)

您必须全部输入,而不是从帮助屏幕中复制至少一部分,这有点烦人。右侧面板中的课程文本和代码也是如此——它非常好,如果您想了解更多关于特定内容的链接,可以点击很多链接,但您不能复制和粘贴任何内容。显示帮助框还列出了 display.scroll 命令的语法,通过它我得到了第一次运行的滚动文本显示(“Hello World”,还有什么?!)。掌握一个新的 IDE(或任何程序,就此而言)总是一个陡峭的学习曲线,无论它多么直观,教程材料多么好。100 个不同的人会提出 100 个不同的问题,而你不可能随时获得所有答案。但是 Codespace 做得很好,很快就可以找到您需要的信息。它还可以很好地指出您的错误。最初,一些错误消息似乎有点神秘,但同样,您很快就会对它们试图告诉您的内容有所了解,并且它们更有意义,可以帮助您找到摆脱困境的出路。

后来,我在课上进步了,一个早期的话题是,如果你输入一个程序显示A,然后显示B,然后显示C,你就看不到A和B,只有C,因为计算机可以工作比你的眼睛快得多。因此,您可以使用单步按钮使其逐步运行以显示它正在显示中间步骤。除了我无法让我的单步按钮工作。我已经为此提供了支持票,并将报告解决的情况和速度。(我后来在课程中看到一个关于“步骤”按钮只能在完整的许可版本中访问的小注释 - 更多内容如下。)但是,当然,它会教你 sleep() 函数来延迟所以你可以看到每一步:

display.show(“3”)

sleep(1000)

display.show(“2”)

sleep(1000)

display.show(“1”)

像往常一样(将其与上面较长的 display.show 命令进行比较),在大多数语言中总是有不止一种方法可以做某事。但我很快就对 Python 语法和格式有了“感觉”,这当然是本意。

通过条件分支、如何显示各种值(数字、字符串等)以及进行基本数学运算和显示结果,课程以相当令人满意的速度进行。一个小烦恼是,在一些课程结束时,您会被问到一个问题(“有 3 秒倒计时(3、2、1)吗?”),并且会出现一个是或否按钮以获取反馈。我的麻烦是我会继续尝试程序中的其他东西,通常是课程中没有直接出现的东西,并且正在教授的功能将不再存在。所以如果我点击“是”,我会被告知要修复错误,它会指出我没有使用正确的功能。我对此有两种看法。一方面,Codespace在编码环境和课程之间有如此良好的互动是值得称道的。但是,如果我点击“是,” 这意味着我已经得到它,无需修复。(我一直是个不守规矩的学生。)幸运的是,在课程面板中,有前进和后退按钮,因此您可以在烦人的时候绕过这些问题。

在这个阶段,我遇到了一个问题:我的课程的免费部分结束了。因为我可以访问这些课程,所以我假设我安装了许可证,但事实并非如此。如上所述,我在周六晚上向 Firia 发送了关于单步问题的支持请求,我很惊讶地在周日早上收到 Geri Ewing 的回复,告诉我这也是因为我没有许可证(如果我打扰了,我可以自己阅读!)。Geri 没有将两个和两个放在一起并识别出我的电子邮件地址,所以这是不请自来的标准服务,我完全印象深刻。后来我收到了 David 的回复,其中包含许可证密钥。这有一些问题,因为许可证密钥是在 Firia 向我发送套件时生成的(许可证包含在价格中)并且是较旧的类型,但那是我在套件上坐了这么久的错!如果 Firia 的服务对每个人都这么好,我相信它有很多满意的客户。无论如何,这似乎是一个暂时停下来的好地方。

我喜欢:

  • 教训。它们很容易理解,我学到了很多东西,而且如果你愿意的话,总有足够的资源可以深入研究。Firia 的教师资源也很棒,有手册、课程计划等。我可以理解为什么 Firia 作为教学资源有一个很好的名字。
  • 代码空间布局。在一个屏幕上同时使用课程和代码窗口,您永远不必交换窗口,如果您出错了,错误消息会很好。
  • 支撑。极好的!

我不喜欢(但实际上这些都是次要的抱怨):

  • 缺乏对 Windows <8 的支持。但这有充分的理由,我在这里有点像卢德分子。
  • 当我让它工作并继续尝试其他命令或语法时,被告知要修复一些东西。好吧,如果你得到否定的答案,就这样做,但要相信学生,当他说“是”时,他就明白了。
  • 无法在课程和帮助屏幕中复制和粘贴——要么是为了节省编码时间,要么是为了制作我自己喜欢做的​​个性化文档。

一旦我深入研究课程,我将进一步报告。micro.bit 提供蓝牙通信,因此应该可以将其中一个用作远程温度传感器,并让它与另一个进行通信以制作内部/外部温度计或类似的东西。

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分