巴黎大学跟踪1500个小学生发现 学编程拉低数学成绩

今日头条
Toutiao
最新回复:2022年9月11日 18点24分 PT
  返回列表
77072 阅读
19 评论
量子位

“怎么培养数学逻辑思维?来点编程试试?”

大概这是很多人的既有认知,毕竟感觉程序员们的数学都挺好的。

巴特,反转来了。

来自巴黎大学的研究人员发现,小学生改用编程课学数学后,对成绩不仅没有明显帮助,甚至会产生一些负面影响。

在欧几里得除法、加法分解、分数运算几个方面,影响范围为-0.16 ~ -0.21(值为负数即代表表现不如标准组)。

而且编程软件的可视化界面,还影响了孩子的注意力集中能力。

没错,这里说的就是风靡少儿编程圈的Scratch,它最大的特点就是通过动画涂鸦的表现方式,让小孩子喜欢上编程。

△图源百度百科

要知道,很多家长给小孩报编程课就是为了提高数学成绩……

怎么现在反倒成绊脚石了?

从编程逻辑转到数学逻辑才是关键

其实这事儿的关键就是,小孩子们到底能不能把从编程里学到的逻辑思维,转化到数学方面。

按照学习迁移的思路,通常认为计算机思维和技能是能够轻松转移到其他领域的。尤其在解决问题这方面,编程和数学被认为密切相关。

话虽如此,一直以来却没什么有力的研究证明。

为了搞清两者之间的关系,2017年10月到2018年2月,大概4个月的时间里,研究团队招募了四、五年级共2472名学生进行实验。

这些学生年龄在9-11岁之间,来自46所学校的107个班级。

以学校为单位,学生随机分配到两个组别:编程组(28所学校,68个班级,1519人)和对照组(18所学校,41个班级,953人)。

简述一下实验方法,就是让两组小孩分别上编程数学课和普通数学课,然后对比期末成绩。

教学内容涉及三个部分,分别是欧几里得除法、加法分解和分数。

以欧几里得除法为例,所有小孩都需要在数学写作中构造一个方程,如a = b*q + r。小孩们花了同样的时间来理解新的数学概念。

看看教学实践的具体操作。

假设有这样一道题目:

把23cm的丝带切割,分成几个5cm的丝带段和一个3cm的丝带段。

编程组的小孩需要构建一种算法,使用指定长度(这里是5)的几个跳转和一个较短的(这里是3)通配符跳转,移动数字条上的光标,以达到目标。

△编程组的练习截图

对照组的小孩则采取传统方法,用剪刀把丝带剪成几个部分,然后写成代数公式:23 = (4*5) + 3。

介绍一下,编程组小孩用的是Scratch图形化编程。

Scratch是MIT“终身幼儿园团队”在2007年发布的一种图形化编程工具。使用者可以不会英语,也可以不会键盘,只要玩一个类似搭积木的动画游戏,就能避开复杂语法来学习编程思维。

作为少儿编程入门课程,国内少儿编程班用的基本都是它。

回到实验本身,在入学前、三个教学内容前后这七个时间点,两组学生进行了数学测验。

测验内容大体分为三年级水平的数学知识、计算和解决问题的能力这三个知识点,旨在衡量相同技能。

每次测验都会产生一个全局分数,并被居中和降低,以便比较不同概念的效果大小,如此一来,得到了三次测验后的是三个因变量。

由于学生属于各个班级,因此采用了多级模型统计方法,它可以将因变量归因于正确的水平。

模型规范过程包含四个步骤:

1、对空模型的每个概念进行估计,以估计类内方差和类间方差;

2、添加1级变量(学生特征);

3、添加2级变量(类别特征);

4、添加实验变量(编程与传统方法)。

为了拟合解释每个知识点最终表现的简约模型,模型中删除了非显著变量。模型中涉及变量的描述性统计如下。

△欧几里得除法的描述性统计

△加法分解的描述性统计

△分数的描述性统计

研究结果显示,每个知识点的前测得分对最终成绩有显著的正向影响;入学分数对最终成绩也有积极而显著的影响,但这个效应小于前测效应。

而相比上普通数学课的小孩,上编程数学课的小孩影响都是负数:编程思维对最终性能的平均影响为−0.16 SD(欧几里得除法)、−0.19 SD(加性分解)和−0.21 SD(分数)。

也就是说,对比对照组,编程组的学生进步更小。

尽管这些效应量在大型随机试验的预期范围内,但效应量位于数学学习随机试验分布的下尾。

研究人员认为,这些负面影响表示出,即使在老师指导水平不赖、且拥有“近迁移”假设的最佳条件下,从编程思维到数学思维的学习迁移并不能自发进行。

编程和数学的关系没那么简单

实际上,如果从大脑活动角度来看,编程和解决数学逻辑问题时,激活的范围也并不相同。

