过去十年,英国 KS3 计算机课程扩展了很多。国家课程涵盖编程、数据表示、计算机系统、网络、伦理,以及各种实用软件技能。涵盖范围很广。
但如果你问哪些概念对七至 Year 9 学生未来的计算机学习成果最重要,这个清单很快就收窄了。五件事,大致按此顺序:变量、循环、条件、抽象、分解。 把这些学扎实,学生几乎能够吸收任何其他内容。跳过其中一个,差距就会积累。
以下是 Professor Turing 如何教授每一个,以及需要注意什么。
1. 变量
变量是一个持有值的命名容器。值可以改变,名字不变。
在 Python 中:x = 5。名字"x"现在指向值 5。之后,x = 10 改变了值,但没有改变名字。
典型错误概念
写出 x = 5 然后后来写 x = x + 1,却说「这不可能——x 不能等于 x 加 1」的学生,是在把等号读作数学等式,而非赋值。Turing 会早早发现这一点。修复方法是大声朗读 x = x + 1,读成「取 x 的当前值,加 1,把结果存回 x」。重复两三遍之后,学生就不再想到等式,而是开始想到赋值了。
为什么重要
如果变量不稳固,其他一切都不起作用。每个循环、每个条件、每个函数都涉及变量。不稳固的变量模型产生模糊的代码和难以捉摸的 bug。
2. 循环
循环使一段代码多次运行。KS3 的两种主要循环是 for 循环(运行已知次数)和 while 循环(运行到某个条件不再为真为止)。
在 Python 中:
for i in range(5):
print(i)
这运行五次。变量 i 取值 0、1、2、3、4——不是 1、2、3、4、5。
典型错误概念
上面就是那个错误概念。大多数 KS3 学生以为 range(5) 产生 1 到 5。它不是。它产生 0 到 4。Turing 通过干运行来教授这一点。学生写下每次迭代 i 的值,自己发现答案。
同一个学生后来需要用 range(1, 6) 来得到 1 到 5,或 range(1, 11) 来得到 1 到 10。「不包含上界」规则是 Python(以及许多其他语言)的一个基石。在 KS3 阶段就把它学对是值得的。
为什么重要
循环是你如何不止一次地做某件事的方式。不能循环的程序无法处理列表,无法重复一个问题直到答案正确,无法画一个正方形。没有循环,编程不过是像计算器一样的顺序语句。
3. 条件
条件让程序做出决策。Python 中的 if、elif、else。
if score >= 80:
print("A")
elif score >= 70:
print("B")
else:
print("C")
顺序很重要。第一个匹配的获胜。(我们在 FizzBuzz 实例中见到了这一点。)
典型错误概念
两种常见情况。第一:误读比较运算符。= 是赋值;== 是比较。写出 if x = 5 的学生会得到语法错误,却不知道原因。Turing 用一个助记符明确教授这个区别:「单个等号放一个值,双等号检查一个值。」
第二:在应该互斥的情况下,遗漏 elif,使用了相互独立的 if。学生为 score >= 80 和 score >= 70 分别写了两个独立的 if 块。对于分数 85,这会同时打印"A"和"B",因为两个条件都为真,而 if 语句是独立的。修复是使用 elif。Turing 通过用一个边界分数进行干运行来发现这一点。
为什么重要
条件是程序如何响应数据的方式。没有它们,程序在无聊的意义上是确定性的——每次都做同样的事,无论输入是什么。有了它们,程序就能适应。这就是程序有用的大部分原因所在。
4. 抽象
这里是从语法停止、开始转向思维的地方。抽象是选择保留哪些细节、丢弃哪些细节的技能。
具体例子:学生在写一个追踪测验分数的程序。他们可能会想存储用户的名字、电子邮件、最喜欢的颜色、注册日期、测验界面的颜色。抽象就是问:我真的需要这些吗? 对于一个打分程序,你需要分数,也许还有用户名字。其他都是噪音。丢掉。
Turing 如何教授它
抽象用具体例子来教,而非抽象描述(这是一个我很享受写下来的句子)。Turing 会给学生一个包含太多信息的问题,然后问:「哪些可以忽略?」
例子:「Sarah 今年 13 岁,她住在曼彻斯特,最喜欢的颜色是蓝色,在测验中得了 10 分中的 8 分。写一个程序祝贺她的成绩。」
KS3 学生需要认识到:那段话里大部分是无关紧要的。程序需要名字和分数。这个认识就是抽象。
典型错误概念
KS3 学生常常认为抽象意味着「让事情更简单」或「去掉细节」。它确实如此——但问题是哪些细节。去掉错误的细节会破坏程序。抽象是有目的的选择,而非全面简化。Turing 通过询问为什么一个细节被忽略,而不只是它是否被忽略,来教授这一点。
5. 分解
分解是将一个大问题拆分成更小的、可管理的部分。让学生能够处理非平凡问题而不会冻结的思维动作。
为什么放在最后
分解只有在学生有代码可以分解时才真正说得通。在那之前,它是一个飘在空中的抽象原则。一旦学生写了几个小程序,分解就成了「我如何把这些组合成更大的东西?」这个问题——而那是他们实际上能回答的问题。
Turing 如何教授它
通过拿出一个刻意太大的问题,并拒绝开始,直到它被拆分。例如:「写一个程序,问 10 道数学题,并告诉用户他们的分数。」 Turing 不会让学生开始,直到他们将其分解为离散的步骤——生成一个问题、展示它、获取答案、检查它、更新分数、重复 10 次、展示最终分数。每个步骤都足够小,可以单独编码和独立测试。现在学生可以开始了。
典型错误概念
KS3 学生试图将大程序写成单一的代码块。他们开始打字,写到五行,然后意识到不知道下一步该做什么。然后他们陷入恐慌。分解能防止恐慌——但只有在打字开始之前完成。Turing 不断强调这一点。
为什么顺序重要
这五个概念大致按此顺序教授,原因是:
- 变量、循环和条件是具体的——你可以写出来、看到它们、干运行它们。Year 7 到 Year 8 初。
- 抽象和分解是思维方式——它们需要有代码来应用。Year 8 末到 Year 9。
一个在学生能写循环之前就教分解的 KS3 课程会失败。一个在学生写出足够多小程序可供抽象之前就教抽象的课程会失败。顺序就是内容。
这个清单缺少什么
你可能注意到:没有数据结构,没有函数,没有面向对象编程,没有递归。这些都是真实的,它们都属于计算机教育——但属于 GCSE 及以后,而非 KS3。一个在上述五个方面扎实的 Year 9 学生,可以在一周内吸收其中任何一个。一个跳过这五个去「学函数」的 Year 9 学生,将在意想不到的地方挣扎。
Turing 的职责不是把每个 KS3 学生推到 GCSE 水平的材料上。而是确保基础被妥善打好。
延伸阅读
Duke Harewood 是 aitutors.me 的创始人,有一个 Year 8 的孩子,以及约十五年在教育相关领域构建软件的经验。2026 年 5 月 21 日更新。