SPM计算机科学考的是:你能否分析问题,把解法写成程序或算法,并解释数据与系统如何运作。贯穿大部分内容的核心技能是追踪:一步一步跟着程序走,记下每一步什么变了。
各课题如何衔接?
这些课题比看起来更互相依赖。每一个都用到同一个习惯:说清楚变量在每一步存着什么。
| 课题 | 考什么 | 建立在 |
|---|---|---|
| 编程基础 (英文) | 变量、选择、循环 | 无 |
| 问题解决与算法 (英文) | 把问题变成有顺序的步骤 | 编程基础 |
| 进阶编程练习 (英文) | 数组、查找、排序、调试 | 算法 |
| 计算系统与逻辑 (英文) | 布尔逻辑、数据表示 | 可独立开始 |
| 数据与数据库 (英文) | 数据怎样存放,又怎样查询 | 可独立开始 |
追踪是什么样子?
下面是一个原创的伪代码算法。
count ← 0 FOR n ← 1 TO 5 IF n MOD 2 = 1 THEN count ← count + n NEXT n OUTPUT count
老师画一张追踪表,循环每走一遍,就填一行。
| n | n MOD 2 = 1 ? | count 之后 |
|---|---|---|
| 1 | 是 | 1 |
| 2 | 否 | 1 |
| 3 | 是 | 4 |
| 4 | 否 | 4 |
| 5 | 是 | 9 |
输出是 9。这个算法把 1 到 5 里的奇数加起来:1 + 3 + 5 = 9。推理藏在“条件”那一列,大部分错误答案也是从那里开始的。
谁应该从哪里开始?
刚上中四的学生,从编程基础开始。能看懂程序、却在调试上失分的学生,去进阶编程练习。偏好理论的学生,可以先读逻辑或数据。
用受限伪代码追踪训练器 (英文)在自己的设备上练习追踪,准备好后再读在范围内追踪查找与排序算法 (英文)。考试指南会告诉你到哪里确认最新的考试格式。
什么时候补习有帮助?
免费指南能解释,却看不到你的解题过程。老师在线上课里看着你填追踪表,问你为什么写这个值,很快就能找到出错的那一步。
可以了解SPM计算机科学线上一对一补习和一小时试听课(RM50 起),或回到所有SPM科目。