今天的 Scratch 就像 80 年代的 Logo 一样用于教孩子们编程吗?

用小乌龟和小猫教你的孩子或学生学习编程。
481 位读者喜欢这篇文章。
open source button on keyboard

Opensource.com

技术总是能赋予日常词汇(尤其是在英语中)全新的含义。诸如网络病毒式传播文本苹果Java垃圾邮件服务器平板电脑之类的词汇,都是很好的例子,说明公众对一个词语含义的理解如何在相对较短的时间内发生变化。

因此,本文是关于一只乌龟和一只的故事,它们多年来改变了许多人的生活,包括我自己的。

80 年代的编程

当我还是个孩子的时候,我接触到了一种叫做 Logo 的编程语言。多年后,在大学里,我学习了这种语言强大的递归特性,但作为一个 9 岁的孩子,真正引起我兴趣的是小乌龟,它实际上是屏幕中间的一个小方块,用户可以告诉它做事情,比如“向前走 10 步,左转 45 度”,或者“向后走 1 步,右转 90 度”。

Logo 小乌龟最棒的地方是它携带了一支笔,你可以告诉小乌龟:落笔 (PENDOWN) 或抬笔 (PENUP)。当笔落下并且你告诉它走几步时,它会在屏幕上绘制。你可以告诉小乌龟 SETPENCOLOR 并更改笔的颜色。你也可以 HIDETURTLE 和 SHOWTURTLE,因为有时你会画出一些非常酷的东西,并且你希望小乌龟不会挡路。

从 Logo 到全职程序员

一旦我对小乌龟的移动感到满意,并且厌倦了绘制每一个动作,我的朋友和我被教导如何使用循环、条件语句、变量、函数和过程来“自动化”小乌龟。小乌龟还向我介绍了几何学和笛卡尔平面的基本概念,作为引导我的小乌龟在屏幕上移动的方式。

我最终从 Logo 升级到 BASIC,然后到 Pascal。在大学里,我使用了 C、C++、Java,甚至汇编语言。当我毕业时,我是一名全职 Web 程序员(PHP、Perl 等)。我已经有 10 多年没有做全职程序员了,但我仍然非常喜欢那只小乌龟。

不幸的是,由于过去二十年左右的所有技术进步,当我尝试向我的孩子们介绍我的朋友小乌龟时,他们并没有像 1980 年代的我那样印象深刻。所以,几年前我开始寻找替代方案。我想要一个宠物动物,它是程序的一部分,希望能激起我的孩子们对编程的兴趣。

这个解决方案以 Scratch 小猫的形式出现了!

儿童 Scratch

Scratch 是一种可视化编程语言,它在很大程度上与 Logo 的原始功能相似,但进行了更新。使用 Scratch,你不再是告诉小乌龟做什么,而是告诉一只猫。但是使用 Scratch,用户不再需要记住命令——图形界面不仅使所有命令都可用,而且还允许孩子们像拼图一样直观地构建代码块。

当 Scratch 开始与 Raspberry Pi 推荐的操作系统 Raspbian(又名 Pixel)捆绑在一起时,其受欢迎程度飙升,Raspbian 是基于 Debian 发行版的。事实上,本文中的图片全部来自在 Raspberry Pi 3 上运行的 Scratch 的屏幕截图。

Raspberry Pi 配备了 Scratch 的独立版本,它是该语言的 1.4 版本。2.0 版本 于 2013 年发布,并用 Adobe Flash 编写,这使得它可以通过浏览器(在线)和作为独立客户端播放。

Scratch 示例代码

Scratch sample code

Scratch 输出

Output of sample code

资源

以下是我为本文制作或使用的一些资源,我希望它们能帮助您让自己的孩子(或学生)开始进入迷人的编程世界。

Linux 上的 Logo 入门,第一部分,作者:Anderson Silva

Linux 上的 Logo 入门,第二部分,作者:Anderson Silva

使用 Raspberry Pi 简单控制 LED (一个 更高级的示例,使用 Scratch 和 Raspberry Pi 控制 LED)

