学习编程思维的孩子更优秀(编程和数学思维)(1)

一则美国政令,引爆全球各国AI军备竞赛,美国、中国、加拿大、日本..... 相继有所反应,经过多年的快速发展,AI(人工智能)已在眼前。未来已来,将至已至,人工智能的列车在飞速奔驰,而人工智能国家之间的竞争,最终将是AI人才之间的竞争。

众所周知,AI时代是一个以计算机科学为基础的时代,对于人才需求也是需要精通多学科的人才,这其中就包括C ,STL,Perl,Perforce,OpenGL,以及Physx等API,传喻在之前的文章中也曾提到人工智能的核心十大技能:

1)机器学习

2)Python

3)R语言

4)数据科学

5)Hadoop

6)大数据

7)Java

8)数据挖掘

9)Spark

10)SAS

事实上,上面一系列的广泛技能,没有一个是可以短期学习和掌握的技能。从这些核心技能我们可以看出,人工智能最为重要的是计算。基本的计算机技术和数学背景是大多数人工智能程序的支柱,相互融合。线性代数和C 编程一样必要,因为机器学习需要对矩阵内的数据进行分析,而线性代数则是关于矩阵的运算。人工智能课程包括高级数学、贝叶斯网络或图形建模的研究,其中包括神经网络、物理学、工程和机器人科学、计算机科学,以及认知科学理论。

作为人工智能的基础入门,编程和数学一直是人们关注的焦点,很多人也把编程和数学等同起来,甚至出了“数学编程”、“编程数学”这样的定义,那二者究竟有何不同呢?我们今天就在这里探讨孩子从小学习编程与数学的意义,为人工智能培养核心技术人才,精英人才。

单纯地强调编程与单纯强调数学都不可取

中国人经常说:“学好数理化,走遍天下都不怕”。大家发现没有,这句话背后的逻辑是:学好数理化→掌握解决问题的能力→好找工作。而这其中要属强调抽象思维和逻辑思维的数学最重要。正因为认识到这一点,很多家长极其重视对孩子数学能力的培养。但是大家是否知道,单纯地培养数学能力已经落后于这个时代了。

我们认为:数学与编程的关系就是“你中有我,我中有你”二者互为助益

第一、编程体现的是一个人的逻辑思维,既然涉及到逻辑,必然会与数学多少有些关系。

第二、编程中必须要学习数学,并以此为基础,学习编程更加容易

二者究竟有什么关系呢?以下归纳了几点,从大家参考

1)、要掌握最基本的数字与运算知识: 二进制的概念(在哈夫曼树,哈弗曼编码等方面有直接的应用),取余的概念(在循环链表,随机数方面有应用),基础平面几何(在绘制窗口,绘制曲线,自定义按钮等图形化的地方会用到),还有些很基础的数学知识绝对不超出初中的范畴。

2)、计算机中的数学知识: 主要的一门叫做离散数学,讲的是逻辑代数的相关知识,其实在真正的编程中不会直接体现这门课的重要性,对于初学者只要知道:与或非是怎么回事,什么是集合就可以了。离散数学还涉及到一些图与树的概念,我现在先把这些划归到数据结构中。

3)、编程实际上还与你的需求有着直接的关系,有些编程领域与数学知识密不可分,比如:

A、底层学习:举个例子,如果你想设计一套你自己的windows字体,那么肯定涉及到字体平滑,字体平滑就涉及到一个很难的数学知识:插值。这个知识在数值分析中讲解,而且没有高等数学的基础,这门课想学会的可能性几乎是零……这门课主要解决的是高等数学中的问题如何用计算机解决,比如:泰勒插值,拉格朗日插值,求解一般方程或微分方程的解等,这些都是比较难的知识,但底层的很多编程都是以这些为基础的。

B 、做图形学:CG技术由于在游戏中的如日中天,使得很多初高中生对图形学神往已久,但却不知计算机图形学的知识是建立在很多大学数学课程的基础上的。尤其是图形学理论的学习,没有线性代数的基础是根本看不懂的,而在三维视图方面又要涉及到高等数学中极坐标的知识。很多算法,比如梁-Baskey算法对于平面几何分析水平的要求是非常高的!

C、算法学习:学习算法与其说数学要好,还不如说成是智力要好。比如分治法、动态规划算法,回溯法等对于问题的前期分析要求很高,尤其是列出递归方程,这些都好像是在考智力。还有一些,比如图算法,树的应用,排序,查找,这些知识涉及到计算机专业的另一门课程:数据结构,这门课是计算机专业的核心课程之一,也是专业与非专业的最大区别。这门课对数学要求不高,但对于一个人的思维要求比较高。还有像计算几何的问题,那就是纯数学问题了。

第三、虽然编程在很多地方都与数学有关,要求也很高,也许会有很多人畏之退却,但编程也有某些方面对于数学的要求相对较低,这种相对较低是由于不管哪方面都会涉及到一些基础的数学算法。总的来说,越往高层,对数学的要求越低,比如MFC,那些网络编程,系统编程都是封装好的,但对于一个系统来说整体的规划和设计更关键,就是说前期的需求分析、逻辑结构设计和物理结构设计比编码更重要。

