
1.1 计算思维与计算
1.1.1 计算思维概述
计算思维(Computational Thinking)是指计算机、软件以及计算相关学科的科学家和工程技术人员的思维方法。2006年,美国卡内基·梅隆大学的周以真(Jeannette M. Wing)教授提出了“计算思维”的概念,即“计算思维是运用计算科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动”,“其本质是抽象和自动化,即在不同层面进行抽象,以及将这些抽象机器化”。计算思维的目的是希望人们能够像计算机科学家一样思考,将计算技术与各学科的理论、技术与艺术融合,从而实现创新。
计算思维包括多项基本内容。
1. 二进制0和1的基础思维
计算机以二进制0和1为基础,客观世界的各种信息都可转换为0和1进行存储及处理。
2. 指令和程序的思维
指令是计算机的基本动作,计算机为了完成一个任务,可以将指令按照顺序组织为程序。计算机按照程序的控制顺序执行指令,从而完成任务。
3. 递归的思维
递归可以用有限的步骤实现近于无限的功能。递归使用类似递推的方法,如例1.1为求解自然数的阶乘问题,可以描述为函数f(n),f(n)可以通过f(n-1)求得,依此类推直到求得f(1),然后倒推得到f(2)、f(3)……,直到f(n)。有一些问题的求解必须使用递归的方法,如汉诺塔问题等。
【例1.1】 计算自然数n的阶乘问题。
阶乘可以描述如下:

函数f(n)的功能是计算n!,其描述如下:

4. 计算机系统发展的思维
计算机系统的主要发展阶段包括冯·诺依曼计算机、个人计算机、并行与分布式计算、云计算等,体现了不同时代计算手段的发展和变化,以及在各学科的应用研究。
计算机系统包括计算机硬件系统、软件系统、网络系统等。
5. 问题求解的思维
利用计算手段进行问题求解的思维主要包括算法和系统两个方面。
算法是计算机系统的灵魂,它是有穷规则的集合,规定了任务执行或问题求解的一系列步骤。问题求解的关键是设计可以在有限时间和空间内执行的算法。
系统是解决社会/自然问题的综合解决方案。设计和开发计算机系统是一项复杂的工程,不仅要采用系统化的科学思维,还要在系统开发时控制系统的复杂性,优化系统结构,提高系统的可靠性、安全性、实时性。
6. 网络化的思维
由计算机技术发展起来的网络,将计算机和各种设备连接起来的局域网、互联网,逐步实现了物-物、人-人、物-人连接的网络化环境。通过网络环境进行问题求解的网络化思维是计算思维的重要组成部分。网络化的思维丰富了社会和自然科学问题的求解手段。