首先,我们来看一道一年级数学题目:
7个小朋友玩“老鹰捉小鸡”的游戏,已经捉到了3只小鸡,问:还有多少只“小鸡”没有被捉到?


一位小学生的答案是“2”,但老师给这个答案画了叉,认为这位小朋友答错了。
对此,家长很不解,带着疑问发了朋友圈,引来了争议。
这位家长这样解释“2”这个答案的由来:
“这道题是我教孩子做的,错了我很不理解。7个小朋友1个扮演老鹰,1个扮演老母鸡,5个扮演小鸡,在捉到了3只小鸡后,理应剩下2只小鸡。”

对此,老师的解释是:
新版的数学书没有老母鸡这个角色,所以正确答案是“3”。
这条朋友圈收到了60多条评论,有家长认为这样的题目设置是有问题的,并且提出这种有争议的题目不应该有标准答案。“填‘2’的孩子错了,那孩子就不可能满分,填‘3’的孩子对了,但他并未真正的理解题目和游戏”,“这样的题目和教育是否有意义”,也有吐槽现在当家长的不容易,“小学生题目就是玩家长”、“辅导作业就是崩溃的一件事”。


但其中,有一条家长的评论引起了大家的高度关注:
“其实这个很能反映孩子思维逻辑。这个题可以出成编程题,设定老母鸡的角色附带选择性质,‘有’即‘2’,‘无’即‘3’。”
一道颇受争议的小学一年级数学题,在计算思维的引导下,其争议迎刃而解。加上了“条件”这一编程知识点,让两个答案均得到了家长们的认可。
由此可见,计算思维和编程教育的确可以影响孩子们的数学学习,其科学性不容忽视。

其实,类似编程的题目早已进入小学课堂。
2018年9月26日,重庆市教委发布通知,编程课程进入中小学课堂,从3年级开始学习,初中阶段学习不得少于36课时,高中也要开设编程课。

再早一些,2018年,北京、南京、天津等城市,早已把编程列入中考招生项目,在升学加分的问题上,编程的势头也越来越高。
不仅如此,就连数学高考题目中也出现了与编程相关的题目。


对这道高考数学题,有一位已经学习编程一段时间的小学生,运用了编程工具解开了这道题,甚至还用了两种解法!
方法一
方法二
编程学习究竟对数学学习有什么影响?影响究竟有多大呢?
首先我们要重申一个事实:
编程不等同于写代码!
让孩子学编程也不是为了当程序员!
学编程最有价值的表现,实际上是学习编程思想。下面的三点总结,相信可以给每一位家长带来解答。
1
帮助孩子深刻理解数学理念,超前学习数学知识
数学是一门从数量关系到空间形式角度来研究现实世界的学科。它的特性决定很多概念都非常的抽象,如,加减乘除,乘方开方,指数对数,微分积分,变量,函数等等。
很多小学生基本都是死记硬背数学公式和概念,解题的时候更多是生搬硬套,但在计算机就不一样了,孩子们用编写程序解决问题的过程中,通过计算机的直观、具象化演绎,会从原理和本质上把数学概念吃透,这和死记硬背的效果完全不同。

另外,孩子在编程求解的过程中,孩子们学会很多超前的数学知识,慢慢形成一个同龄人不具备的高维解题视角,对数学概念的理解也更加深刻。
2
提升孩子的数学抽象概念
编程可以将抽象的问题形式化,可以将问题以可视化的形式呈现出来,比数学更具体。另外,编程可以将现实生活中难以操作的问题以直观方式表现出来,可以以一种灵活的方式的展示数学的算法过程。
所以,很多学计算机的孩子可以迅速产生兴趣并入门,正是这种形式化、可视化的方式给了孩子一种学习的正反馈。在学习信息学的过程中,孩子可以通过项目建立起时间、顺序、空间、因果等一系列重要的数学概念。

而且如果孩子想用代码来编写一个有趣的小程序,那就要用到各种各样数学知识,并且还要调用抽象思维的能力。
编程的过程就是解决一个个数学问题的过程,编程对孩子数学能力的强化是毋庸置疑的。
3
提高孩子的逻辑思维的能力
编程是数学计算和逻辑思维的完美融合,比数学更能够锻炼个人的逻辑思维。编写程序的过程也就是计算过程和处理信息数据的过程。有了编程思维,孩子说话做事都可以更有条理,有规划性,思考和处理问题更加理性。
而对于“编程思维”(computational thinking),它绝对不能简单地理解成“编程的时候用到的思维”。
“编程思维(computational thinking)”是“理解问题——找出路径”的思维过程,国际上准确的说法是叫计算思维,它由分解、模式识别、抽象、算法四个步骤组成。

通过这4个步骤,一个棘手的复杂问题先被拆解成一系列好解决的小问题,每一个小问题被单独思考、搜索解决方法;然后,聚焦几个重要节点,忽视小细节,形成解决思路。最后,设计步骤,执行——问题解决。
所以,“编程思维“并不是编写程序的技巧,而是一种高效解决问题的思维方式。

小学中低年级阶段,是孩子逻辑思维成长的关键时期,利用编程培养孩子的数学思维能力,是非常合适的选择。
数学家、中科院院士李大潜教授说:
“数学是一门重思考与理解,重严格的训练,充满创造性的科学,只有掌握了数学的思想方法和精神实质,才能由不多的几个公式演绎出千变万化的生动结论,显示出无穷无尽的威力。”
所以不难发现,国内很多家庭,都让孩子很小的时候就开始接触像编程和奥数一类的兴趣班,不仅是培养孩子对于数字的敏感度,还培养孩子的一个数学逻辑思维能力。
而想要培养孩子的逻辑思维能力,毫无疑问编程是个绝佳的途径。
那些编程能力出色的孩子,都经过大量了的思考与训练,在不断解决问题的过程中,他们的思绪越来越清楚,慢慢养成了计算机解决问题的思维。
总而言之,编程对于孩子数学成绩的提升以及基本技能的学习和训练,有着不可替代的作用,学编程对孩子学数学带来的影响是巨大且深远的。