此前研究表明,人类大脑在处理数学逻辑问题时,主要依赖于左脑的多需求(multiple demand,MD)网络的分布式网络。

但是在MIT神经科学家发现,当人在读代码(Python)时,似乎同时激活了MD网络的左右两个部分。

并且,读Scratch可视化代码(ScratchJr)时,对右侧大脑的激活程度略高于左侧大脑。

也就是说,读代码和处理数学逻辑问题时的大脑活动并不相同。

有网友看了最近的这项研究也表示,这次实验之所以会得出一个出乎意料的结论,关键点或许不在编程上,而是Scratch到底适不适合小孩拿来学数学。

还有人提到,编程更像是结合逻辑、推理等方面的学科,而不是数学。

如果一定要把数学和编程联系在一起,可能大家更认可的是数学对编程的影响。

有位网友就想到了自己的辛酸史——

他因为没有拿到加拿大大学要求的数学成绩,没法攻读计算机学位(好在最后他还是从事了软件开发)。

(在加拿大等国家和地区,大多数大学级别 CS 课程的录取都要求了较高的数学成绩,整个专业也会偏爱对数学有高度热情的同学。)

但不可否认的是,的确有很多人在学了编程后,数学物理都有提升。

只能说编程肯定能帮助小孩学到一些技能,但会不会像一些机构吹得那么神乎其神、宛若是学数学的捷径,这事儿还有待验证。

一作曾在南京大学任教

本篇论文的一作及通讯作者为Manon Laurent。

她现在是巴黎大学社会系的博士。此前曾在南京大学、康考迪亚大学、巴黎大学有过任教经验。

研究的兴趣领域为中国城市社会关系。

话说,你学编程后,数学成绩有提高嘛?

参考链接:

[1]https://www.sciencedirect.com/science/article/abs/pii/S0959475222000883#!

[2]https://www.publicbooks.org/author/manon-laurent/

[3]https://news.ycombinator.com/item?id=32728636

[4]https://www.cessma.org/LAURENT-Manon

q
q23li
1 楼
先把数学基础学好了再学编程相对不难。过早接触的确未必就好。
t
tomzhuge
2 楼
这不是Rick and Morty里的Squanchy吗?
a
archangel999
3 楼
啥叫编程数学??没听说过。计算机里第一门数学课应该是离散数学。 [1评]
s
ssbbss
4 楼
教编程,不教算法,数学肯定不行
喝了一杯
5 楼
有道理, 各种编程算法就是减轻对数学和逻辑依赖度。
p
ppplu
6 楼
#calculate 4+5 A=4 B=5 for I=1:B A+=1 end print A [1评]
喝了一杯
7 楼
教编程,不是教算法,里离散数学而更远。 可看你不是码农。
a
angelkilier
8 楼
为毛做个加法还要循环?
d
didi
9 楼
好好学数学,编程一点都不难。反过来就是本末倒置。
敞开裤裆任风吹
10 楼
编程解决的多是业务逻辑 并不是数学逻辑。 就像计算器,它达到的目的是求值 要的是结果,并不锻炼你的数学逻辑,和对数字的敏感度。 编程只是一种工具,并不是数学智力开发工具。 这个调查有点牵强,不过也是帮着一部分人弄明白 本末
l
lids
11 楼
法国需要的是把法语的95叫做4乘以20加15改掉
意见没
12 楼
可能。会变成后能计算的尽量编程做了
s
ssbbss
13 楼
简单的排序就有多种算法 如果编程追求效率,追求简约,那么可以启发人解决问题的能力,学习的能力。 编程的模块化,也可以启发人组织能力,配合能力,时间管理能力
笔名笔名3
14 楼
一个文科博士生,写了一篇论文,说学习幼儿编程对学习小学数学没有帮助...我反正觉得没什么价值。 我只能说:1.除了直接学习小学数学,其它学啥对小学数学都没有帮助. 2.作为文科生,作者可能对编程有误解。
r
rmnp
15 楼
数学的本质(也是难点)是抽象思维。从形象思维到抽象思维是个巨大的跨越和提升,很多人卡在这个地方,一辈子过不去。要学好计算机,绕不开足够的好的数学和抽象思维,否则顶多是个合格的码工。用这种少儿编程的方法不能帮助这种跨越,顶多是减少对数学的依赖,最终无法学好数学。
m
mmjsh
16 楼
需要去瑞士法语区生活几年 XD
南方兔儿爷
17 楼
愚蠢的操作在于“用孩子喜欢的方式界面”,就是低能颜色鲜艳固化逻辑引导。任何一个孩子要获得技能的提升他就必须是接收有挑战的信息和方式,无论是否喜欢。哪个钢琴家运动员不是在残酷联系中提升的,他们的钢琴更花哨还是球更小?
M
Mnwang
18 楼
没学好数学就想学编程?
那就好好生活
19 楼
年纪太小,不建议学编程