猜数字,也能成为一堂真正的算法课
作者:浩哥AI实验室
如果我在 1 到 100 之间藏了一个数字,你会怎么找?
有人会从 1 开始逐个猜。
有人会先猜 50,再根据“大了”或“小了”继续缩小范围。
这个小游戏,大多数孩子都玩过。
但如果我们不急着告诉他“这叫二分查找”,而是让他先预测、亲手试、拿卡片演出来,最后再写一小段代码,它就可以变成一堂完整的算法课。
这也是我做 WHSK 104《算法之美》的起点:做一套小学生都能理解的算法课。
课程地址:猜一个数字,怎样问得更少?

算法不应该先从名字开始
如果一上来就讲“二分查找的时间复杂度是 O(log n)”,很多孩子会立刻觉得算法离自己很远。
但换成“怎样少猜几次”,问题马上变得具体。
课程先让孩子做出预测:从 1 逐个猜、每次猜中间,还是两种方法差不多?
然后系统藏一个数字。
孩子每猜一次,页面都会告诉他大了还是小了,并把不可能的范围直接拿掉。他能看到,猜中间数不是某种需要服从的口诀,而是因为一次回答可以排除大约一半可能。
这时候再给它一个名字,“二分查找”才有了真正的含义。
但我不希望孩子只对着屏幕
做完网页互动以后,我特意加入了一个“离开屏幕”的环节。
家里有扑克牌,就取 A 到 K。
没有扑克牌,就把一张纸裁成 20 个小条,分别写上 1 到 20。
一个人藏数字,一个人负责猜。每得到一次“大了”或“小了”的回答,就亲手把不可能的卡片拿走。

这个动作很重要。
屏幕里的范围缩小是一段动画。
桌面上的范围缩小,是孩子亲手拿走十张卡片、五张卡片、两张卡片。他能直接感受到,一个好问题究竟减少了多少可能。
家长也不需要讲课,只需要问:
哪一次拿走的卡片最多?
为什么靠近中间的位置通常更有用?
如果有 1000 张数字卡,你觉得最多要猜多少次?
我越来越觉得,儿童算法课不应该等于儿童坐在电脑前的时间。
算法本来就是一种解决问题的办法。纸、笔、扑克牌、积木,甚至家人站成一排,都可以成为算法材料。
如果你认同这种“屏幕上发现、桌面上验证”的学习方式,可以关注公众号或视频号“浩哥AI实验室”。后面的课程也会继续提供可以在家一起玩的版本。
还要不要亲手写代码?
这又回到了 AI 时代最容易争论的问题。
既然 AI 会写代码,孩子还有必要写吗?
我的处理不是二选一,而是把同一个练习分成三个难度:
填一个空。
补关键一步。
自己写出来。
每个难度都有逐层提示。孩子可以只填出“分成两份”里的数字 2,也可以补上取中间值的表达式,还可以自己完成整个查找过程。

代码只在浏览器里运行,不发送到服务器;如果写出死循环,1.5 秒后会自动停止。
我希望代码在这里扮演的角色不是门槛,而是另一种表达。
孩子先用手把办法做出来,再尝试准确地写给电脑。AI 可以帮他补语法,但“为什么要取中间”“怎样证明找到了”,必须由孩子自己回答。
一堂课的四种表达
这套课最终形成了一个固定结构:
屏幕上玩 → 自己讲清 → 桌边动手 → 代码验证。
同一个算法,经过图形、语言、实物和代码四种表达,理解会比单纯听一次讲解扎实得多。
第一课已经开放:https://howie.wang/WHSK/104/01/
公众号和视频号“浩哥AI实验室”会继续记录课程与 AI 实践;更偏家庭活动、儿童学习和成长方法的内容,会同步更新在视频号“浩哥AI实验室·成长研究”。公众号微信号:de8ug-vip。