首页 > 范文大全 > 正文

计算思维与大学计算机课程改革的基本思路

开篇:润墨网以专业的文秘视角,为您筛选了一篇计算思维与大学计算机课程改革的基本思路范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:当前已经形成了“大学计算机”课程核心价值就是培养学生的“计算思维”、应该以计算思维为导向进行大学计算机课程改革的共识。但怎样培养计算思维,大学计算机课程究竟讲授什么内容才是培养计算思维,非计算机专业学生对计算思维的需求究竟是什么?针对这些问题,本文从计算技术与计算系统的发展阐述了“核心”的计算思维,给出了大学计算机所面对的知识空间,进而通过分析非计算机专业学生未来对计算思维能力的需求,给出了大学计算机课程改革的一个解决方案。

关键词:计算思维;大学计算机;计算系统;非计算机专业

从20世纪90年代末期教育部倡议在大学开展“计算机文化”教育开始,经历了以流行软件学习与掌握为主的“计算机文化基础”教育阶段,以素养与应用驱动的计算机共性知识讲授为主的“计算机应用基础”教育阶段。随着认识的不断深入,一些问题和矛盾也困惑着人们,如面对专业教育与计算机教育平衡的学时数问题、面对快速发展的计算机技术的教学内容取舍问题、理论内容与应用技能的教学与训练平衡问题等。在这样的背景下,陈国良院士和李廉教授发起并组织了若干次关于“计算思维”的研讨会,对什么是“计算思维”及计算思维与理论思维、实验思维的关系作出了科学的论述。教育部高等学校计算机基础课程教学指导委员会和高等教育出版社等组织了若干次大学计算机论坛,探讨了“计算思维”的形式和内涵等。以哈尔滨工业大学、浙江大学等为代表的高等院校已经对“大学计算机”的计算思维教学做了若干年的改革实践,积累了很多经验,C9院校联合发表了关于以计算思维改造大学计算机课程的联合声明,这些都为大学计算机面向计算思维教育的改革奠定了很好的基础。可以说大家已经形成了“大学计算机”课程的核心价值就是培养学生的“计算思维”、应该以计算思维为导向进行大学计算机课程改革的共识,面向“计算思维”的大学计算机教育的基本思路已经深入人心。但怎样培养计算思维,大学计算机课程究竟讲授什么内容才是培养计算思维,非计算机专业学生对计算思维的需求究竟是什么?针对这些问题,本文试图给出一个解决方案。

一、从计算技术与计算系统的发展看计算思维

大学计算机课程究竟讲授什么内容才是培养“计算思维”呢?计算(机)学科存在着哪些“核心的”计算思维?哪些计算思维对非计算机专业学生可能会产生影响和借鉴呢?对这些问题的探讨将有助于大学计算机课程教学内容的选取和确定。我们先从计算技术与计算系统的发展看“核心”的计算思维,即大学计算机所面对的“知识空间”。

自20世纪40年代出现电子计算机以来,计算技术与计算系统的发展好比一棵枝繁叶茂的大树,不断地成长与发展。为此本文将计算技术与计算系统的发展绘制成一棵树,如图1所示,我们称其为“计算之树”。

1.“计算之树”的树根――计算技术与计算系统的奠基性思维

计算之树的树根体现的是计算技术与计算系统的最基础、最核心的或者说奠基性的技术或思想,这些思想对于今天乃至未来研究各种计算手段仍有着重要的影响。仔细分析这些思想,本文认为“0和1”、“程序”、“递归”三大思维最重要。

(1)“0和1”的思维。计算机本质上是以0和1为基础来实现的,现实世界的各种信息(数值性和非数值性)都可被转换成0和1,进行各种处理和变换,然后再将0和1转换成满足人们视、听、触等各种感觉的信息。0和1可将各种运算转换成逻辑运算来实现,逻辑运算又可由晶体管等元器件实现,进而组成逻辑门电路再构造复杂的电路,由硬件实现计算机的复杂功能,这种由软件到硬件的纽带是0和1。“0和1”的思维体现了语义符号化、符号0(和)1化、0(和)1计算化、计算自动化、分层构造化、构造集成化的思维,是最重要的一种计算思维。