Logo 在线版本,面向儿童和教师,提供课程和教程

Scratch 在线版本(V2,需要 Flash)

Code.org,另一个教孩子们如何编程的优秀网站,他们的编辑器主要基于 Scratch

标签
User profile image.
Anderson 在 1996 年由他的叔叔介绍接触了 Linux。在 2000 年代初期,他从一名开发人员转型为系统管理员。如今,Anderson 领导红帽信息安全事件响应团队。他还是 Fedora 软件包的积极维护者。

10 条评论

我用 Scratch 给孩子们上过几节课,他们非常喜欢它。那些觉得编程不如他们希望的那么有趣的人仍然觉得 Scratch 在艺术和故事讲述方面很有用。可悲的是,Scratch 2.0 版本需要 Adobe Air 才能进行本地安装(本地安装对于没有或互联网访问受限的学校通常很有用),但幸运的是,3.0 版本(至少根据 beta 版)将使用 javascript。

参考:https://wiki.scratch.mit.edu/wiki/Scratch_3.0

一篇很棒的文章。我在 1990 年代作为研究生学习了 Logo,然后教授了一门特殊的课程,旨在用 Logo 教小学生几何学。我教其他老师和学生如何使用 Logo,而他们反过来又帮助了其他人。我记得我们过去可以借用一个“小乌龟”,它通过串行电缆连接到 Apple II,那个小乌龟有一支笔,小学生程序员可以真正地在大型纸张上绘制他们的精灵。
和你一样,我真的很喜欢 Scratch,因为它为今天的学习者提供了相同的功能,我也很喜欢它与 Raspberry Pi 捆绑在一起。

我喜欢 Scratch 如何激励我的孩子学习和探索编程。在使用它几年并遇到基于浏览器的 Flash 的局限性之后,我会鼓励他转向更高级的东西。他会学习其他语言的基础知识,但他一直回到 Scratch,因为它既熟悉又容易完成他想做的事情。
昨晚,我们讨论了并发访问数据库(与 Minecraft 服务器插件相关),我正要解释竞争条件,但他反而向我描述了这个问题。我问他在哪里学到这么多。事实证明,他通过使用 Scratch 和云变量获得了第一手经验。通过使用多个浏览器登录到一个项目,他很快就了解了并发访问如何破坏数据。
我对 Scratch 为我 13 岁的孩子提供的编程基础印象深刻并表示感谢。

这太棒了!但我担心的是,从 Scratch 的可视化界面到代码的飞跃很大。几周前,我实际上写了一篇文章,反思 BASIC 对我的影响:https://hackernoon.com/basic-inspired-a-generation-of-technologists-wha…。我想知道在 Scratch 之后是否有东西可以帮助弥合这一差距?

此外,关于 Scratch 与 Raspberry Pi 捆绑销售的观点是最有说服力的。BASIC 和 Logo 能够成功的原因在于它们无处不在,因此非常容易获得。

我也考虑过同样的事情……如果我没记错的话,Scratch 文件是二进制的,如果可以将图形控制器移植到像 Logo 这样的基于 CLI 的语言,那就太酷了。也许它存在。我只是不知道。

回复 ,作者:johnjones4

实际上,这并没有你想象的那么大的飞跃,因为 Scratch 创建了一个坚实的基础,可以在此基础上构建更高级的代码。我发现,仅用 Scratch 编码两个学期的 10 岁孩子比没有 Scratch 经验的 16 岁孩子更容易转向 Processing 中的基于文本的编码。

Scratch 的美妙之处在于它提供了重要的词汇和概念,即使它有点简化。

回复 ,作者:johnjones4

我看到了类似的结果。小时候,我的儿子在使用 Scratch 之前,先使用了 Small BASIC(在 Nintendo DS 的 Petit Computer 上)几年。他从 BASIC 过渡到 Scratch 很轻松。由于他过去使用 BASIC 和 Scratch 的经验,他已经能够轻松掌握其他语言。

回复 ,作者:Cyanide Cupcake

感谢分享你的故事!

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.