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)捆绑在一起时,Scratch 的受欢迎程度飙升,Raspbian (Pixel) 是基于 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 版本需要 Adobe Air 才能进行本地安装(本地安装对于没有或严格限制互联网访问的学校通常很有用),但幸运的是,版本 3(至少根据 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

感谢分享你的故事!

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