总的来说,人工智能时代核心是计算,计算的核心就是编程,编程使得人工智能时代的语言,因此编程必须要学习。编程是计算机的科技的子集,而计算机科学涉及到数学很多,以计算机所有分支(计算机图形学、计算物理、机器学习、密码学……)涉及到很多数学知识,在很多场合,编程需要使用的算法,而算法设计到很多数学。所以单纯学习编程,没有数学支撑,编程的作用也不可能得到很好的发挥。所以说,单纯的强调数学学习已经落伍,单纯的学习编程而忽略数学,编程的作用在应用中也不能得到很好应用。

编程与数学要同时学习,相互统一,为人工智能时代培养具备“编程思维”与“数学思维”才是成就AI时代精英的最正确的打开方式。

什么是数学思维?

数学思维也就是人们通常所指的数学思维能力,即能够用数学的观点去思考问题和解决问题的能力。比如转化与划归,从一般到特殊、特殊到一般,函数/映射的思想,等等。一般来说数学能力强的人,基本体现在两种能力上,一是联想力,二是数字敏感度。前者能够把两个看似不相关的问题联系在一起,这其中又以构造能力最让人折服;后者便是大多数曝光的所谓geek,比如什么Nash之类的。当然也有两种能力的结合体。

学习编程思维的孩子更优秀(编程和数学思维)(2)

我国初、高中数学教学课程标准中都明确指出,思维能力主要是指:会观察、实验、比较、猜想、分析、综合、抽象和概括;会用归纳、演绎和类比进行推理;会合乎逻辑地、准确地阐述自己的思想和观点;能运用数学概念、思想和方法,辨明数学关系,形成良好的思维品质。

什么是编程思维?

编程思维的概念有些大,编程思维有的说成就是“理解问题——找出路径”的思维过程,分为分解、模式识别、抽象、算法四个步骤。

这里我们重点介绍作为编程思维核心思想的计算思维。

2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在美国计算机权威期刊《Communications of the ACM》杂志上给出,并定义的计算思维(Computational Thinking)。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。

学习编程思维的孩子更优秀(编程和数学思维)(3)

计算思维吸取了问题解决所采用的一般数学思维方法,现实世界中巨大复杂系统的设计与评估的一般工程思维方法,以及复杂性、智能、心理、人类行为的理解等的一般科学思维方法。

优点

计算思维是建立在计算过程的能力和限制之上,由机器执行。计算方法和模型使我们敢于去处理那些原本无法由个人独立完成的问题求解和系统设计。

内容

计算思维中的抽象完全超越物理的时空观,并完全用符号来表示,其中,数字抽象只是一类特例。

与数学和物理科学相比,计算思维中的抽象显得更为丰富,也更为复杂。数学抽象的最大特点是抛开现实事物的物理、化学和生物学等特性,而仅保留其量的关系和空间的形式,而计算思维中的抽象却不仅仅如此。

编程与数学融合是精英人才培养核心

计算思维是 数学和工程思维的互补与融合 , 计算机科学在本质上源自数学思维,因为像所有的科学一样,其形式化基础建筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统,基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够设计超越物理世界的各种系统 。

从 AI人才培养的角度,由于基本的计算机技术和数学背景是大多数人工智能程序的支柱,所以AI是时代离不开既懂编程,又具有很强数学功底的核心人才。人才是人工智能产业发展的重要支柱。

在中小学阶段,用编程来学习数学,让数学变得更加容易

数学就中国学生看来,既抽象又枯燥,机械式死记硬背模式,无法灵活变通,而当小孩子自己操作编程时,也能体会到将数学概念变成驱动程序和动画的“黑魔法”,展开“数学实验”,形象理解数学背后的逻辑,好玩有趣。

比如说,为什么三角形是最稳定的结构?为什么两点之间,直线距离最短?当孩子使用编程语言来操作时,就会有更加直观的感受和体验。

例如下图,国外一位爸爸,为了帮助女儿理解“多边形的边数增加时,图形会随之改变,当边数增加到非常大时, 多边形会变成一个圆。”这个概念时,他在电脑上用编程建了个这样的模型 。

学习编程思维的孩子更优秀(编程和数学思维)(4)

类似这种通过编程来学习数学的案例很多,如下图

学习编程思维的孩子更优秀(编程和数学思维)(5)

学习编程思维的孩子更优秀(编程和数学思维)(6)

学习编程思维的孩子更优秀(编程和数学思维)(7)

学习编程思维的孩子更优秀(编程和数学思维)(8)

所以在中小学普及编程与数学的融合课程,不但可以有利于数学的学习,而且还可以为未来人工智能时代培养行业精英,将来为企业输送更多优秀的人才。

Scratch编程数学师训专业课程

2019年02月28-03月28日,15课时精品课程

20:00-21:00(每隔一天)

学习编程思维的孩子更优秀(编程和数学思维)(9)

肖金辉

原好未来著名金牌数学讲师

知名STEAM品牌机构编程数学教研总监

现任匠心编程数学工作室创始人

搜索传喻教师第一课堂小程序

学习Scratch编程数学师训专业课程

传喻使命:致力于科技教育人才的培养与储备

,