(2)“程序”的思维。一个复杂系统是怎样实现的?系统可被认为是由基本动作(基本动作是容易实现的)以及基本动作的各种组合所构成(多变的、复杂的动作可由基本动作的各种组合来实现)。因此实现一个系统仅需实现这些基本动作以及实现一个控制基本动作组合与执行次序的机构。对基本动作的控制就是指令,而指令的各种组合及其次序就是程序。系统可以按照“程序”控制“基本动作”的执行以实现复杂的功能。计算机或者计算系统就是能够执行各种程序的机器或系统。指令与程序的思维也是最重要的一种计算思维。

(3)“递归”的思维。递归是计算技术的典型特征,递归是可以用有限的步骤描述实现近于无限功能的方法,有递归过程、递归算法、递归程序。递归过程指的是能调用自身过程的过程,递归算法指的是包含递归过程的算法,递归程序指的是直接或间接调用自身程序的程序。它是可以自身调用自身、高阶调用低阶来实现问题求解的一种思维。它借鉴的是数学上的递推法,在有限步骤内,根据特定法则或公式,对一个或多个前面的元素进行运算得到后续元素,以此确定一系列元素的方法。递归思维也是最重要的一种计算思维。

2.“计算之树”的树干――通用计算环境的进化思维

计算之树的树干体现的是通用计算环境暨计算系统的发展与进化。深入理解通用计算系统所体现出的计算思维对于理解和应用计算手段进行各学科对象的研究,尤其是应用专业化计算手段的研究有着重要的意义。这种发展,本文认为可从四个方面来看。

(1)冯・诺依曼机。简单而言,冯・诺依曼计算机由存储器、控制器、运算器、输入设备、输出设备所构成。程序和数据事先存储于存储器中,由控制器从存储器中一条条地读取指令,分析指令,并依据指令按时钟节拍产生各种电信号予以执行。它体现的是程序如何被存储、如何被CPU(控制器和运算器)执行的基本思维。理解冯・诺依曼计算机如何执行程序对于算法和程序设计有重要的意义。

(2)个人计算机。个人计算机是由CPU、内存储器、外存储器(磁盘等)及输入设备、输出设备等构成。内存、外存等构成了存储体系。随着存储体系的建立,程序被存储在永久存储器(外存)中,运行时被装入内存,它如何被存储在外存中,如何被装入内存、如何被CPU执行,如何充分地利用计算机的资源(CPU、内存和外存),这就需要操作系统――专门负责管理计算资源的一个系统软件。因此说个人计算机体现了在存储体系环境下程序如何在操作系统协助下被硬件执行的基本思维。

(3)并行与分布计算环境。并行与分布计算环境通常是由多CPU、多磁盘阵列等构成的具有较强并行处理能力的复杂的服务器环境,这种环境通常应用于局域网络/广域网络的计算系统的构建,体现了在复杂环境下(多核、多存储器)程序如何在操作系统协助下被硬件执行的基本思维。在程序执行过程中还需充分发挥多核、多存储器的性能,充分发挥C/S结构和B/S结构的性能等。

(4)云计算环境。云计算环境通常由高性能计算结点(多CPU)和大容量磁盘存储结点所构成。为充分利用计算结点和存储结点,其能够按使用者需求动态配置形成所谓的“虚拟机”和“虚拟磁盘”,而每一个虚拟机和虚拟磁盘则像一台计算机一个磁盘一样来执行程序或存储数据。一个计算/存储结点可按照使用者需求动态的配置成多个虚拟机/虚拟磁盘等。它体现的是按需索取、按需提供、按需使用的一种服务化的思维。

通用计算环境的进化思维体现了不同抽象层面的计算系统的基本思维,其核心和本质是“抽象”与“自动化”特征,即:机器层面――协议(抽象)与编码器/解码器(自动化),解决机器与机器之间的交互问题;人―机层面――语言(抽象)与编译器(自动化),解决人与机器之间的交互问题;业务层面――模型(抽象)与执行引擎(自动化),解决业务系统与计算系统之间的交互问题。

3.“计算之树”的树枝――计算与(社会/自然)环境的融合思维

计算之树的树枝体现的是计算学科的各个分支研究方向,如智能计算、普适计算、个人计算、社会计算、企业计算、服务计算等;也体现了计算学科与其他学科相互融合产生的新的研究方向,如计算物理学、计算化学、计算语言学、计算经济学等。由树干到树枝,我们可将其划分为三个层次:(1)“计算机”层次。着重于计算机器(含系统软件等)的设计、建造、开发和应用研究。(2)“计算机科学”层次。着重于计算机和可计算系统的研究。(3)“计算科学”层次。着重于面向社会各个领域以及面向各个学科融合的计算手段的研究及其应用。

