分享

想锻炼思维?它也许是个不错的选择

 昵称32937624 2018-07-04

我们都听说过这样一个故事:数学家高斯在三年级时候,老师要求从1+2+3开始一直加到100,得出的和是多少?其他同学都费劲地一个数一个数的加,只有小高斯注意到了这些数可以两两配对,相加和为101:

1+100=101

2+99=101

......

一共有50对,最后的和可以用乘法来做:(50X101)=5050

很多人都拿这个来验证孩子的数学思维能力,殊不知,高斯的上述解题思路充分体现了编程思维中的拆分和模式识别。

那么有的家长就会问了,锻炼思维,学数学就可以了,为什么还要学编程?

数学对思维的锻炼毋庸置疑,来看几个典型的小学数学题:

1、鸡兔同笼问题

今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

2、一个水池有一根进水管,一根排水管,只打开进水管,需要15分钟放满水池,只打开排水管,放完水池里的水需要8分钟。现在两个水管同时打开,问多久能把水池放空?

数学数学就是关于数的学问,它最显著的特征就是题目中有数字,通过已知,求解未知,需要调用人类思维中的精华总结——公式&定理,简单的像九九乘法表,复杂的比如函数的图像与性质。很多题目设计的目标就是考查孩子们能否灵活运用所学公式和定理,它们是宇宙终极真理,过一千年也不会过时。未来如果研究复杂问题特别是做科学研究时,数学思维会非常有用。

而编程是一门为解决实际问题而生的学科,孩子们需要编写计算机能搞懂的指令,让它来帮我们工作,它对思维的训练更接近日常的思维方式,更加基础和普遍。

01 编程怎么锻炼思维

编程思维本质上是我们解决问题的一种方法,是逻辑思维的一种,就是利用我们已有的知识和工具,将自身的思路转化成逻辑运算的步骤,从而完成复杂的任务。

一般需要经过这么几个步骤:

想锻炼思维?它也许是个不错的选择

1-1

分解(decomposition)

把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。

1-2

模式识别(pattern recognition)

找出相似模式,高效解决细分问题。

1-3

抽象(abstraction)

聚焦最重要的信息,忽视无用细节。

1-4

算法(algorithms)

设计一步一步的解决路径,解决整个问题。

有编程思维的孩子,数学不会太差。以小学口算为例:

想锻炼思维?它也许是个不错的选择

它能运用在任何事情上,可能你并没有意识到,比如记忆电话号码:

想锻炼思维?它也许是个不错的选择

通过这四个步骤,一个复杂的问题先被拆解成一系列好解决的小问题→每一个小问题被单独检视、思考,寻找解决方案→聚焦几个重要节点,忽视小细节,形成解决思路→设计步骤执行→问题解决。

所以,所谓“编程思维”并不是编写程序的技巧,而是一种高效解决问题的思维方式。

经过编程训练的孩子,还可能养成下面这些优秀的思维习惯。

自动化思维

近几年很火的人工智能,本质上就是一种自动化。为了让自己在繁琐而重复的任务中解脱出来,有编程思维的小朋友会进行更高层思考和设计,利用工具和脚本让自己解脱出来,犹如工厂的流水线设计。

抽象思维

抽象就是去掉与计算无关的部分,用规约的方法还原到问题的本质。所谓本质即把初始问题转换为一个或几个可以使用计算机描述并解决的问题,进一步讲也就是转换为在算法上可计算的一个或几个问题。它的本质是利用计算机的能力。

系统思维

系统思维就是选择、改善或构建“框架”,以更快速、更全面、更深入地系统思考和表达的思维方式,可以理解为系统就是框架与逻辑的综合体。它能够帮助你更有效地理解一个较复杂的系统。下面举个很老的例子:

张三和李四同时受雇于一家店铺,拿着同样的薪水。 一段时间后,张三升职加薪,李四却没有,于是李四找老板理论。老板对他说:“李四,你现在帮我到集市上去一下,看看今天早上有什么卖的。” 不一会儿,李四从集市回来,向老板汇报:“只有一个农民拉了一车土豆在卖。” 老板问:“有多少?”李四不知道,于是赶紧又跑到集市上,然后回来告诉老板:“一共40 袋土豆。” 老板又问他:“价格呢?”李四说:“您没有叫我打听价格啊。”于是老板让李四先坐下休息,并把张三叫来,吩咐他说去做同一件事。 张三回来,向老板汇报:“今天集市上只有一个农民在卖土豆,一共40袋,价格是两毛五分钱一斤。我看了一下,这些土豆的质量不错,价格也便宜,根据我们以往的销量,40袋土豆在一个星期左右就可以全部卖掉,一定能赚钱。”此时老板转向了李四,说:“现在你知道为什么张三的薪水比你高了吧?”

通过上面介绍的小例子,可以看出,张三对于老板吩咐的事有一个系统的认识,思维缜密,考虑到了方方面面,从中可看出系统思维的重要性。

02 数学不好,能不能学编程?

由于编程的核心是算法,有些家长就认为数学不好的孩子,学编程/计算机科学会很吃力,这其实也是一个误区。

不可否认,数学和计算机科学是相互影响的, 计算机中的计算原理处处都包含着数学思想,同样计算机的高速运算能力也大大地推动了数学的发展。

编程实际上是求解某个问题的过程,这个过程也可看做是设计算法到实现算法的过程,因此可以看出编程离不开数学原理的支持,没有良好的数学思维就很难编写出高质量的程序。

但是,会基本的加减乘除四则运算,就可以应对比较基础的编程学习。高等数学,只有在机器学习,数据压缩等中才用得上。猿编程的课程设计也会充分考虑孩子们的数学能力和思维水平。

同时,编程能够帮助孩子理解数学抽象概念。对于许多孩子来说,数学概念太抽象、离生活太远,不好理解。但是在编程的过程中,抽象的数学概念可以被转化为看得见的、具体的图像。

比如,在编程的过程中,孩子对于小数和分数会有更直观的理解。将代码中的小数点移动位置,屏幕上的物体的大小就会发生巨大的变化。孩子可以因此可以将抽象的小数和分数的概念变成鲜活的图形,印到脑子里。

想锻炼思维?它也许是个不错的选择

另一方面,编程就是把实际问题转换成计算机能够理解的数学问题,对数学能力也是一种强化。就像猿编程课程的总设计李翊说的,“数学学得好,不一定会编程,但是会编程,数学不会差!”

03 数学和编程哪个更难?

抛开学习的深度来讲难易,其实没有价值。

从入门的角度来说,学编程并不比数学难。可为什么很多家长还是觉得编程很难,担心孩子学不会呢?

这其中的本质原因在于家长没学过,对于自己不熟悉不了解的东西,人们倾向于放大它的难度。实际上,猿编程课程的总设计师李翊在看到自己8岁的儿子能成功编写一段代码并运行的时候,也是有点惊讶的。

我们教孩子学编程,和教他们学数学一样,都是期望孩子掌握一个更有效的工具,目标不是成为伟大的程序员或数学家。

计算机科学进化到今天,最难的底层编码已经比较完善了,孩子们直接调用前人的算法成果即可,就像你要学习使用excel,学习的是每个功能怎么用,并不需要知道每个功能是怎么做出来的。从这一点上来说,二者没有区别。

最后总结下,数学和编程都能锻炼思维,区别是前者对脑力的要求更高,如果数学不好,那小编建议孩子先试试编程课,没准儿能重新找回自信呢!数学棒棒的孩子,也不妨尝试下编程,计算机科学也有高峰等着你去攀登呢!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多