教孩子编程的 6 个技巧

还没有读者喜欢这个。
Girl reaching out to the stars

Opensource.com

编程是一项创造性的活动,任何孩子都可以参与。 您的孩子可能不在乎编写数据处理算法,但他们可能会喜欢创建游戏、编写音乐程序、设计网站或只是玩代码。

我写了几本书来教所有年龄段的初学者如何编码,而且我从经验中得知,你不需要认为自己是技术人员或“擅长数学”才能学习。 事实上,孩子们通常比成年人更快地学会编程,正是因为他们不知道编码应该有多“困难”。

如果您不知道如何编码,但想学习如何教您的孩子,请查看我最新的面向初学者的 Python 书籍,使用 Python 自动化无聊的东西,您可以在线免费阅读。

无论您是软件开发人员还是没有编程背景,以下六个技巧可以帮助您的孩子开始编程

1. 年幼的孩子使用 Scratch,年长的孩子使用 Python。

MIT 的 Scratch 是一款专为儿童设计的免费编程工具,可在任何现代 Web 浏览器中运行。 任何人都可以通过 https://scratch.mit.edu 运行它。 其视觉风格受到 Logo 程序的影响,Logo 程序是 80 年代和 90 年代儿童编程课程的主要内容。 但 Scratch 远不止是又一个 Logo 仿制品。

8 至 13 岁的孩子将受益于 Scratch 简单的图形界面。 Scratch 的拖放代码块可以组合在一起。 没有计算意义的代码片段不会组合在一起,从而使语法错误实际上是不可能的。 Scratch 非常适合尚未掌握打字技能的年幼孩子。

