/cn-tutor-prep-s4-ict-debugging-version-control/
/cn-tutor-prep-s4-ict-debugging-version-control/
一般查询: info@TutorZone.com.hk
办公时间: 星期一至六 - 上午 9 时至下午 6 时
WhatsApp 星期一至日 - 24 小时
人手接听: +852 6828 1809
实时客服: +852 9061 3106

中四 ICT|程式除错与版本控制(三类错误/二分法追 bug/commit 与回退)备课指引(导师用)|45 分钟流程、讲解脚本、常见错误

中四 ICT|程式除错与版本控制(三类错误/二分法追 bug/commit 与回退)备课指引(导师用)|45 分钟流程、讲解脚本、常见错误

  • 2026-11-15

学生一见到程式出错就由第一行开始加 print,被问要试几多次就答不出。这一堂把除错变成三类错误加二分法,顺便讲清楚版本控制为何是保命符。

本堂目标 本堂完结时学生能够:(1)讲出语法、执行时、逻辑三类错误分别在几时被发现、由边个工具报、点样才捉得到;(2)用二分法在 600 行找一个 bug,并用 2 的次方证明最多 10 次就锁定(512 不够、1024 够);(3)由 120 个单元测试通过 114 个算出 95%,讲出改完程式一定要重跑全部测试;(4)讲出 commit、分支、合并冲突、回退的分工,并由 diff 加 40 行减 15 行算出净加 25 行。

01 先备知识(开课前 3 分钟快检)

以下任何一项未过关,本堂就会卡住,先补该项:

技能 快检题 过关标准
2 的次方 2 的几次方会超过 600 答 10 次(1024)
百分比 120 个测试通过 114 个,通过率几多 答 95%
加减 diff 加 40 行、减 15 行,净变化几多 答 净加 25 行
除法 12 个 commit,一日 3 个,要几多日 答 4 日

02 课堂流程(45 分钟)

时间 环节 导师做什么 学生做什么
0–6 分钟 起点快检 问 2 的次方过 600、114 除 120、40 同 15 的净变化、12 除 3,答案写白板右边 口头答,算式写在纸上
6–16 分钟 第一幕:三类错误,三种追法 白板三栏写语法/执行时/逻辑,每栏写“几时发现”同“边个报” 学生讲出逻辑错误跑得完但答案错
16–26 分钟 第二幕:二分法,600 行 10 次 示范在中间加一个 print 或中断点,每次把怀疑范围减半;写出 512 不够、1024 够 学生算出 10 次
26–36 分钟 第三幕:测试与版本控制 120 个测试通过 114 个即 95%;commit 一日 3 个、12 个要 4 日;diff 净加 25 行 学生讲出回退要拣边个 commit
36–42 分钟 题型示范与换数字练习 换成 900 行、150 个测试通过 138 个,示范四种问法 学生跟做一题并写出单位(次、%、行)
42–45 分钟 离场检查 三题口头,错的记下是哪一幕 三题全对

03 讲解脚本(照着说就可以)

第一幕:第一幕:三类错误,发现的时机完全不同

“错误分三类,追法不同。第一类语法错误:漏括号、少冒号、变数名打错,直译器或编译器即刻报,程式连跑都跑不起,错误讯息连行号都畀埋你。第二类执行时错误:程式跑到一半死,例如除以零、索引超出范围、开一个不存在的档,错误只在跑的过程中出现,没有对应输入就永远见不到。第三类逻辑错误:程式跑得完、没有任何错误讯息,但答案错,例如把平均写成总和除 n 减 1,这一类只有一个捉法,就是拿预期输出同实际输出对比。所以学生讲“没有报错”,只等于“没有语法错误”,不等于程式正确。”

“一个程式跑得完但计错数,属于边一类错误?你会用什么方法证明他错?”

第二幕:第二幕:二分法把 600 行变成 10 次

“逻辑错误要在 600 行里面找,逐行 print 是最慢的方法:600 行就要试 600 次。二分法每次把怀疑范围减半:先在第 300 行 print 出关键变数,如果数值已经错,问题就在 1 至 300 行,否则在 301 至 600;第二次再切一半,如此类推。要几多次?2 的 9 次方是 512,细过 600,不够;2 的 10 次方是 1024,够,所以最多 10 次就锁定到单一行。中断点同逐步执行是同一件事的工具版本:停在某行、看住变数、一行一行行过去,不需要改程式码,所以不会好似 print 这么留下一堆要清理的语句,但在考场写纸上答题,讲的仍然是二分法这个思路。”

“900 行要几多次二分才锁定?为什么不是在中间 print 一次就够?”

第三幕:第三幕:回归测试同版本控制是同一件事的两面

