如果你观察一个 Year 8 学生在没有太多指导的情况下尝试编写一个 Python 程序,你通常会看到同样的情形。他们打开代码编辑器,输入一行,运行。不起作用。改一个字符,再运行,再调整,再运行。

这就是专业程序员所说的靠猜测编程。对于非常简单的问题,这种方法勉强可行,而一旦涉及多于几行逻辑的内容就会完全失效。等到学生读到十年级,这就成了真正的障碍。而这并不是他们的错——英国大多数学校的 KS3 计算机课已经变得如此以 Python 为中心,以至于底层的思维步骤悄悄消失了。

Professor Turing 就是为了把思维步骤放回去而建立的。 以 Alan Turing 命名,他的大部分实际工作都是用铅笔完成的。教学原则只有一句话:在算法被画在纸上之前,不能输入任何代码。

「计算思维」的真正含义

在铅笔工作说得通之前,值得先说清楚计算思维是什么。以下是标准的四个支柱,它们出现在每一份 KS3 计算机课程计划中,也是 Turing 不断提及的内容:

  • 分解(Decomposition)。 将问题拆分成更小的部分。「做早餐」太大了。「烧水、拿面包、把面包放进烤面包机」是可操作的。
  • 模式识别(Pattern recognition)。 发现你在哪里见过类似的东西。「这看起来像上周我写的那个计数循环。」
  • 抽象(Abstraction)。 剥离细节,看清楚什么是重要的。「对于这个问题,我不在意用户屏幕是什么颜色的。我只需要他们的输入。」
  • 算法设计(Algorithm design)。 按照正确的控制流程规划步骤顺序。

这些被描述为计算机科学的基础构件,但它们实际上只是良好的问题解决方法。能够分解、识别模式、抽象和规划的孩子能做的远不止写 Python——他们能写论文、设计实验、规划复习。计算机课恰好是这些技能被明确教授的学科。

Turing 课程看起来是什么样子

一次典型课程以一个问题陈述而非代码编辑器开场。例如:编写一个程序,要求用户输入十个数字,并告诉他们平均值。

先按键盘的课程会立刻投入 Python。而 Turing 课程则这样进行:

  1. 分解。 步骤是什么?读取输入十次,将它们加起来,除以十,打印结果。学生用普通话写出这些步骤。
  2. 规划算法。 什么需要被记住?(一个累计总和,一个已读取数量的计数。)结构是什么?(运行十次的循环。)学生写出伪代码或画出流程图。
  3. 干运行(Dry run)。 假装自己是计算机。用三四个假输入进行手工演算。追踪算法的每一步。答案正确吗?计数真的是十,还是九?(差一错误在这里就会被发现,在代码存在之前。)
  4. 翻译成 Python。 现在,也只有现在,才拿起键盘。学生写代码。因为他们已经做了规划,代码通常第一次就能正常运行。
  5. 测试边缘情况。 如果用户输入零会发生什么?如果他们输入一个非数字呢?这些会被靠猜测的编程隐藏;而规划会让它们浮出水面。

一次 25 分钟的课程可能只产生 10 行 Python 代码。这没关系。这 10 行能正常运行,学生理解每一行,明天可以在没有帮助的情况下写出类似的程序。这比他们不真正理解的 30 行破损代码要好得多。

为什么铅笔先于键盘有效

有几个原因。

键盘太快了。 打字如此迅速,以至于你可以在思考之前就已经行动。画图足够慢,迫使你暂停。暂停就是思考发生的地方。

纸上犯错代价低廉。 在流程图上划掉一行什么都不损失。运行十次破损的 Python 代码,损失的是挫败感和信心。将思维从编辑器中抽出来,矛盾地是让编辑器变得高效的方法。

它暴露了假设。 当你写 for i in range(10) 时,你可能认为「这运行了十次,从 1 开始」。当你画出算法并手工演算时,你会发现 range(10) 实际上是从 0 到 9。错误概念在 bug 之前就被发现了,而不是在 bug 之后。

它建立可复用的思维。 在编码之前规划的学生,养成了在任何编程语言、任何计算环境中都能使用的习惯。靠输入然后调整的学生建立的习惯只适用于一个 Python 环境。

Turing 最常用的三种工具

三种纸面工具承担了几乎所有的工作。

  • 伪代码。 用结构化的普通语言描述算法。比英语更接近代码,但不绑定于任何特定的编程语言。
  • 流程图。 显示决策和循环的方框和箭头。最适合分支逻辑。大多数 KS3 学生在见过几个例子后就能很快理解。
  • 干运行表格。 每个变量一列,每个步骤一行。你手工追踪算法,写下每一步每个变量的值。

这三种工具都是明确教授的。(见下一篇文章:算法画出来。)

能量模式

和每位 faculty 导师一样,Turing 会适应 Mentor(指导老师)设定的能量水平。绿色课程用于更难的算法、调试真实的 bug、探索新概念。橙色课程只处理一个小问题,有大量干运行支撑。红色课程是作业急救——只需完成下一个任务。

Turing 特有的信号:他关注学生是在向前推理(先规划再做)还是在猜测(不断修改直到能运行)。如果猜测模式开始,他会温和地打断,并将其拉回到算法上。

Turing 不是什么

值得明确说清楚。

  • 不是 Python 教科书。 他会在需要时教语法,但重点在于思维。与 Turing 一年相处的学生不会背下每个 Python 方法——他们将学会如何思考问题。
  • 不是作业完成器。 如果你的孩子带来一道作业题,他会引导他们完成规划过程,但他们自己写代码。重点是能力。
  • 不是 Scratch。 一些 KS3 学校在 Year 7 仍然教 Scratch。Turing 专注于 Python 和计算思维。他可以谈论 Scratch 的概念,但那不是他花时间的地方。
  • 不是凭感觉写代码(vibe coding)。 「凭感觉写代码」——让 AI 为你写代码、你在旁边看——正好是 Turing 所做的反面。这也是一种在早期就会悄悄毁掉学生编程能力的习惯。他非常抵制这一点。

KS3 计算机教师会认出的东西

如果你是一位英国计算机教师在阅读这篇文章,你会注意到这一方法论与国家课程和 BCS 指南高度一致——伪代码、流程图、干运行、计算思维,专注于先理解再动手。这一切并不稀奇。这是正确的方法,一贯地应用。

AI 辅导增加的是耐心。一个有三十名学生的老师无法在每个学生手绘算法的过程中陪在旁边。AI 导师可以。这就是 aitutors.me 正在填补的空白。

作为家长,你可以期待什么

如果你的孩子上完 Turing 的课,你问他们做了什么,答案应该提到思维过程,而不仅仅是代码。「我们画了算法」或「我在编码之前干运行了一遍」是课程正常工作的信号。「我写了一些 Python」而没有提到任何规划,则是课程滑偏的信号。

你也可能注意到你的孩子打代码变慢了,但讲解问题变快了。这就是设计在发挥作用。快速打字会回来的,减去 bug 之后。

延伸阅读


Duke Harewood 是 aitutors.me 的创始人,有一个 Year 8 的孩子,以及约十五年在教育相关领域构建软件的经验。2026 年 5 月 21 日更新。