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. 网络化的思维
由计算机技术发展起来的网络,将计算机和各种设备连接起来的局域网、互联网,逐步实现了物物、人人、物人连接的网络化环境。通过网络环境进行问题求解的网络化思维是计算思维的重要部分。使用网络化的思维丰富了社会和自然科学问题的求解手段。
1.1.2 计算思维与各学科的关系
众所周知,计算思维对计算机相关学科的影响不言而喻,它还与其他学科相结合,促进其他学科的研究和创新,同时为各学科专业人才提供了计算手段。
1. 应用计算手段促进各学科的研究和创新
各学科应用计算手段进行研究和创新,将成为未来各学科创新的重要手段。
例如,3D打印技术可以生产机械设计的模型;生物科学利用计算机技术进行各种计算、药物研制等;自行车行业利用计算机和互联网技术产生了ofo、摩拜等共享单车公司。
2. 各学科创新自己的新型计算手段
各学科处理利用已有的计算手段,还可以研究支持本学科创新和研究的新计算手段。
例如,从事音乐创作的人可以研发创作音乐的计算机软件;从事建筑设计的人可以研发建筑设计的辅助软件;研究电影艺术的人可以研发视频编辑和动画设计的软件等。
3. 计算思维可以帮助培养各专业的人才
各专业的学生可以学会很多计算手段的应用和技能,如Office、Photoshop等各种软件工具,可以解决一些实际问题。但是如果学生只掌握这些软件工具,而不掌握计算思维,那么在未来就不能融会贯通、自我学习专业所需要的新工具和软件,也将会缺乏使用计算工具进行创新的能力。
各专业的大学生掌握了计算思维能力,就可以自学掌握各种新软件工具,甚至创新本专业的计算手段。