这一页讲的是怎样读懂并回答计算机科学的题目。试卷结构、分数和比重不在这里写明,因为这些属于教育部考试局(lp.moe.gov.my)和课程发展司(bpk.moe.gov.my)发布的官方文件。
规划复习之前,请先到官方网站确认当前格式。下面的习惯无论格式怎么变都用得上。
怎样看出题目要你写什么?
指令词决定答案的形状。动笔之前,先把它划出来。
| 指令词 | 答案该写什么 |
|---|---|
| State, name, identify | 简短作答,不必写原因 |
| Explain | 一个陈述加上原因,常用“因为”连接 |
| Trace | 一张表,列出每个变量随步骤变化的值 |
| Write, complete | 写出代码或伪代码,或补全缺的部分 |
| Compare | 两个对象都要写,至少指出一处不同 |
| Justify, suggest | 给出一个选择,并附上支持它的依据 |
| Test | 选定输入、预期输出,以及每个输入检查什么 |
遇到 Trace 和 Test,不要用一段文字代替表格。题目要表,就交表。
追踪表怎么排?
每个变量占一栏,值一变就加一行,输出另外写在最后。阅卷员能顺着每一步看下去,才好给方法分。
下面是一段原创算法:把 1 到 6 之间能被 3 整除的数各乘 2,再累加起来。
total ← 0
FOR n ← 1 TO 6
IF n MOD 3 = 0 THEN
total ← total + n * 2
END IF
END FOR
OUTPUT total
| n | n MOD 3 = 0 | total |
|---|---|---|
| 开始 | 0 | |
| 1 | false | 0 |
| 2 | false | 0 |
| 3 | true | 6 |
| 4 | false | 6 |
| 5 | false | 6 |
| 6 | true | 18 |
输出是 18。只有 n 等于 3 和 6 时条件成立,所以 3 × 2 + 6 × 2 = 6 + 12 = 18。
原创例子:分数是怎么丢的
甲同学没画表,只写了一个 18。如果凑巧对了,也许能拿到答案分。一旦错了,阅卷员找不到任何可以给方法分的步骤。
乙同学画了表,却在每一行都把 n 乘 2 加进 total,忽略了 IF。表格排得整齐,但条件没有读,所以 total 变成了 42。条件要在每一行都读一遍,这一步最容易被跳过。
丙同学把 FOR 的范围看成到 5,漏掉了 n = 6。循环的边界值要对照题目再确认一次。
哪些习惯可以保住分数?
- 先读完整道题,再划出指令词。
- 变量名要和题目里的写法完全一致。
- 循环开始之前,先写一行“开始”,填上初始值。
- 检查边界值,也就是循环的第一个值和最后一个值。
- 沿用题目所用的伪代码风格或编程语言。
- 确认输出语句也写进了答案。
想练习追踪和测试,可以看一步一步追踪伪代码 (英文)和测试正常、边界与无效输入 (英文)这两课。
怎样练习?
在纸上限时作答,做完再对照每个指令词的要求检查自己的答案。限时原创练习生成器可以帮你排好一节练习,复习计划 (英文)则建议先复习哪些主题。
实践和项目部分在学校评估,请向你的老师询问安排。如果你想请老师和你一起批改一份完整的答案,可以看一对一线上计算机科学补习。