当然,尝试制作更复杂的程序的孩子最终会遇到 Scratch 的瓶颈。 对于青少年和准青少年来说,像 Python 这样的现实编程语言更合适。 Python 是一种极好的第一门编程语言,因为它具有简单的语法(不像 Java 或 C# 等语言),生成可读的代码(不像 Perl 或 JavaScript),并且背后有一个庞大而友好的 社区的开发者支持。 如果您的孩子已经厌倦了 Scratch,那么 Python 是最好的下一步。

2. 展示实际程序的源代码。 不要只是和他们谈论概念。

尽管编程具有 интеллектуальный 名声,但它是一项需要实践的实践技能,而不仅仅是读书。 Python 的交互式 shell 鼓励实验以找出指令的作用。

如果您直接辅导您的孩子,那么编写代码比仅仅谈论概念更有帮助。 即使在学习了变量、循环和函数之后,坐在空白编辑器前并开始一个新程序仍然令人望而却步。 与他们坐在一起,一行一行地描述他们应该编写的代码。

或者,如果您使用在线资源与您的孩子分享,请寻找小型游戏的源代码。 代码少于几百行的程序效果最好。

Scratch 网站会自动分享其网站上所有项目的源代码。 鼓励您的孩子修改代码并查看它们如何更改最终程序。

3. 游戏是有趣的编程项目。

编程电子游戏是许多年轻程序员的常见起点。 愤怒的小鸟、我的世界、像素鸟、玩具熊的五夜后宫和其他游戏是灵感的主要来源。 我写了一本免费的书,用 Python 编写你自己的电脑游戏,它通过几个简单游戏项目(井字游戏、猜单词游戏等)的完整源代码演示了编码概念。

请注意,您的孩子喜欢的游戏在他们刚开始学习时可能不是很好的编程项目。 许多游戏需要开发人员、艺术家和设计师团队共同完成。 需要大量关卡设计和艺术作品的游戏可能会让初学者感到不知所措。 完成一个简单的游戏比开始一个永远无法完成的大型项目更令人满意。

请参阅我的 49 个具有简单游戏机制的小游戏列表,以获取练习想法。

即使游戏很有趣,我通常不建议使用专门的“游戏创作”或“游戏制作”软件。 与 Scratch 一样,这些应用程序通常尝试呈现简化的编程环境。 但与 Scratch 不同的是,它们往往会淡化编程方面。 使用它们进行编程往往更像是配置预先存在的软件。

4. 不要碰键盘和鼠标。

分享知识令人兴奋。 向他人展示您所了解的编程知识很棒。 但是编码是一项通过实践学习的技能,因此让孩子们自己动手。 与孩子们一起工作时,避免跳进去在键盘上打字,即使是暂时的。 如果他们必须单击菜单或按钮,请用手指指向屏幕,而不是自己拿起鼠标并单击它。 无论何时需要键入代码,都让他们键入。 如果您自己做,可能会更快,但您的学生比您更需要练习。

5. 如果教课,给每个孩子自己的电脑。

如果您要教授一个小组,请尝试给每个学生自己的电脑。 就像演奏乐器一样,编程是一项通过实践而不是观看他人学习的技能。

Raspberry Pi 是一种便宜的裸机 PC,一个入门套件大约需要 70 美元。 虽然添加新的键盘、鼠标和显示器会使总价与廉价笔记本电脑相当。 避免使用 Chromebook、iPad 和平板电脑,因为;在它们上运行 Python 很难。

如果您需要在预算有限的情况下为课后俱乐部建立一个计算机实验室,Raspberry Pi 将允许您使用备用键盘和显示器。 (请参阅 Raspberry Pi 基金会网站Ben Nuttall 在 Opensource.com 上每月发表的 Raspberry Pi 专栏以获取免费资源。) 否则,我建议使用廉价笔记本电脑方法,尤其是如果您没有专门的空间并且需要在下课后存放电脑。 笔记本电脑需要处理的电缆更少,并且更容易存放。

如果无法使用个人电脑,孩子们可以配对并轮流使用。 记住技巧 4:从一开始就教他们要求他们的伙伴提供键盘和鼠标,而不是直接抢走它们。

有些孩子可能会自负且渴望控制机器,而不那么自信的孩子会很乐意让他们控制。 让一个孩子成为 A,另一个孩子成为 B。 在课程的某些时候,明确告诉小组换座位,以便 A(或 B)同样在键盘和鼠标前。

6. 跳过计算机科学。

如果您是软件开发人员,您可能会渴望分享您的技术奥秘。 解释递归洪水填充算法或练习来自 Project Euler 的问题(对于那些想要磨练编码技能的人来说,这是一个很棒的练习问题网站)非常有趣。 被扔到深水区对学习者来说不是那么有趣。 您可能想在开始时推迟的一些主题

  • 面向对象编程
  • 递归
  • 设计模式
  • 除了列表/数组和字典/哈希映射之外的数据结构(链表、二叉树等)
  • 网络协议(超出简单的 HTTP 请求)
  • SQL 数据库或其他特定领域语言

一个好的经验法则:如果它是 Google 面试中会出现的那种问题,那么跳过它可能会更好。 在开始时,涵盖广泛的主题比深入技术细节更好。 让您的孩子找到自己的激情。 一旦您的孩子体验了编程世界所提供的一切,他们就会很高兴探索他们喜欢的部分。

User profile image.
Al Sweigart 是一位旧金山的软件开发人员和技术图书作者。 他撰写了几本 Python 书籍,这些书籍可在 https://inventwithpython.com 上以知识共享许可协议提供

8 条评论

在 20 世纪 80 年代初,辛克莱向英国大众推出了 ZX81 和 ZX Spectrum(我认为美国是 Timex)。 我们过去常常花几个小时从杂志上输入 BASIC 代码列表,用于游戏和实用程序。 我确信这帮助我掌握了代码,因为我可以看到并理解代码将如何工作。 我想知道是否有人尝试过用今天的孩子们做这件事,而不是仅仅下载?

即使使用计算机超过 20 年,当我自己输入所有代码时,我也会学习和保留更多,即使我只是从教程中复制。 所以是的,我肯定会和我的孩子们一起尝试的。 迫不及待地等到我的儿子学会阅读……

问候,eMBee。

(这是一个意见声明,虽然 CC-BY-SA 允许您对其进行更改,但如果您实际这样做,它就不再是我的意见,因此您可能不会将我的名字与它联系起来,否则只需将该许可视为 CC-BY-SA-ND)

回复 作者:Steve Nice

这是一个很棒的建议,Al。 编程对于年轻人来说可能是一个非常有趣的爱好,对于一些年轻人来说,它可能是通往有益职业的道路。 我鼓励大家看看他们的镇上是否有 CoderDojo 青少年编程俱乐部。 如果没有,找几个人开始一个。 您还可以向您当地的公共图书馆、童子军团体、创客空间或其他公民组织寻求帮助,以帮助启动 CoderDojo。

要查找您附近的 CoderDojo,请在网上搜索“CoderDojo”和您所在的城镇名称。

这些俱乐部由志愿者运营,了解这一点很有用。我发现它们对所有年轻人,无论是否有编程经验,都具有很强的包容性。在一些 CoderDojo 会议上,年轻人学习与编程相关的技能,例如摆弄计算机内部结构、制作屏幕录像、构建网站、焊接等。

编程还可以激发年轻人对奇迹的感受,这非常好,因为智慧始于奇迹。(苏格拉底)。

很棒的文章。我同意。年轻的学生非常喜欢 Scratch。今年一月和二月,我曾在当地公共图书馆与一群小学生一起工作,他们非常喜欢使用 Scratch,并且在每节课前后,我都会给他们机会分享他们所学或编程的内容。他们非常喜欢。我从未教过 Python,而且我还在学习如何使用它。我喜欢你的建议。我喜欢教学生和成年人构建网站和自定义 HTML 和 CSS 是多么容易。

我完全同意我的同伴版主们的观点,这对父母/导师和孩子们来说都是很好的建议。事实上,我报名参加了下周的 CoderDojo,看看我的儿子是否喜欢所有这些技术和编程。他已经在家里尝试过几次 Scratch,并且很喜欢它。

或者让他们观看这个孩子程序员的现场编码 http://money.cnn.com/2015/05/05/technology/11-year-old-coder-live-stream/

我还建议将 HackerRank (https://www.hackerrank.com/) 作为 Project Euler 的绝佳替代品。

这些“任务”根据“任务”的主题分为不同的类别。您可以使用多种编程语言,并使用您最喜欢的编程语言直接在他们的 Web 界面中输入。每个“任务”都包含关于如何完成它的提示(以链接到其他资源的形式)。

很棒的文章!我们在 Power Up Tech Academy (http://powerupta.com) 使用 Scratch / Python 序列,原因与您提到的一样,而且我非常喜欢这两种工具,因为它们可以与孩子们一起使用。我也完全同意您对游戏创作软件的评估。它不会真正教他们编程。

我想补充的另一个提示是:在尝试与孩子一起进行该项目之前,请务必先自己尝试一下。不要认为仅仅因为你是一个优秀的程序员,你就会理解 Scratch 的工作原理,或者 Pygame 的复杂性。您需要在会话期间尽可能地专注于教学,而不是调试。

Creative Commons License本作品采用 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.