“除错完要证明没有整坏其他部分,这叫回归测试。120 个单元测试通过 114 个,通过率是 114 除 120,得 0.95 即 95%,剩 6 个要修;每次改完都重跑全部,因为改一行可能弄坏十行。版本控制就是这个“重跑”同“回退”的基建:commit 是一个有意义的存档点,一日做 3 个,12 个改动就要 4 日;分支让你在不影响主线的情况下试新功能,合并时两边改同一行就会有冲突,要人手拣边个版本;回退是把工作档拉回之前某个 commit 的状态,前提是每个 commit 够细,否则一退就连好的改动一齐消失。diff 就是两个版本之间的差异:加 40 行、减 15 行,净变化是加 25 行,不是 40 加 15。”

“如果一个 commit 同时改了五样东西,发现其中一样有 bug,回退会有什么代价?”

04 必教题型与步骤

题型 例子 步骤 答案
判断错误类型 程式跑得完但答案错 三问:有没有错误讯息、几时出现、答案对不对 逻辑错误:跑得完、没有讯息、答案错
设计除错步骤 600 行,只知输入同预期输出 先比对预期与实际差几多,再用二分法切范围,最后用 2 的次方算次数 最多 10 次(1024 大过 600,512 不够)
算测试通过率 120 个单元测试通过 114 个 通过数除总数,再乘 100 得百分比;剩余用减法 95%,剩 6 个未通过
讲版本控制操作 12 个 commit、一日 3 个、要回退两个版本 commit 数除每日数得日数;回退要讲明回到边个 commit 4 日;回退等于把工作档拉到指定 commit 的状态
合理性检查(一定要教):四个复核:(1)语法错误一定有错误讯息同行号,没有讯息的错一定不是语法错;(2)二分次数要用 2 的次方验:512 细过 600 所以 9 次不够,1024 够所以 10 次;(3)通过率一定细过或等于 100%,114 除 120 是 0.95;(4)diff 的净变化是加减之后的数,40 加 15 是 55,但净变化是 25。

05 独立练习三题

题目 答案 想观察什么
120 个单元测试通过 114 个,通过率几多? 95% 看学生有没有用 6 做分子
600 行用二分法找一个 bug,最多几多次? 10 次 要用 2 的次方验:512 不够、1024 够
diff 显示加 40 行、减 15 行,净变化几多? 净加 25 行 不是把 40 同 15 相加

06 学生常见错误与纠正句

错误 学生通常这样写 导师这样说
把逻辑错误当成语法错误 答“没有红色错误讯息,所以程式没有错,系输入错” 语法错误程式连跑都跑不起;逻辑错误跑得完但答案错,只有对比预期输出才捉到。混淆两者,学生就会停在“编译得过就交”这一关。
用逐行 print 代替二分法 由第一行开始每行加一个 print,600 行试 600 次 二分法每次把范围减半,600 行最多 10 次;逐行要 600 次,考场根本不够时间。
改完 bug 不重跑测试 修好一个功能就当完成,没有再跑单元测试 回归测试的作用是确认改一行没有整坏第二度。不重跑就等于把新 bug 直接交出去,而且通常更难追。
commit 一次过塞入全部改动 把三个不相关的修改放进同一个 commit commit 要小而单一目的,出事才回退得准。一个 commit 包含十个改动,回退就等于连好的改动一齐杀。

07 家课建议(直接指到练习卷题号)

08 离场检查(最后 5 分钟)

题目 答案 判定
程式跑得完但答案错,属于边类错误? 逻辑错误,要用预期输出对比 错:重教第一幕,三类错误的发现时机
600 行二分法最多几多次锁定? 10 次(2 的 10 次方 1024) 错:重教第二幕,用 2 的次方验
一个 commit 改五样东西,出事回退有什么问题? 会连其他好的改动一齐退,所以 commit 要小而单一目的 错:重教第三幕,commit 粒度

09 导师常问

这一章同中三的 Python 循环、函数有什么关系?

中三写得出版程式,这一章教你程式错的时候点找。循环写错一次会重复错一万次,正是最需要用二分法同测试去收窄的地方。

45 分钟够不够讲三类错误加版本控制?

够,但第一幕只可以占 10 分钟。三栏表格加一句“几时发现”就讲完,时间要留给第二幕的二分法计算,因为那是要写数字的题型。

120、114、600 这些数字是真实专案数据吗?

不是,全部是教学数字,设计成可以整除同口算。真实专案的测试数量同除错时间差别很大,重点是方法同判断方向。

立即免费找导师导师登记 →

本页为 TutorZone 导师备课指引,内容由 TutorZone 团队编写;题目与流程为原创,并非任何学校或出版社的教材。

本页内容版权属 TutorZone 所有 · www.tutorzone.com.hk · 仅供个人学习及教学使用

招募导师及兴趣班教练|学术、乐器、体育、艺术、STEM,免费登记,招生与配对交给平台。 了解详情 →