由计算机到计算科学体现了计算技术与社会/自然环境的融合,体现了由狭义的计算机的研究发展为更广泛的面向社会/自然问题的计算技术的研究,体现了计算学科是由计算机学科与其他学科相互融合所形成的具有更广泛研究对象的学科。

由树干到树枝,我们还可将其划分为另外三个层次:(1)“计算机网络”层次。着重在局域网、广域网的技术及其应用,强调机器之间互联互通。(2)“互联网”层次。着重在信息互联层次,互联网被看做是拥有无限广义资源的网络,强调信息之间的互联互通。(3)“未来互联网”或“智慧网络”层次。今天的网络技术发展已由单纯的计算机网络、信息网络,发展为感知与连接各个物理对象的“物联网”、连接不同数据/知识载体的知识与数据网、连接不同服务组织所提供不同类别服务的服务网络以及连接不同组织和人员的社会/社交网络等,未来互联网将社会/自然环境变成了一个大规模网络化的环境,像水网、电网一样,网络化改变着人们的工作与生活环境,也改变着人们的思维方式。

由树枝到树干,体现了社会/自然的计算化,即社会/自然现象的计算的表达与推演,着重强调利用计算手段来推演/发现社会/自然规律。而由树干到树枝,体现了计算/求解的自然化,着重强调用社会/自然所接受的形式或者说与社会/自然相一致的形式来展现计算及求解的过程与结果。

4.“计算之树”交替促进与共同进化的问题求解思维――算法与系统

利用计算手段进行面向社会/自然的问题求解思维,主要包含交替促进与共同进化的两个方面:算法和系统。

(1)算法。算法被誉为计算系统之灵魂,算法是一个有穷规则之集合,它用规则规定了解决某一特定类型问题的运算序列,或者规定了任务执行或问题求解的一系列步骤。问题求解的关键是设计算法,设计可实现的算法,设计可在有限时间与空间内执行的算法,设计尽可能快速的算法。

(2)系统。尽管系统的灵魂是算法,但仅有算法是不够的,系统是计算与社会/自然环境融合的统一体,它对社会/自然问题,提供了泛在的、透明的、优化的综合解决方案,系统是由相互联系、相互作用的若干元素构成且具有特定结构和功能的统一整体。设计和开发计算系统(如硬件系统、软件系统、网络系统、信息系统、应用系统等)是一项综合的复杂的工作。如何对系统的复杂性进行控制,化复杂为简单?如何使系统相关人员理解一致,采用各种模型(更多的是非数学模型,用数学化的思维建立起来的非数学的模型)来刻画和理解一个系统?如何优化系统的结构(尤其是整体优化),保证可靠性、安全性、实时性等系统的各种特性?这些都需要“系统”或系统科学思维。

算法和系统就好比是:系统是“龙”,而算法是“睛”,画龙要点睛。

二、计算思维对非计算机专业人才思维的影响:一个案例剖析

前面介绍了计算思维的知识空间。接下来我们要分析一下,哪些计算思维对非计算机专业人才会产生重要影响呢?或者说非计算机专业人才对计算思维的需求是怎样的呢?我们从一个成功案例来谈。

1.John Pople――因计算机应用于化学领域而获得诺贝尔化学奖

有很多非计算机专业人才基于计算思维取得成功的案例。本文仅举一个案例,就是1998年诺贝尔化学奖的获得者波普(John Pople),他获得诺贝尔奖是因为“作为把计算机应用于化学研究的主要科学家,其建立了可用于化学各个分支的一整套量子化学方法,把量子化学发展成一种工具,并已为一般化学家所使用,以便在计算机里模拟分子赋予它们异种特性的方法,研究分子间如何相互发生作用并如何随环境而改变,从而使化学迈向用实验和理论共同研究探索分子体系各种性质的新时代”。这个工具就是“Gaussian量子化学综合软件包”,它可实现如下方面的研究:分子能量和结构,键和反应能量,分子轨道,多重矩,原子电荷和电势,振动频率,红外和拉曼光谱,核磁性质,极化率和超极化率,热力学性质,反应路径计算等。它已成为研究许多化学领域课题的重要工具,例如取代基的影响,化学反应机理,势能曲面和激发能、周期体系的能量预测,结构和分子轨道等。

2.从Gaussian工具看到的计算思维的影响

从波普所开发的Gaussian软件包,我们可以看出计算思维对其是有很大影响的。例如:

