在已然到来的AI时代,编程语言是AI时代的通用语言,帮助人控制机器,其核心则是“数学”的运用(从人脸识别、指纹识别到智能语音输入,背后都有AI技术的影子)。
说道编程与数学,大多都是谈数学对编程的重要性,学好数学更容易接受编程知识。但实际两者是相融相通的,学好了编程也对学习数学大有帮助,因为数学真的难点在于推理的逻辑思维,编程启发的就是孩子的这种潜能。
关注高考的家长可能有所耳闻,今年的高考试卷居然出现了编程题目,而且不止一个省份。这些题到底难不难,到底考察孩子哪方面的能力,我们来一起探寻一下,这是一套数学江苏卷。
不仅仅是江苏省有出编程相关的考题,其他省份也是一样。
考题一出,不少学过编程的孩子都要偷着乐了,这刚好是他们有接触过的编程知识。这也恰恰给了我们一个提示,国家正在越来越重视孩子编程能力的培养,考的不是编程而是编程的思维能力,学习真正要教给人的正是学习后留下的东西。
1 什么是数学思维?
数学思维是指够用数学的观点去思考问题和解决问题的能力。我国初、高中数学教学课程标准中都明确指出,思维能力主要是指:会观察、实验、比较、猜想、分析、综合、抽象和概括;会用归纳、演绎和类比进行推理;会合乎逻辑地、准确地阐述自己的思想和观点;能运用数学概念、思想和方法,辨明数学关系,形成良好的思维品质。
2 什么是编程思维?
所谓“编程思维(computational thinking)”就是“理解问题——找出路径”的思维过程,它由四个步骤组成:
1、分解(decomposition),把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。
2、模式识别(pattern recognition),根据经验找出相似模式,高效解决细分问题。
举个例子:假如你需要画100只猫,你会怎么办?正确的方法是找出猫的“模式”,即猫的躯干、四肢、毛发等基本元素,再不断改变局部特征就可以了。现在流行的机器学习中普遍用到这种思维。
3、抽象(abstraction),聚焦最重要的信息,忽视无用细节。
简单说就是找到问题的本质,过滤掉其他无关紧要的因素。
接着画猫的例子,我们了解了猫的特征,就可以根据这些抽象的特点,形成关于猫的整体设想,画出躯干和四肢,做出一个模型。
4、算法(algorithms),设计一步一步的解决路径,解决整个问题。
通过这四个步骤,一个复杂的问题先被拆解成一系列小问题→每一个小问题被单独检视、思考,寻找解决方案→聚焦几个重要节点,忽视小细节,形成解决思路→设计步骤执行→问题解决
。
所以,所谓“编程思维”并不是编写程序的技巧,而是一种高效解决任何问题的思维方式。
3 两者如何结合?
小时候可以惯用形象思维,但成长到一定年纪,特别是在6~7岁的时候,孩子的抽象思维就开始影响他对事物的认知,培养好抽象思维对生活学习有重大影响。
数学概念就是抽象的,但是在少儿编程的学习中,抽象的数学概念可以被转化为看得见的、具体的图像。
比如逻辑思维、模式识别等。再往深里说,编程的核心是算法,而算法的核心也是数学。现在的机器学习会大量的用到算法,其本质还是数学模型计算问题。
对于许多中学生来说,数学概念太抽象。我们可以通过编程,将抽象的数学概念转化为看得见的、会动的图像。
如果孩子想用代码建造飞机,那就要用到各种各样的数学知识,并且还要调用抽象思维的能力。
4. 思维能力对孩子未来的升学、就业同样重要
参加数学方面竞赛获得奖项对于自主招生、申请国外学校都是有很强的助力。不仅如此,数学思维能力强对于其他科技创新类竞赛、论文发表、专利写作都是有非常大的帮助。就业时,数学能力强的人才可以在一些高端领域无缝跨越,比如一个学计算机的精英,转行搞金融就很容易。
4 编程思维如何培养
编程是将人的想法“实体化"的过程,这要求我们进行更深入、更细致、更全面地思考。
编程要求我们能够对事物和流程进行各种维度上的拆分,并在不同的抽象层次上进行完整自洽的思考,这使我们有可能去解决那些规模无比庞大的问题。编程是不断解决问题的过程,也是不断完善解决问题的方法论的过程。
湖南长沙信息学竞赛