机器人编程跟数学的奇妙关系,看完这个你就知道了。
相信大家近几年就有所耳闻,部分地区已经将编程题目放入高考数学题目中。
那么,数学跟编程有什么关联?你清楚吗?
学不好数学的孩子,是不是就不能学习编程?
让我们一探编程跟数学的奇妙关系!
历届高考出现的部分编程题目
其实这些都是一些基础编题目,学过编程的学生基本是没什么难度的,但是没有编程思维的学生做起来可能会有些难度。
当高考题目以编程的方式去解决。
很多人一看到编程题目就感觉是在看天书,更不要谈如何去理解题目的含义了。
所以很多人都会有这样的想法,数学学不好的人不应该去学习编程。其实恰恰相反,编程和数学之间有很多奇妙的联系。甚至有一些教育专家认为,数学学不好的孩子,通过接触编程学习,有利于数学的进步。
>>>>
首先我们看看以下这道小学很常见的数学题目
请你算出
从1 2 3 4...... 100=?
很多学生可能会一开始只想到费劲地一个个去加,但仔细观察我们其实可以发现一个更加快速的方法:首尾两两配对!
1 100=101
2 99=101
......
一共有50对,那么就是101X50=5050
【其实,学过编程的孩子就知道,这就是编程思维中的拆分和模式识别。】
拆分(decomposition):把一个复杂的大问题,拆解成容易理解的小步骤。拆分问题有一个需要注意的,那就是要注重小步骤要可执行。
模式识别(pattern recognition):找出相似模式,更高效地解决所有问题。
更通俗地讲:如果让你画出100个乐贝塔吉祥物,为了更高效率高质量地完成,你肯定是先找出吉祥物的“模式”,它的头,躯干,四肢等基本元素,再改变不同的局部特征即可。
这种思维,也应用于最近十分火热的“机器学习”!
当你接触到这两种思考方法,以上的题目,还会做不出来或者很难做吗?
而编程的思维方式不止这两个,编程是为解决实际问题而生的,它的步骤可以简单地理解为:理解问题再解决问题。
具体分为四个步骤:拆分-模式识别-抽象-算法。
抽象(abstraction):学会聚焦最重要的内容,忽略一些无用的细节。
算法(algorithms):设计可执行的解决步骤,解决问题。
所以呢,编程思维并不是编写程序的思维,实际上是解决问题的思维。
数学思维:数学思维是指够用数学的观点去思考问题和解决问题的能力。我国初、高中数学教学课程标准中都明确指出,思维能力主要是指:会观察、实验、比较、猜想、分析、综合、抽象和概括。
数学,就是关于数和空间的学问,减乘除、平方三次方、指数对数、微分积分、函数等等,给你已知,求解未知。
解决数学问题就一定离不开——公式以及定理,简单的,复杂的,都是如此。
但是,却有很多的小学生基本都是死记硬背数学公式和概念,解题的时候也是生搬硬套,这也是为什么做了一道题却不会另一道同题型的题目。
这样学数学,难度大,更容易让孩子失去对数学的学习兴趣和动力!
其实编程思维和数学思维的关系
可以用四个字总结!
【你中有我,我中有你】
编程有利于更好地理解抽象的数学问题
编程可以将很难的问题化为可视的,会动的画面。这就弥补了数学概念的抽象化。很多数学的概念,原理,公式,函数都可以用编程在电脑上体现出来!
编程跟数学所要求跟提升的能力极具相通性。
比尔盖茨曾说:学习编程可以锻炼你的思维,帮助你更好地思考,创建一种我认为在各领域都非常有用的思维方式。要去理解一些比较难的数学算法的时候,没有一定的逻辑思维基础,很容易陷入困惑。那么反过来说,在学习编程跟数学的过程中,其实也是在锻炼跟提升自己的逻辑思维。
所以,其实编程是可以帮助强化数学思维的。
因此,不要再说数学不好的孩子不能学习编程了。相反,当孩子在学习数学时遇到困难时,何不尝试着让孩子接触编程,学会将抽象的问题运用可理解可执行的编程思维,去解决。
孩子们用编写程序解决问题的过程中,计算机是可以直观、具象化演绎数学问题的应用过程的,孩子在这个过程中会从原理和本质上把数学概念吃透,这种情况下的孩子对数学概念的理解完全不同。
我们经常会听到一些家长说,编程属于理科性的东西,就好像有很多同学不理解,为什么文科生也要学习数学。其实早在美国2006年,编程已经开始变成和读写、数学、科学并列的学生核心能力。因为,学编程的核心,不是学计算机语言,而是学一种解决问题的思维方式。