(1)符号化、计算化、可视化思维的影响。如何将分子及其特性表达为计算机可以处理、可以显示的符号,将分子及其对象转化为“计算对象”。

(2)算法思维的影响。如何计算分子轨道,如何计算密度,如何计算库仑能,如何计算分子的各种特性,这就需要算法――初始轨道猜测算法、密度拟合近似算法、库仑能算法等。

(3)系统思维的影响。如何形成完整的工具,这就需要“计算系统”的基本思维。如通过语言/模型来让研究者表达分子及其特性,表达其所要进行的研究内容,通过编译器/执行引擎,即调用计算机程序来按语言/模型表达的内容进行分析与计算等。

(4)聚集数据成“库”的思维。将信息聚集成“库”,基于“库”所聚集的大量信息进行分析与研究,可发现规律和性质。

(5)物理世界与信息世界的转换思维。这是信息处理的一般思维,即协议与编码器/解码器的思维,以采集、转换、存储、显示数据,实现物理世界与信息世界的转换。

可以看出,“0和1”、“程序”、“递归”、“算法”、“系统”以及通用计算环境等都对其产生了影响,可以说任何一种计算手段的研究都离不开一些“核心”的计算思维。

3.非计算机专业人才未来对计算思维能力的需求

波普的成功体现了计算思维对非计算机专业人才的一种影响,这种影响是深远的。进一步分析我们可看出非计算机专业学生毕业后将可能利用计算机从事两类工作。

(1)应用计算手段进行各学科研究和创新。不可否认,研究和应用本学科的理论与技术或者艺术等,是非计算机专业学生未来的主要工作内容。面对科学、技术或艺术研究的新形势,传统的手段如实验-观察手段、理论-预测手段等将会受到很大的限制,例如实验产生的大量数据其结果是很难通过观察手段获得的,此时不可避免地需要利用计算手段来辅助创新,利用计算手段来实现理论与实验的协同创新。

各学科均可应用计算手段进行学科问题的研究和创新。例如,艺术类学科可通过一些计算模型产生大量数据,通过计算、模拟与仿真等获取创新灵感,产生新的艺术品或艺术形态。再如,生物学科利用各种仪器获取大量实验数据,通过计算、模拟与比较分析等研究细胞、组织、器官等的生理、病理与药理机制,产生疾病治疗的新手段、新药物等。

著名的计算机科学家、1972年图灵奖得主Edsger Dijkstra说:“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响着我们的思维能力。” 利用计算手段进行相关内容的研究将成为未来各学科人才进行创新的主要手段之一。

(2)开发支持各学科研究创新的新型计算手段。虽然应用已有的计算手段进行学科研究创新很重要,然而如何将通用计算手段与各学科具体研究对象结合起来形成面向不同学科对象的新型计算手段却更为重要。换句话说,利用一条生产线生产汽车很重要,但制造能够生产汽车的新生产线却更体现了创新。因此研究支持各学科研究创新的新型计算手段,如诺贝尔化学奖获得者波普所做的工作,也将是非计算机专业学生未来的工作内容之一。

创新需要复合。这种面向不同学科创新的新型计算手段的研究尤其需要复合型人才,即一方面理解学科专业的研究对象与思维模式,另一方面理解计算思维。

4.计算思维可有效帮助非计算机专业人才跨越鸿沟

当前的非计算机专业计算机教学仅关注计算机及其通用计算手段应用知识与应用技能的教学,难以满足非计算机专业学生未来计算能力的需求,难以跨越由通用计算手段学习到未来的专业计算手段应用与研究之间的鸿沟。然而若培养的是计算思维,计算思维与其他学科的思维相互融合,便可促进各学科学生创造性思维的形成,可以说计算学科的普适思维是各学科学生创造性思维培养的重要组成部分。如图2所示。

为什么说计算思维可有效帮助非计算机专业人才跨越鸿沟呢?

思维的特性决定了它能给人以启迪,给人创造想象的空间。思维可使人具有联想性、具有推展性;思维既可概念化又可具象性,具有普适性;知识和技能具有时间性的局限,而思维则可跨越时间性,随着时间的推移,知识和技能可能被遗忘,但思维却可能潜移默化地融入未来的创新活动中。

