从一道题目的解法看数学思维、计算思维、算法及编程之间的关系

文 / 李辛

来看一道程序设计课中经常使用的一道题目,求解S=1+2+3+……+N

众所周知,对于这个问题,数学解法与编程解法有很大区别,产生这种区别的原因是数学与计算机在解决问题的方式上有所差异,而这种差异的实质,是两种思维方式的不同,这两种思维方式就是数学思维计算思维

数学思维的特征是概念化,抽象化和模式化,在解决问题时强调定义和概念,明确问题条件,把握其中的函数关系,通过抽象、归纳、类比、推理、演绎和逻辑分析,将概念和定义、数学模型、计算方法等与现实事物建立联系,用数学思想解决问题。

计算思维是按照计算机科学领域所特有的解决方式,对问题进行抽象和界定,通过量化、建模、设计算法和编程等方法,形成计算机可处理的解决方案。

对比后可以发现,数学思维是人的大脑的思维,解决问题的方式是人脑所擅长的抽象、归纳、类比、推理、演绎和逻辑分析等;计算思维同样是人的大脑的思维,但解决问题却是在数学思维的基础上,运用计算机科学领域的思想、原理与方法,采用计算工具能够实现的方式来进行。

也就是说,计算思维与数学思维在本质上非常相似,只是在实现问题的解决方案时要依靠不同的执行对象。经过数学思维所形成的解决方案,可以单纯依靠人的大脑来实现,而经过计算思维所形成的解决方案,却大都可以借助计算工具,通过机器的“自动执行”来实现。

例如上面提到的问题,求解S=1+2+3+……+ n。

数学思维是对问题进行抽象和推理,归纳成自然数求和公式:S= n *(1+ n)/2 ,这种处理方式非常符合人类“依靠大脑进行运算”的特点;而计算思维同样是对问题进行抽象和推理,却采用符合计算机工作特性、执行效率更高的“直接从1累加到n”的处理方式。

因此,从狭义上说,计算思维源于数学思维,两者具有一致性,所不同的是,计算思维在继承数学思维的同时,结合了计算机科学的思想特征,也就是在实际理论的基础上,注重考虑客观环境的条件限制,提出可行方案。

二、计算思维与算法及程序设计的关系

算法思想并不等同于计算思维,它需要考虑更加实际的“计算”问题。计算思维是一种抽象的思维活动,算法则是把这种思维活动具象化,描述成具体的方法与步骤。

程序设计则是算法在计算机上的正确实现,它是计算思维的最终结果。

例如同样的问题:求解:S=1+2+3+……+ n。通过计算思维可以得到“直接从1累加到n”的解决方案;算法则要考虑采用何种方法、通过何种步骤来实现这个方案,比如,如何输入与输出,怎样用循环实现累加等;程序设计是将算法所描述的方法与步骤转换成计算机所能理解和操作的指令代码,比如使用“For/Next”语句进行循环、用“S=S+i”赋值语句实现累加等,使程序能够在计算机上运行并获得正确结果。

由此看来,数学思维是计算思维的基础,计算思维是解决问题的一种思考方式,算法是对计算思维的具体设计,程序设计则用于实现算法设计。

综上所述,构建计算思维活动的基本要素是“由问题引发思维、由思维产生算法、由算法形成程序”,它是体现计算思维的关键,是人脑的独立思考活动,所形成的问题解决方案是多样的,并且不受编程语言的限制,也就是我们所说的“一个问题可以有不同的解决方案,一个方案可以有不同的算法设计,一个算法可以用不同的编程语言来实现”。因此,在教学中应该着重体现利用计算思维解决问题的完整过程,而不是单一的教会学生某种编程语言。

潍坊学编程,免费咨询

        潍坊首家专注少儿编程教育,专业的课程体系,优秀的师资力量,丰富的教学经验,逻辑思维能力提升,高含金量的全国比赛,是您孩子学少儿编程的首选!
详细咨询:18678002015(微信同号)

本文内容来自互联网收集,纯属为了学习之用,如有侵权,请联系删除。本文观点不代表青少儿编程网立场,转载请联系原作者。

(3)
青少儿编程网青少儿编程网
上一篇 2019年12月14日 下午4:40
下一篇 2019年12月14日 下午6:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注