上周二下午的编程课,我照常讲解循环结构。讲到for循环时,坐在前排的刘同学举起了手:“赵老师,初始值、条件、增量这三个东西,我容易记混。”他眉头微微皱着,手指无意识地敲着桌面。
这是很常见的困惑。我没有立刻解释语法,而是在白板上写下一行题目:
请分别计算1至100之间所有偶数的和,以及所有奇数的和。
“先不碰键盘,”我对全班说,“把这句话读明白。”
空调发出低鸣,教室里安静下来。有孩子开始小声默念,刘同学盯着白板,嘴唇轻轻动着。过了一会儿,他再次举手:“老师,这是……要算两个总数?”
“没错。”我在“偶数的和”与“奇数的和”下面各划了一条线,“‘分别’和‘以及’这两个词,已经把任务说得很清楚了。它不是在问一个总数,而是两个。”
另一个孩子问:“那可以写在一个循环里吗?”
“当然可以。”我转身在两条线之间画了个大括号,“但重点是,无论你用一个循环还是两个,你的脑子必须清楚——这里有两个任务。就像让你去小卖部,既买笔记本,又买钢笔。你可以一趟买齐,但心里得记着是两样东西。”
我看到刘同学低下头,在草稿本上写写画画。我走过去,看到他画了两个并排的方框,左边写着“偶数”,右边写着“奇数”,中间用一条虚线隔开。
“怎么想到这么画的?”我问。
他抬起头,眼神里有种豁然的光:“我读题时,看到‘以及’,就觉得像语文课给句子画分层。‘以及’前面一层,后面一层。”
我心里暗暗点头。这就是阅读训练带来的直觉。很多编程上的卡壳,根源不在技术,而在理解。题目稍微一长,逻辑关系稍一复杂,孩子就懵了——不是不会写代码,是没读懂题在问什么。
我去年教过一个学生,语法记得飞快,但一到应用题就束手无策。我让他把一道关于“班级成绩统计”的题目复述一遍,他磕磕巴巴,逻辑全乱了。后来了解,这孩子除了课本和习题,几乎不接触任何长篇文章。他的阅读耐心,支撑不了一道稍长的编程题目。
编程题目,本质上是一种技术说明文。它要求孩子快速提取关键信息:目标是什么?有几个子目标?步骤之间是什么关系?这和语文课上梳理文章脉络,是同一套思维体操。
所以现在,我的课堂上总有一块固定的“读题时间”。像今天这道题,我会带着他们找路标一样的词:
· “计算”——这是动作,要做事。
· “1至100之间”——这是范围,是限制条件。
· “偶数的和”——这是第一个目标。
· “以及”——这是并列信号,注意,还有另一个。
· “奇数的和”——这是第二个目标。
“把这些路标都找到,题目就拆解开了。”我对孩子们说,“就像在重庆爬坡上坎,你得先看清指示牌,才知道该上台阶还是拐弯。”
刘同学最后选择了用两个独立的循环来完成。交上来的作业,注释写得很有意思:“第一个循环:收集所有双号门票(偶数)。第二个循环:收集所有单号门票(奇数)。”
我问他为什么分开做,他说:“虽然代码多写了几行,但我想事情的时候更清爽。就像写日记,一件事写一段,回头自己看得明白。”
下课后刘同学收拾好书包,走到讲台边,又问了一个问题:“赵老师,如果以后题目里不止‘以及’,还有‘然后’、‘接着’这些,是不是就像读故事一样,要理出顺序?”
“正是这样。”我肯定地回答,“编程是把你的思考步骤写下来。想得清楚,才能写得清楚。而想得清楚的前提,是读得明白。”
他点点头,背着略显沉重的书包,消失在走廊尽头。
做编程老师这些年,我们深知教的其实不是某种特定技能,而是一种理解世界、拆解问题、有序表达的能力。这种能力的根基,是扎实的阅读习惯。一个能静心读完一本长篇故事,能理清人物关系、情节转折的孩子,在面对复杂的逻辑命题时,自然就多了一份从容和底气。
所以,如果您问我,除了来上编程课,还能为孩子做什么?
我的回答始终是:带他阅读。
不一定非要是名著或经典。哪怕是一篇长长的食谱,一份游戏说明书,一则深度新闻报道。重要的是,让他在文字中浸泡,学习如何提取信息、梳理逻辑、把握重点。这些在阅读中磨砺出的能力,终将化作他面对代码、面对难题时,手中最可靠的那把钥匙。
毕竟,在这个碎片化的时代,能耐心读懂一段复杂文字的孩子,未来才有可能读懂更复杂的世界——无论是用代码构建的,还是用生活写就的。
循环结构:编程教学中那个不得不慢下来的时刻
编程与人工智能的关系,别再傻傻分不清
抱歉,您孩子拿的可能是“假”编程证书
走出竞赛迷雾:信息学教育中“阶段匹配”比“超前学习”更重要
两座顶尖学府的新动向,为“竞赛娃”指明了截然不同的未来
当90%的编程机构都在贩卖焦虑,剩下的10%在做什么?