具体而言,思维是由一系列知识所构成的完整的解决问题的思路。思维的每一个环节可能需要知识的铺垫,基于一定的知识可理解每一个环节,通过“贯通”各个环节进而理解“解决问题”的整个思维。这种贯通性的思维是“可实现的思维而非实现的细节,尽管其可抽象化、概念化,但能留在人们记忆中的可能是其可视化、形象化的表现,即应将思维以可实现、可视化的方式而不是简单化、概念化的方式传授给学生,把知识贯穿于思维的讲解与训练中。

计算机学科中体现了很多这样的思维,这些典型的计算思维对非计算机专业学生的创造性思维培养是非常有用的,尤其是对其创新能力的培养是必要的。如“0和1”“程序”有助于学生形成研究和应用自动化手段求解问题的思维模式,如“并行与分布计算”、“云计算”有助于学生形成现实空间与虚拟空间、并行分布虚拟解决社会自然问题的新型思维模式,“算法”和“系统”有助于学生形成化复杂为简单、层次化结构化对象化求解问题的思维模式,“数据化”“网络化”有助于学生形成数据聚集与分析、网络化获取数据与网络化服务的新型思维模式。借鉴通用计算系统的思维,研制支持生物技术研究的计算平台,研制支持材料技术研究的计算平台等。大学计算机就是要挖掘这样的思维,让同学不仅有“思维”,更要使学生看见并确定这种“思维”是能够实现的。

周以真教授将计算思维提升到一个新的高度,即“计算思维是运用计算科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动”,其本质就是抽象与自动化,即在不同层面进行抽象,以及将这些抽象“机器化”。其目的是希望所有人都能学会像计算机科学家一样思考,将计算技术与各学科理论、技术与艺术进行融合,实现新的创新。

三、面向计算思维的大学计算机课程改革思路

结合前述的非计算机专业的能力需求,通过合理选择可形成大学计算机课程的核心内容,包括如下:

计算技术与计算系统的奠基性思维;

通用计算环境的进化思维;

算法与系统――交替促进与共同进化的问题求解思维;

计算与(社会/自然)环境的融合思维――数据化与网络化思维。

具体内容组织可有多种形式,本文给出以下两种不同的组织方式:

(1)专题化。一些典型的计算思维,如“0和1”、“程序与过程”、“递归”、“并行与分布”、“虚拟化”、“数据抽象”等适合于以专题形式进行组织,通过典型的社会生活现象及其求解思想逐渐深入到计算系统的求解思想,围绕着专题,通过多样化的、形象化的、概念可相互映射的(注:指社会/自然中的概念与计算中的概念的映射)案例来阐述相关的思想。可使学生由浅入深地理解计算思维,并将其和社会生活现象有机地联系在一起,丰富其联想能力,促进其复合型思维的形成。

(2)系统化。为使学生对计算技术与计算系统有一个系统性的了解,也可以以系统化的方式逐层讲解计算思维。如首先介绍计算系统的基本思维(计算技术与计算系统的奠基性思维,通用计算环境的进化思维),然后介绍问题求解的框架(算法和系统),再进一步介绍一些典型的计算思维,如典型的算法思维、数据抽象与分析思维、网络化思维等。

通过以上内容的选择与组织,结合适当的教学方式以及合适的教学案例,笔者相信大学计算机课程是可以达到培养学生计算思维的目标的。但需注意:一定的“知识”是“思维”理解的前提,思维是将知识贯通起来所形成的问题求解的思路,但将思维转换成能力则还需要大量的训练。建议大学计算机第一门课程着重于通识性思维的“讲解”,而其他课程则着重于思维的“训练”,通过不同课程的合理分工来达到培养计算思维的目的。

计算思维包括了丰富的内容,由计算技术与计算系统的奠基性思维、通用计算环境的进化思维、交替促进与共同进化的问题求解思维(算法和系统)、计算与社会/自然环境的融合思维(数据化和网络化)等构成。非计算机专业人才未来可能应用计算手段进行各学科创新,也可能开发支持各学科研究创新的新型计算手段。计算思维可有效帮助非计算机专业人才跨越从通用计算手段的学习与训练到未来专业计算手段应用与研究之间的鸿沟。大学计算机课程的核心价值在于培养学生的计算思维,通过计算思维的培养促进学生创造性思维的形成,这也是大学计算机课程改革的重要思路之一。

[本文得到教育部大学计算机课程改革项目“以计算思维为导向的大学计算机基础课程研究”、“理工类高校计算思维与计算机课程研究及教材建设”的支持。此外,作者要感谢陈国良院士,陈院士站在更高的高度谈计算思维与计算科学,引领大学计算机教育教学改革,对本文有重要影响]