教孩子 Forth – 安娜·自由
2026-04-14 · 11 分钟 · #计算 Forth 在教学中并不常用来教授编程。像 Python 这样的脚本语言和 Scratch 这样的可视化环境是更受欢迎的选择。但是当我有机会向中学生和高中生介绍编程时,我选择了这种1970年诞生的基于栈的连接语言。我对这个机会感到无比兴奋。我热衷于让人们对他们每天携带的设备中蕴含的潜力掌握更多的控制权。当人们对计算机有了更深的了解,尤其是关于自己制作软件的知识时,整个世界都向他们敞开了大门。这让我有机会为那些可能永远不会发现这个世界的人打开一扇门。虽然我之前曾教过个人编程,但这是我第一次在课堂环境中教学。我从几乎对教学一无所知转变为设计自己的课程,包括教案、课程和数字学习环境。为什么选择 Forth?我可以选择教授任何编程语言。我本可以选择 Python 或 Scratch,但我想探索一条不常被选择的道路,或许能发现一些被忽视的瑰宝。由于我教授的时间有限,并且我想教授更基本的概念,所以我希望避免教授语法。虽然对理解代码的人来说,Python 作为伪代码很合理,但对新学习者来说,它仍然几乎难以理解,这一点我在之前一对一教编程时也发现了。我决定我想教授 Forth 或 Haskell。Forth 的吸引力在于它是一种连接语言。你编写指令,它就简单地按顺序执行所有内容。只要你理解什么是栈,就可以编写 Forth 程序。Haskell 的吸引力在于它和学生已经学习的关于变量和函数的数学思维方式很好地结合在一起。我见过太多新程序员在编程中感到困惑,他们认为变量是可以包含任何值的箱子,而不是他们在数学课上学到的代数定义。我最终选择了 Forth,有两个原因。首先,它更容易集成到我为学生准备的定制学习环境中。其次,我认为过程式编程比函数式编程在课堂最后演示中更容易让人理解。作为一个附加好处,使用像 Forth 这样稍显冷门的语言确保即使之前有编程经验的学生也能从中有所收获,而不会让新学习者感到陌生。设计课程 在设计课程时,我知道时间会很紧张。我有 12 次课程,每周一次,每次一个小时。我也知道考虑到他们在我的课程外还有生活,如果我布置作业,他们很可能不会完成作业。可衡量的学习成果是学生在 Forth 环境中创作自己的艺术作品。这可以是从简单的绘画到动画再到游戏的任何东西。我希望他们能够在课程结束后有一些可以看到和保留的东西。学习很多技术细节却感觉几乎没有成果会令人沮丧。学生能够在自己电脑上运行他们写的代码是很重要的。而且,他们不需要下载或安装任何东西就能运行代码更是至关重要,因为学生可能使用各种操作系统——其中一些可能无法安装第三方软件。我最初为我们的学习环境选择从零开始用 Rust 编写我自己的 Forth,并将其嵌入我们的课程网站中,使用 WASM。不幸的是,我在实现中的错误排除花费了比我预期更长的时间。因此,我转变了方向,选择使用 Nick Morgan 的 Easy Forth 作为我们的课程和 Forth 解释器。对于每一课,我创建了幻灯片和教案,并上传到一个在线门户,供学生访问。这其中包括 Easy Forth 的副本。引入计算机 接下来是时候开始与学生一起讲授实际课程了。我将我的笔记本电脑连接到大电视上以展示幻灯片,并开始了介绍性讲座。我们首先讨论了计算历史和计算机的概念。我最喜欢的部分之一是向他们展示各种设备,并询问它们是否是计算机。当我给他们展示算盘并告诉他们它是计算机时,他们最初感到困惑。我们的工作定义是:“任何计算数字的东西。”他们很快意识到几乎任何东西都可以是计算机,包括他们自己!这是一个计算机!在打破他们对计算机可能性的固有观念并设定他们的期望后,我开始特别讲解 Forth。我解释了它的应用领域及其嵌入式应用。基础知识掌握后,
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