
0.4 计算思维
理论科学、实验科学和计算科学作为科学发现三大支柱,正推动着科技发展。一般而论,三种科学对应着三种思维:其中,理论科学对应着理论思维或称为推理思维,以推理和演绎为特征,以数学学科为代表;实验科学对应着实验思维,以观察和总结自然规律为特征,以物理学科为代表;计算科学对应着计算思维:以设计和构造为特征,以计算机学科为代表。
计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。
计算思维是计算机科学发展对人类思维产生的特定影响,现在已成为一种基本思考方式与技能。用计算机解决实际问题的步骤:分析问题、建立模型、设计算法,以及编写程序。计算思维的本质是计算手段机械化,计算过程形式化,计算执行自动化。
当我们必须求解一个特定的问题时,首先会问:解决这个问题有多么困难?怎样才是最佳的解决方法?计算机科学根据坚实的理论基础来准确地回答这些问题。表述问题的难度就是工具的基本能力,必须考虑的因素包括机器的指令系统、资源约束和操作环境。计算思维可以总结为合理抽象、高效算法。
程序设计语言包含着如下计算思维的概念。
1.数据的组织
数据在处理前,根据需要可能划分不同的类型,进行不同方式的处理。基本类型不满足要求时,就需要使用高级的数据结构。对于复杂的处理对象,还可以将数据与操作封装起来。这部分内容主要在基本数据类型、数组、面向对象思想等章节中进行介绍。
2.结构的模块化
复杂的问题可以将问题分割成若干子问题逐个求解,这涉及程序设计中模块化的思想。这个思想主要体现在面向对象与过程这一部分。
3.数据的传递
不同对象或者不同模块之间需要进行数据的交换或者消息的传递,对于数据传递或共享的问题,在程序设计中主要采用变量作用域以及模块间参数传递解决。这些内容包含在本书中变量、过程等章节中。
4.数据的处理
数据处理中,涉及一些基本算法:排序、查找、数据添加、删除、求素数、求公约数等;还有一些算法策略的选择:穷举、递归等。本书在数组、循环等章节涉及这些算法与算法策略。