首页范文大全计算机学科的基本问题十篇计算机学科的基本问题十篇

计算机学科的基本问题十篇

发布时间:2024-04-25 20:40:02

计算机学科的基本问题篇1

关键词 计算构建哲学

1引言

计算学科的飞速发展,改变着人们的生活、工作、学习和交流方式。计算意味着什么?计算学科意味着什么?这些都成为哲学工作者和从事计算机研究、开发的人员必须面对的重大的元问题。建构计算学科根本问题的理论框架,形成计算学科的元理论――计算学科中的哲学问题就成为当务之急。“计算学科中的哲学问题”的提出是在计算机日益成为人们生活重要组成部分时,从哲学的层面对计算机文化现象与计算学科的重新定位和反思。

2计算学科中的哲学问题提出的客观依据

2.1计算学科的发展要求从哲学高度对计算学科进行理论阐释

计算学科包括算法理论、分析、设计、效率、实现和应用的系统的研究。全部计算学科的基本问题是,什么能(有效地)自动进行,什么不能(有效地)自动进行,它来源于对数理逻辑、计算模型、算法理论、自动计算机器的研究,形成于20世纪30年代后期。经过几十年的发展,计算学科业已形成了一个庞大的知识体系。主要体现在三大层面:

(1)计算学科的应用层。它包括人工智能应用与系统,信息、管理与决策系统,移动计算、计算可视化、科学计算等计算机应用的各个方向。

(2)计算学科的专业基础层。它是为应用层提供技术和环境的一个层面,包括软件开发方法学、计算机网络与通信技术、程序设计科学、计算机体系结构和电子计算机系统基础。

(3)计算学科的基础层。它包括计算的数学理论、高等逻辑等内容。

还有支撑这三个层面的理工科基础科目,包括物理学(主要是电子技术科学)和基础数学(含离散数学)等。

从计算学科这一庞大知识体系中不难发现,它欠缺计算学科中的哲学问题支撑。计算学科的进一步发展需要从哲学层面对计算学科中的根本问题、重大问题进行理论阐述、分析和评价。因而提出计算学科中的哲学问题就成为计算学科发展的必然趋势。

2.2计算教育的现状催化计算学科中的哲学问题

aCm和ieee/CS是美国在计算教育研究领域最有影响的组织。在1989年aCm提交的《ComputingasaDiscipline》报告中,它不仅第一次规定了计算学科的定义,回答了计算学科中长期以来一直争论的一些问题,更重要的在于它为计算教育创建了一个“新的思想方法”(anewwayofthinking),这种“新的思想方法”是对计算教育科学几十年来的概括和总结,也是美国aCm和ieee/CS联合发表的《ComputingCurricula1991》报告(简称CC91)以及《ComputingCurricula2001》报告(简称CC2001)的基本指导思想,其实这种“新的思想方法”的实质就是计算学科中的哲学问题的内容。

在国内是结合我国的实际情况进行研究,以aCm和ieee/CS的报告为依据进行分析研究的。中国计算机学会教育委员会和全国高等学校计算机教育研究会组织了“ComputingasaDiscipline”以及“CC91”的系列研讨活动,对CC2001进行跟踪研究,并分别推出中国“计算机学科教学计划1993”和《中国计算机科学与技术学科教程2002》,提出和完善了具有哲学性质的核心概念的思想。

然而,所有这一切关于计算学科的研究还停留在计算学科方法论层面,没有进一步站在哲学的高度,从新的视角,实现计算机和哲学的有机结合。

3构建计算学科中哲学问题的现实意义

3.1计算学科中的哲学问题有助于计算学科的发展

(1)计算学科中的哲学问题有助于确立正确的思想原则,把握正确的研究方向

计算学科中的哲学问题及其方法论是在科学哲学和一般科学技术方法论的指导下建立的,它直接面对和服务于计算学科的认识过程,使人们对计算学科的认识逻辑化、程序化、理性化和具体化,它有助于我们在计算学科的研究中确立正确的思想原则,把握正确的研究方向。

(2)计算学科中的哲学问题有助于计算学科的建设和人才培养

学科建设和培养高素质人才,是一个永恒的话题。计算学科中的哲学问题有助于解决这个问题。计算学科中的哲学问题从学科的核心概念、学科的形态、学科的根本问题、学科的方法等方面出发,深刻地揭示了计算学科的本质,提升对计算学科的认识,从而有助于计算学科的建设。计算学科中的哲学问题对培养计算专业人才也有重要作用。它可以提高抽象思维能力和逻辑思维能力,培养发现问题、解决问题的素质,掌握正确的思维方法,加速其成才。

3.2计算学科中的哲学问题提供一种独特的研究领域和创新方法

(1)计算学科中的哲学问题代表一个独立的研究领域

计算方法、概念、工具和技术已经开发出来了,而且在许多哲学领域得到了应用,这才是它的迷人之所在。再就是以模型为基础的科学哲学、科学哲学的计算方法论等以阐释科学知识的方法论为目的的领域;最后还有成为当今社会的“显学”的计算伦理学、人工伦理学等哲学问题。

(2)计算学科中的哲学问题能为哲学话题提供一种创新的方法

计算正在改变着哲学家理解那些哲学基础和概念的方式,计算学科中的哲学问题也为哲学提供了令人难以置信的丰富观念,为哲学探究准备新颖的主题、方法和模式提供新的哲学范式,为传统的哲学活动带来了新的机遇和挑战。

4构建计算学科中哲学问题的基本框架

4.1计算学科中哲学问题的定义

计算学科中的哲学问题,是个很古老的话题,但在思想史上,成为独立的研究领域却是非常晚的事。计算学科中的哲学问题是从哲学高度对计算学科的重要问题、根本问题进行理论分析、阐释和评价的。它像数学哲学一样,是一种元理论方法。它具有哲学方法论的批判功能。因而计算学科中的哲学问题可以定义为批判性研究的哲学领域,它涉及到计算的概念、本质和基本原理以及对计算学科方法论的提炼和应用,目的是为计算学科的概念基础提供系统论证,从而建立新的理论框架。

4.2计算学科中哲学问题的基本框架

它包括四个层次和七大方面。

(1)四个层次

①寻求统一计算理论,是计算学科中哲学问题研究纲领的“硬核”。其基本问题就是对计算本质进行反思;同时对计算学科的发展和应用进行分析、解释和评价,重点关注计算学科发展的未来走向。

②创新。其主要目的是为各种计算理论提供哲学方法。创新是计算学科中的哲学最具特色的,也是使计算学科中的哲学问题得以在哲学殿堂确立地位的关键所在。

③体系。利用计算的概念、方法、工具和技术来对传统和新的问题进行建模、阐释和提供解决方案,为上述创新目标的各个分支提炼理论分析框架。

④方法论。这一目标属于传统的科学哲学,它以创新为基础,对计算学科及其相关学科中的概念、方法和理论进行系统梳理,为其提供元理论分析框架。

(2)七大方面

计算学科中的哲学问题除四大层次外,还应包括以下七大方面。

①计算学科的本质探讨。包括:计算是不是一门学科?学科的本质是什么,学科的根本问题是什么?核心是什么?等等。

②计算学科的思维方式。使用计算机解决问题的过程基本上是模拟人类大脑解题的过程,因此有必要分析人类是如何解决问题的,以及在解决问题的过程中人类是如何进行思维活动的。

③计算学科的基本问题、重大问题和未来走向。基本问题是反映计算学科本质的,能对计算学科各分支领域中的核心问题所具有的共性进行高度概括。重大问题是计算学科中的重要的理论模型的瓶颈问题及其未来走向。

④计算学科的创新及其素质要求。计算学科的创新,就是要围绕计算学科的基本问题、重大问题、走向问题、热点问题以及阻障问题进行理性分析、深入探讨和哲学评价,以期推动计算学科的可持续发展。由此就提出对从事计算职业人员的素质要求的研究。

⑤计算学科的方法论分析。计算学科方法论是关于计算领域认识和实践过程中的一般方法的含义、性质、特点、内在联系和变化发展的系统研究。

⑥计算学科的价值原则、伦理原则。价值原则和伦理原则是指对从事计算职业的人员的价值观要求以及道德规范的研究。

⑦计算学科重大成果的哲学分析。如人工智能的哲学问题,现实世界与虚拟空间的哲学问题,语言与知识、信息与内容、形式语言和超文本理论的哲学问题等。

5小结

计算学科中哲学问题的重点是计算学科的本质探讨,如寻求统一的计算理论,对计算本质的理论反思等。计算学科中的哲学问题的难点是创新,是利用计算的概念、方法、工具和技术来对传统和新的问题进行建模、阐释和提供解决方案,为上述创新目标的各个分支提炼理论分析框架以及计算学科发展中的重大问题的哲学分析等。(本文获“2005年全国青年教师计算机教育优秀论文评比”三等奖)

参考文献

1DenningpJ.Computingasadiscipline.CommunicationsoftheaCm,1989,32

2CarlKChang.Curricula2001:BringingtheFuturetotheClassroom.Computer,1999,32

3tuningam.Computingmachineryandintelligence.mind,1950,Vol.LiX

4Chungang.theoreticalmodelsofwhistleblowing:anindividualperspective.JournalofSocialSciences,1998

5刘钢.从信息的哲学问题到信息哲学.自然辩证法研究,2003,9

6刘钢.当代信息哲学的背景、内容与研究纲领.哲学动态,2002,9

7郝宁湘.计算哲学:21世纪科学哲学的新趋向.自然辩证法通讯,2003,6

8郝宁湘,郭贵春.量子计算机动摇了丘奇-图灵论了吗?.科学,2004,6

9郭贵春.科学技术哲学研究未来发展展望.自然辩证法研究,2002,5

10陈火旺等.中国计算机科学与技术学科教程.北京:清华大学出版社,2002,8

11赵致琢.关于计算机科学与技术认知问题的研究简报(Ⅰ,Ⅱ).计算机研究与发展,2001,1

12赵致琢.计算科学导论.北京:科学出版社,2002,8

13董荣胜等.计算机科学与技术方法论.北京:人民邮电出版社,2002,9

14刘大椿.科学技术哲学导论.北京:中国人民大学出版社,2000,8

15范辉.打开计算学科知识殿堂之门.中国大学教学,2003,4

16范辉.计算机科学与技术方法论探索与实践.计算机科学,2003,5

17郭玉刚,范辉.论计算学科方法论的作用及构建.山东工商学院学报,2004,3

计算机学科的基本问题篇2

关键词:研究范型;思维方式;朴素计算思维;狭义计算思维;广义计算思维;能力培养

从2002年8月笔者第一次在《中国计算机科学与技术学科教程2002》中使用“计算思维”这个词描述计算机科学与技术专业人才的四大专业基本能力之一[1],到现在已经有十余年了,后来又在编著的教材中谈到计算思维能力的培养[2-5]。其间,美国的周以真教授2006年3月在CommUniCationSoFtHeaCm上发表了Computationalthinking一文[6](王飞跃等曾将此文翻译介绍给国内读者),之后又有一些学者就计算思维发表了有关研究结果[7,8]。后来人们发现,Seymourpapert早在1996年就提出了计算思维[9]。近几年来,我国有一大批学者开始跟进研究,特别是在教育部高等学校计算机基础课程教学指导委员会的带领下,在我国非计算机专业计算机课程教育领域开展了颇具声势的研究与实践,对计算思维及其培养有了一些认识,取得了一些成果[10]。2012年1月30日-2月3日,2006-2010教育部高等学校计算机科学与技术专业教学指导分委员会联合全国高等学校计算机教育研究会和中国计算机学会教育专业委员会召开了一次主任(理事长)扩大会议,就计算思维等多个问题进行了研究,形成了“积极研究和推进计算思维能力的培养”的基本意见[11]。总体上看,人们对计算思维的认识以及如何进行计算思维能力的培养还处于相对初始的阶段,很多问题还有待进一步的研究和实践。本文将计算思维作为一种与计算机及其特有的问题求解紧密相关的思维形式,并将人们根据自己工作和生活的需要,在不同的层面上利用这种思维方法去解决问题,定义为具有计算思维能力。基于此,本文从“能力培养”及其不同要求的角度出发,将计算思维分为朴素的计算思维、狭义的计算思维和广义的计算思维,以描述不同人群对计算思维能力培养的各自侧重。

一、作为重要基础之计算思维

计算思维中的“计算”是广义的计算。随着信息化的全面推进,“计算机”变得无处不在、无事不用,网络(包括物联网等)延伸到各个角落,加上数据积累的简单化、容易化,使计算思维成为人们认识和解决问题的重要思维方式之一[11]。一个人若不具备计算思维能力,将在从业竞争中处于劣势;一个国家若不使广大受教育者得到计算思维能力的培养,在激烈竞争的国际环境中将不可能引领而处于落后地位。计算思维能力,不仅是计算机专业人员应该具备的能力,而且也是所有受教育者应该具备的能力。计算思维能力,也不简单类比于数学思维、艺术思维等人们可能追求的素质,它蕴含着一整套解决一般问题的方法与技术。

那么,计算思维为什么这么重要呢?特别是在教育中,为什么要强调进行计算思维能力培养呢?

首先,探索与创新的未来性以及知识的无限性,决定了教育,特别是本科教育的基础性特征。笔者认为,知识基础、能力基础是人才培养中必须强调的两大基础,而且在培养过程中,二者相辅相成。其中知识是载体,通过对知识及其发现,特别是知识发现过程中大师们的思维的学习,培养学生的思维能力以及具体化后的探索未知的能力。所谓思维,按照一般的说法,就是在表象、概念的基础上进行分析、综合、判断、推理等认识活动的过程,是人类特有的一种精神活动以及管理。也可以说是大脑对具体事物或用文字表述的概念进行接收、加工等,表示大脑运动的状态。由此可见,思维能力对一个人来说是非常重要的,特别是对于“能力导向”的教育来说,强化思维能力的培养是必须的。同时,思维必须基于一定的对象,而知识及其表示作为“对象”具有重要地位。

其次,计算范型作为人类社会的“三大科学研究范型”之一决定了计算思维的重要性。第一是理论范型。理论范型以理论的演绎、推理为主要研究形式,主要是逻辑思维,其典型代表为数学学科。所以其思维形式又被称为数学思维。第二为实验范型。实验范型以实验、观察、数据收集、分析、归纳为主要研究形式,主要是实证思维,其典型代表为物理学科和化学学科。所以,在国际工程教育标准中,将数学和自然科学作为工程教育的重要基础[12,13]。第三就是计算范型。计算范型以利用计算技术通过构建(系统)进行问题求解为主要研究形式,人们将此思维方式称为计算思维,以计算学科(通常称为计算机学科)为代表。实际上,计算思维方式很早就有了,只是在电子计算机出现后,计算思维逐渐被认识和强化,特别是随着计算技术的迅速发展和功能的快速增强,计算思维的重要性在近几年凸显出来,使得计算机类课程成为与数学、物理并列的,实施(思维)能力培养的大学基础课的趋势逐渐被广大的教育工作者看清。顺便需要提到的是,计算机技术的发展,为数据的搜集和利用提供了基础,基于此,有人提出了与三大范型并列的第四大范型——数据范型,并认为该范型的主要思维方式是“数据思维”[14]。数据范型针对p级以上规模的“大数据”处理。由于该范型采用的基本方式仍然是计算,所以,作者认为,这种范型即使存在,目前还很难独立。各研究范型对应的思维方式如表1所示。

表1与研究范型对应的思维方式

思维方式呈现的基本对象采用的基本方式

逻辑思维

(数学思维)符号、定义、公式、公理、定理演绎、推理

实证思维定义、定律(规律)、现象、实验、定理设计、再现、模拟、观察、归纳、分析

计算思维符号、算法(程序)、模型、系统抽象(离散化、符号化、模型化)、自动计算(程序化)

数据思维大数据(无结构、半结构、巨大规模)计算(统计、分布、并行)

再次,由于今天的计算(机)系统已经具有非常强大的计算能力,成为更方便的计算工具,有了无处不在的更广泛的适应,使得“计算”早已从基本的科学计算,并经过狭义的数据处理阶段,发展到了无所不在的阶段。而且在可以预见的将来,会发挥更大作用。这要求人们必须提升基本观念和思维方式,必须在更多的时候想到、更有效地利用计算思维方法。这种使用和意识既可以是直接的(问题求解方法和手段等),也可以是间接的(问题求解的思想和意识等)。不过,同时也要注意,对计算思维方法的学习,就像数学专业和非数学专业学数学的追求不同,计算机科学和其他的计算机类专业也不同,而非计算机专业就更不同了。忽略了这一点,就会降低教育的效率,而且还难以获得教育的效果。这与大学教育强调“厚基础”,但对不同的人来说,“厚基础”要求的维度和厚度不同是一样的。

二、朴素的计算思维

朴素的计算思维可以说是“计算机科学之计算思维”,以面向计算机科学学科人群的研究、开发活动为主,包括了计算思维最基础和最本质的内容。

计算思维起源于计算机科学家们在研究和利用计算机进行问题求解过程中常用的思考问题的方法,体现为在过去半个多世纪以来成就计算机和信息技术辉煌发展过程中行之有效的若干分析问题与解决问题的典型手段与途径[11]。

事实上,基于对应于高电平和低电平的0、1所构成的呈离散型变化的基本状态,计算机表达和进行问题求解具有一种特有的方式,这使得计算机科学家需要一种相应的思维方式。这种需求在早期的计算机专业教育中已经逐渐被认识并被在教学中努力落实。早年的计算机类专业,特别是软件专业的毕业生,所从事的工作多是基础性的,按照目前的观点,其问题空间多属于基础分支学科。那时候,大家明显地感觉到,计算机专业的学生走进大学后,为了适应问题的计算机求解,需要建立一种不同的思维方式,这种不同表现为以下4个方面:

(1)问题需要用符号表示,求解过程需要通过符号(及其值)的变换来实现(Symbolizing);

(2)问题的求解过程是“一步步地”(StepbyStep);

(3)从简单问题求解到复杂问题求解的系统设计与实现,都需要有包括执行逻辑在内的计划和设计(planningandDesigning);

(4)因此,系统在设计阶段,就需要在设计者的头脑中先“运行”起来(Runninginthemind)。

人们还确信,要在教育中更好地体现“计算机源于数学和电子学”是非常必要的。其实,基本问题的计算机求解建立在高度抽象的基础上。构建一个恰当的物理符号系统并对此系统实施变换是计算机科学家进行问题求解的基本手段。计算机问题求解的“可行性”限定了从问题抽象开始到根据适当理论的指导进行设计和实现的科学实践过程,而“可行性”所需要的“形式化”后呈现的符号表示及其处理过程的“机械化”和“离散特性”,确定了计算机科学学科进行问题求解的重要特征。数学的形式化描述以及严密的表达和计算,决定了数学作为计算学科的重要基础和工具。所以,具有悠久历史的数学,在一定程度上提供了这方面教育的基本载体,使得数学特别是离散数学在这类目标定位下的计算机专业的教育中占有十分重要的地位。即使到了现在,所有追求计算机科学素养、强调基础分支学科特征的专业点的教育,依然保留着这一传统。

归纳起来,从特点上看,计算机科学以形式化为描述手段,以抽象思维和逻辑思维为主要思维方式;从表现形式上看,以符号为问题的表现形式,以符号变换作为问题求解途径。这些进一步体现了作为基础和基本形式的“程序”的非物理特征,正是这种非物理特征,决定了计算机科学这一基础分支学科的基本教育原理是抽象第一。所以通过抽象以获得问题及其求解的形式化描述是实现(电子计算机)计算的基本要求:

(1)抽象(abstraction)是对事物的性质、状态及其变化过程(规律)实行符号化描述。

(2)追求符号化为特征的形式化,形成对象及其变换的抽象表示,而系统状态及其有效运行,要求这种形式化具有有穷描述(FiniteDescription),并要求具有“可计算(Computable)”的复杂度。

(3)作为抽象的较高境界,使用模型化(modeling)方法,建立抽象水平较高的适当模型,然后依据抽象模型实现计算机表示和处理。

(4)通过抽象,实现对一类事务(问题)的系统描述,以保证计算对该类事务(问题)的有效性(Validity),即需要将思维从实例(instance)计算推进到类(Category)计算。所以,计算机科学的根本问题是什么能被有效地自动计算(automation)。这些都基于计算机问题表示的数字化和问题求解过程的机械化。

计算机科学问题求解的基本形式和活动包括:算法、程序、执行、基本机器构建、系统构建、模型计算、类计算、形式化证明、处理过程中各类工具与(各层次)系统的利用,表现出来表示(Representation)的形式化以及执行的离散化(Discrete)和程序化(program)。其基本系统涉及过程(procedure)和算法(algorithm)的描述与实现,要求在构造性(Construction)上满足有穷描述(FiniteDescription),要具有确定性(Deterministic)和能行性(Feasibility)。对于复杂系统,需要逐层虚拟得到各层(抽象)系统,而随着虚拟系统向外延伸,会越来越多地失去计算机科学这种基础分支学科的特征。同时,在其设计与实现中,包括工程设计与实现中,沉淀出一系列优秀的思想和方法,而且工具性特色逐渐明显化,甚至趋于更重要的地位。

《高等学校计算机科学与技术专业人才专业能力构成与培养》给出了计算思维能力的9个能力点[5,15]:问题的符号表示(Symbolicproblem)、问题求解过程的符号表示(SymbolicproblemSolvingprocess)、逻辑思维(Logicalthinking)、抽象思维(abstractthinking)、形式化证明(Formalproof)、建立模型(modeling)、实现类计算(implementCategoryComputing)、实现模型计算(implementmodelingComputing)、利用计算机技术(DevelopsolutionswithComputer)。前8个能力点和第9个的一部分属于朴素计算思维。

《形式语言与自动机理论教学参考书》给出了正则文法和有穷状态自动机共5种模型等价转换的典型模型计算[3],如下图所示。实际上,在计算机类专业的课程中,类似的例子还很多。如:编译中的LR分析器的构造、数据库系统中的基本运算、操作系统中的进程管理等。

正则语言表示模型等价转换的计算图示

作为朴素计算思维能力最基本的,也是难度最大的模型计算能力的培养,可以从数学分析、离散数学(研究基本运算系统)再到形式语言与自动机理论(研究基本计算系统),构成一个梯级训练系统,引导学生把运算范围从实数域扩展到抽象集合域,同时将计算从单一具体的实例计算迁移到一般的形式化的类计算和模型计算。作为另一条线,从程序设计、数据结构与算法再到编译原理、操作系统等,还可以进一步地培养学生计算的规划和实现能力。

既然瞄准的是计算思维能力的培养,就必须在教学中强调思想和方法的研习,更好地体现“专业技术基础课”的特征,不能将它们当成普通的“专业课”,甚至这些课程还要当作“思维体操”课——在课堂上,由教师领着做,在课后由学生自己进行练习。

三、狭义的计算思维

狭义的计算思维是指“计算学科之计算思维”,以面向计算机专业人群的生产、生活等活动为主。

泛泛地讲,狭义的计算思维是基于“计算机”以及以计算机为核心的系统的研究、设计、开发、利用活动中所需要的一种适应计算机自动计算的“思维方式”,使人机的功能在互补中得到大力提升。从这个意义上讲,计算机相关的很多“东西”都可以被“计算思维”一词涵盖。主要有:

最基本的问题描述方法——符号化、模型化;

最主要的思维方法——抽象思维、逻辑思维;

最基础的实现形式——程序、算法、问题表示(包括数据结构)、系统实现、操作工具……;

最典型的问题求解过程——问题、形式化描述、计算机化;

最基本的问题求解方法——方法论意义上的核心概念、典型方法。

我们可以用两种说法来描述,即“按照适应计算机求解问题的基本描述和思维方式考虑问题(构建计算系统、开发相适应的技术)的描述及求解”,或者“采用适应计算机求解问题的基本方式和有效方法考虑问题(构建计算系统、开发相适应的技术)的求解(描述、分析、构建)”。这里突出的是“如何使计算机和以计算机为核心的系统具有更强的工作能力,并开发更方便的使用技术”。在研究、设计、开发、利用四类活动中,以研究、设计为主,开发中主要指计算机专业本身所涉及的基本计算机系统、基本应用系统的开发,而利用则仅指专业活动中的利用。

狭义的计算思维除了包括朴素计算思维的内容外,还包括以下内容。

(1)计算学科方法论意义上的核心概念:抽象层次、概念和形式模型、一致性和完备性、大问题复杂性、效率、折中与决策、绑定、演化、重用、安全性、按空间排序、按时间排序;

(2)相关的典型数学方法:强调用数学语言表达事务的状态、关系和过程,经推导形成解释和判断,呈现高度抽象、高精确、具有普遍意义的基本特征。具体方法包括公理化方法、递归、归纳和迭代等构造性方法、模型化等;

(3)相关的典型系统科学方法:其核心是将对象看成一个整体,思维对应于适当抽象级别,力争系统的整体优化。一般原则是整体性、动态、最优化、模型化。具体方法包括结构化方法、oo方法、黑箱方法、功能模拟方法、信息分析方法、自底向上、自顶向下、分治法、模块化、逐步求精等。

还包括其他一些更具体的方法。例如:约简、转化、仿真,递归、归纳、迭代,调度、并行、串行,抽象、建模、分解、归并,规划、分层、虚拟、嵌入,保护、冗余、容错、纠错、系统恢复,启发、学习、进化,可视化、示例等。

这些内容的教学必须植根于计算学科相应的知识体系,以这些知识为载体,通过研究性教学,实现教师在对问题的研究中教,学生在对未知的探索中学。引导学生学习问题求解和知识发现过程中大师们的思维,使他们有效地掌握这些典型的方法。

四、广义的计算思维

计算机早已走出计算学科,甚至与其他学科形成新的学科。例如,社会计算、计算物理、计算化学、计算生物学等等。计算思维也随之走出计算学科。所以,广义的计算思维是指“走出计算学科之计算思维”。适应更大范围的广大人群的研究、生产、生活活动,甚至追求在人脑和电脑的有效结合中取长补短,以获得更强大的问题求解能力。

我们同样可以用两种说法加以描述:“有效利用计算机(工具)、相关思想、方法和技术以及计算环境和资源,以增强能力,提高效率”,或者“有效地利用计算技术进行问题求解,包括在科学研究与系统实现中有效地利用计算学科典型的思想与方法进行问题求解”。这里突出的是计算机不仅作为工具,还可以有效利用相适应的意识、思想、方法、技术、环境和资源等。

在研究、设计、开发、利用四类活动中,以利用为主,然后依次为开发、设计、研究。特别是对不同专业的人来说,这四类活动涉及的具体对象是不同的,它们与专业紧密相关,关键是意识、思想、方法、技术、工具、环境、资源等。

广义的计算思维包括狭义的计算思维,狭义的计算思维包括朴素的计算思维。表2给出了他们之间的包含关系。必须强调,从“朴素”到“广义”,对不同类型的人群,在原有的内容被逐渐淡化的过程中,新内容被添加进来。所以,对计算机类专业以外的人群如何进行计算思维能力的培养,是一个有待深入研究的问题,可以说是任重而道远。多年来,非计算机专业的计算机教育以学习基本知识、掌握基本工具为核心要求,一般不是很有意识地强调计算思维能力的培养。如何在十分有限的学时中使学生既掌握必要的工具,也让计算思维诸要素融入他们的能力结构中,更好地帮助他们建立计算机问题求解意识,是对非计算机专业的计算机教育的挑战[11]。

目前来看,由于培养基本目标和问题空间的巨大差异,对哲学、经济学、法学、教育学、文学、历史学、理学、工学、农学、医学、管理学、艺术学等不同学科门类的学生的教育来说,其基本的知识载体应该是不同的;即使在基本的知识载体相同的情况下,课程的教学追求和重点也应该不同。载体的选择可以基于多年来的教学实践,但这些载体如何被有效利用,则是一个比较新的问题。例如,程序设计课程是一门普遍开设的课程,对计算思维能力培养具有重要作用。著名的世界计算机大师edsgarDijkstra1976年就曾经撰写过一本名为《程序设计的教学就是思维方法的教学》(theteachingofprogrammingi.e.theteachingofthinking)的专著[16]。在这之前他还曾经说过:“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响着我们的思维能力。”但是,如何把程序设计课程开设成有效进行计算思维能力培养的课程,不少学校做了很有成效的工作,但从总体而言,还有很大的差距。

表2计算思维包含关系

广义计算思维狭义计算思维朴素计算思维形式化、模型化、程序化;抽象思维,逻辑思维适应计算机科学家适应计算机科技工作者在各类问题的求解中,有意识地使用计算机科学家们采用的思想、方法、技术及工具,甚至环境,不仅包括思考,还包括更一般的活动适应包括科技工作者在内的广大人群

方法论(核心概念、典型方法),算法思维、系统、分层虚拟

意识、思想、方法、技术、工具、环境、资源等不限于思考问题时的全方位、全周期的利用

五、计算思维能力培养概要

计算思维是一种思维方法,计算思维能力是指人们运用计算思维方法进行思考的能力,它们是两个不同的概念,常常被人混淆。实际上,我们不是培养计算思维(方法),而是通过引导人们学习、掌握这种思维方法,有效地将其用于问题的求解,以达到培养他们的计算思维能力之目的。

基本认识是:计算思维能力的培养,不是一朝一夕、一年两年可以完成的,需要一个长期的过程,而且在这个过程中需要不断研究、不断实践、不断积累,不断提高。这从高等数学、大学物理、大学化学教育的认识与实践就可以看出来。其实,能力培养的长期性就决定了“思维能力”培养的长期性。由于计算思维源于计算学科,虽然计算机专业的计算思维能力培养还需要从思想观念、师资队伍、教学内容、教学方法等方面更主动地采取有效措施以提升教育效果,但在过去几十年的人才培养实践中,在这方面积累了很多经验,其中部分内容是可以在更广的范围内借鉴的。

对于广大人群(站在使用的角度,不用考虑电子电路等)来说,符号、程序、算法是计算机技术的基础,是理解和实现计算机问题求解的基础;而系统不同层次的抽象和虚拟,技术的不断更新,要求掌握新的内容;计算学科最基本的方法可以作为计算思维能力培养中要掌握、理解、了解的方法,全面掌握不太容易,特别是对非计算机专业的人而言,有必要从中选择一些“大众化”的内容。

无论是哪一部分人,他们的计算思维能力的培养,都需要从建立相应的意识开始:

(1)建立“计算”的基本意识。要相信,计算(机)技术可以增强人们的“能力”;使用机械化的方法进行问题求解(抽象描述与思维,离散、机械可执行)有其独特的优势。

(2)了解“计算”的基本功能。软件系统、硬件系统、应用系统(含嵌入式系统、网络、物联网等各类计算系统,为人们的生产、生活)提供了不同的手段,要知道它们能干什么,不能干什么,擅长干什么,不擅长干什么,优势是什么,劣势是什么。

(3)掌握“计算”的基本方法。在计算学科的发展中,有很多有效的问题求解方法,例如递归、归纳、折中、重用、嵌入、并行、模块化、自顶向下、自底向上、逐步求精以及问题标志与处理模式等,他们不仅在计算学科中有效,而且在其他学科的问题求解中同样可以被有效地应用。

(4)会用“计算”的基本工具。使用有效的工具能够获得事半功倍的效果。计算学科中,不仅可以使用软硬件工具与系统以及各类语言(汇编、高级语言、命令),而且通过抽象表示,选用和设计有效算法及其思想,通过不同载体上程序的实现,甚至系统集成,也许可以更好地解决问题。

(5)具备“计算”的基本能力。结合专业,从意识、思想、方法、技术、工具、环境、资源等多渠道、多途径高效地解决问题。

此目标的实现,需要构建恰当的课程体系,确定相应的课程教学目标,并在教学中真正将知识作为载体,实现思想、方法的传授,让课程教学涵盖完整的教学内容体系。具体还请读者参阅文献中更详细的论述[17]。

参考文献:

[1]中国计算机科学与技术学科教程2002研究小组.中国计算机科学与技术学科教程2002(ChinaComputingCurricula2002)[m].北京:清华大学出版社,2002.

[2]蒋宗礼,姜守旭.形式语言与自动机理论[m].北京:清华大学出版社,2003.

[3]蒋宗礼.形式语言与自动机理论教学参考书[m].北京:清华大学出版社,2003.

[4]蒋宗礼,姜守旭.编译原理[m].北京:高等教育出版社,2010.

[5]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业人才专业能力构成与培养[m].北京:机械工业出版社,2010.

[6]Jeannettem.wing.Computationalthinking[J].CommUniCationSoFtHeaCm,2006,Vol.49(3):33-35.

[7]peterB.Henderson,thomasJ.Cortina,Jeannettem.wing.Computationalthinking[J].proc.ofSiGCSe’07.

[8]CommitteefortheworkshopsonComputationalthinking.ReportofaworkshopontheScopeandnatureofComputationalthinking[J].nationalResearchCouncil,2010.

[9]Seymourpapert.anexplorationintheSpaceofmathematicseducations[J].internationalJournalofComputersformathematicalLearning,1996,Vol.1:95-123.

[10]李廉.计算思维——概念与挑战[J].中国大学教学,2012(1):7-12.

[11]李晓明,蒋宗礼等.积极研究和推进计算思维能力的培养[J].计算机教育,2012(5):1.

[12]中国工程教育认证协会(筹)秘书处.工程教育认证指南[Z].2013.

[13]中国工程教育认证协会(筹)秘书处编译.国际工程联盟教育协议[Z].2013.

[14]tonyHey,Stewarttansley,Kristintolle.第四范式:数据密集型科学发现[m].北京:科学出版社,2012.

[15]蒋宗礼.计算机类专业人才专业能力的构成与培养[J].中国大学教学,2011(10):11-14.

[16]吴鹤龄,崔林.aCm图灵奖(1966-2011)——纪念图灵百年诞辰(第四版)[m].北京:高等教育出版社,2012.

[17]蒋宗礼.建设国家精品资源共享课提高人才培养质量[J].中国大学教学,2013(1):13-16.

(上接第23页)

3.正确认识精品资源共享课

最后需要强调的是,部级精品资源共享课固然重要,但它不可能完全取代各高校的课堂教学,其作用是为高校教师、学生提供共享资源,供其学习、借鉴、参考。因为大学教学不仅仅是传授知识,更重要的是培养人才,培养学生各方面的能力、塑造其健全高尚的人格、感受不同高校的校园文化氛围,是教与学的互动、领略不同教授魅力的过程。在可预见的未来,课堂教学仍会是我国高等教育培养人才的主要方

式之一,因而各高校还应不断加强各自课程的建设,提高课堂教学效果。

参考文献:

计算机学科的基本问题篇3

关键词:计算思维;大学计算机课程;改革;教学体系

一、改革的动因

自从20世纪80年代我国各大学普遍开设计算机基础课程以来,计算机基础课程教学在整个高等教育发展过程中,经历了不断的改革与调整,教学理论和教学目标也在经历着不断深入的发展与变化。其中有两次重大的改革[1]:

第一次改革是在1997年。教育部高教司了《加强非计算机专业计算机基础教学工作的几点意见》(即155号文件),确立了计算机基础教学的“计算机文化基础-计算机技术基础-计算机应用基础”3个层次的课程体系,同时规划了“计算机文化基础”、“程序设计语言”、“计算机软件技术基础”、“计算机硬件技术基础”和“数据库应用基础”5门课程及教学基本要求。提出了教学手段、方法改革要求,建立了计算机基础教学归口领导的教学组织并加强了教学条件建设。这次改革确立了计算机基础课程的地位,并对课程体系作了规范化整合。

第二次改革起始于2004年。在《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求》中,明确提出了进一步加强计算机基础教学的若干建议,确立了“4领域×3层次”计算机基础教学内容知识结构的总体构架,构建了“1+X”的课程设置方案,并将“大学计算机基础”作为第一门课程。此项改革促进了计算机基础教学不断向科学、规范、成熟的方向发展。

在这两次改革的背后,实际上反映了对于计算机基础课程定位和开设目标的与时俱进。从早期对于计算机课程的技能培养的目标,逐步过渡到对于计算机应用能力的培养。即从狭义的“技能”培养逐步演化为对于“能力”的培养,这种认识的提高是伴随着计算机在人类社会中日益重要的影响和渗透而不断深化的。

最近十年以来,国际上开始对于计算思维产生了强烈的关注,多篇文章以及一些报告从不同角度提到了计算思维的训练与培养对于未来社会和人才培养的重要意义,美国国家科学基金会(nSF)投入巨资设立了相关的研究项目。由此催发了一系列的关于计算思维的理论研究及其在教学中的渗透。在这种背景下,教育部高等学校计算机基础课程教学指导委员会经过多次组织会议研究讨论,提出了大学计算机基础课程新一轮改革的思路和内容,这就是以计算思维培养为导向的大学计算机课程改革,这是计算机基础课程教育的第三次重大改革。

以计算思维培养为导向的大学计算机课程改革,其主要内容表现为[2]:

(1)从理论层面研究计算思维的内涵、表达形式以及对大学计算机教学的影响;

(2)从系统层面科学规划大学计算机课程的知识结构和课程体系;

(3)从操作层面将大学计算机课程建设成为培养学生多元化思维之一的计算思维能力的有效途径,并建设一批适用的教学资源;

(4)从实践层面推动一批高校按照不同层次培养目标、不同专业应用需求开展大学计算机课程的改革探索。

这样的内容设计是基于计算思维在人才培养和大学生素质教育中的重要作用和意义而确定的,试图通过全方位的改革举措,实现大学计算机课程一次新的跨越和提升。其要点表现为[2]:明确大学计算机课程对培养学生信息素养的重要地位;科学设计大学计算机课程的教学内容,形成反映计算思维特征的科学的知识体系、合理的知识结构;创新教学方法和教学模式;在大学计算机课程中探索计算思维能力培养,深入体现两化(专业化与信息化)融合、注重多学科渗透等,使大学计算机课程成为大学课程体系中最重要的基础课程之一。

为什么在这个时候提出对于大学计算机课程的改革?为什么这次改革的“切入点”是计算思维?大体上有这么几个方面的原因:

一是中国学生在计算和计算机理解方面的不足。当前计算机的应用已经遍及全社会,现代社会对于计算机应用水平的要求已经不仅仅限于计算机专业的学生,而是全社会成员都必须具有的基本素质,所有的大学生都必须具有对于计算机技术深度运用的能力。而恰恰在这一方面,中国与发达国家之间存在较大的差距。在这样的背景下,作为对于计算机应用能力的培养,仅仅掌握几项具体的应用技能是远远不够的,必须对于计算以及计算机科学的思维形式有较为深刻的理解,接受对于计算思维的严格培养,才能使得学生走向社会以后,具有很好的应用计算机解决问题的思维习惯,成为当下这个信息社会、大数据社会的合格公民。

二是大学计算机课程的教学要反映前沿性和时代性。当前社会的发展,已经越来越多地依赖计算机作为分析和解决问题的工具,在这个过程中,最重要的不是如何解决问题的具体技巧,而是如何把问题转化成能够用计算机解决的形式,这正好是计算思维培养所强调的内容。学会使用计算思维的基本方法解决问题比起学会具体解决问题的技术,显然前者更加重要和基础。

三是本世纪以来,信息科学继续在迅猛发展,在人文社会科学、自然科学的许多领域取得一系列革命性的突破,极大地改变了人们对于计算和计算机的认识。计算机已经不仅仅是一门工具,它的深刻知识内涵正在被当今社会的发展进一步揭示。学生接受计算机课程的培养已经不仅为了学会应用计算机,而是由此学会一种思维方式,这种思维方式对于学生从事任何事业都是终身受益的。因此作为一门课程的改革必须跟上时代的步伐,超前设计,科学谋划,缩短与发达国家在这方面的差距,这是时代赋予我们的改革任务。

对于我国非计算机专业的学生计算思维素质方面的调查显示,从一般意义上讲,当前非计算机专业的计算机课程教学,技术方面的培养问题不是很大,学生在掌握具体的计算机技术方面有着很好的表现。但是对于影响计算机技术发展背后的思想和理论的了解相对比较匮乏。这造成当前在计算机应用方面的创新不足,在很多领域跟着国外的技术发展路线走,缺少原创性成果,更加缺乏引领技术发展潮流的能力。其原因还是在于计算思维方面的培养滞后,使得学生在面临具体问题需要解决时,擅长于用现成的技术手段而不是科学的思维方式来寻求解决问题的方案,这导致在解决问题的思路上习惯于沿用已有方法,缺乏具有革命性的突破。而以思维意识、思维方法培养为目标的改革,则是着眼于培养学生从实质上和全局上来建立对于问题的解决思路,从而达到计算机应用水平提高的目的。这样的例子并不鲜见,一些表面上看来不大可能用计算机来解决的问题,通过深刻的剖析,仍然可以实现通过计算机解决问题的途径,而且所取得的成果都是突破性和开创性的,这更加说明了计算无处不在这样一个社会真理。至于这种思维的名称是否叫做计算思维倒不重要,现在类似的观点也提出了其他的一些名称,例如构造思维、算法思维、程序思维、演化思维、网络思维等等,这些名词的内涵大同小异,区别不是很大。关键是这些思维培养的具体内容是什么。另一方面计算思维这个名称已经在国内外被广泛认同,其内涵也已经有了相对清晰的陈述,是表达这种体现计算机科学基本思维形式的被研究的最深入的概念。因此如无其他原因,计算思维这个名称应该是概括当前大学计算机课程改革恰当的名称。

二、改革的基础

计算思维(Computationalthinking)概念的提出是计算机学科发展的自然产物。第一次明确使用这一概念的是美国卡内基·梅隆大学周以真(Jeannettem.wing)教授。她认为,计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为;计算思维最根本的内容,即其本质(essence)是抽象(abstraction)和自动化(automation)。

计算思维是人类科学思维活动固有的组成部分。人类在认识世界、改造世界过程中表现出了三种基本的思维特征:以实验和验证为特征的实证思维(以物理学科为代表)、以推理和演绎为特征的逻辑思维(以数学学科为代表)、以设计和构造为特征的计算思维(以计算机学科为代表)。随着计算机技术的发展及其广泛应用,更进一步强化了计算思维的意义和作用。

计算思维概念的提出不仅反映了计算以及计算机科学在当前社会中重要作用的新认识,也反映了计算机学科最本质的特征和最核心的方法。是对于计算机学科的三个不同领域(理论、设计、实现)的概括和提炼。

计算思维从基本层面探讨计算与计算机科学的一些核心的概念与内容,这在当前计算机技术快速发展的今天尤为重要。对于一门科学,如果要保持对于技术的指导和引领作用,不至于被技术绑架而失去方向,那么在概念上和理论上的创新是必须的。在我们广泛应用计算机解决问题,并且享受计算机科学给人类社会带来的进步与便利时,也需要经常的返本开新,不断关注计算机科学的原始宗旨和发展的方向,而计算思维正是这样一种理性思维的产物。例如下面一些问题就是计算思维的关注点:什么是计算?计算的本质是什么?什么样的抽象能够正确反映客观对象的本质?如何揭示一些看起来不同的对象背后共同的计算性质?如何实现计算全过程的自动化?如何评价计算产品的质量和安全性?

这些问题既是计算机科学中带有本质意义的核心概念,又是计算机科学发展中的根本性问题。只有经常地来探索和推进这些问题的答案,才能使计算机技术沿着健康的路线发展。因此在大学计算机课程中讲授这些内容,对于培养未来计算机应用人才具有战略性的重要意义。

2005年6月美国总统信息技术咨询委员会(pitaC)给美国总统提交了一份报告,即《计算科学:确保美国的竞争力》。2007年,CiSe启动了旨在振兴美国计算教育的国家计划——CpatH(CiSepathwaystoRevitalizedUndergraduateComputingeducation)。CpatH在于通过“计算思维”从根本上改变本科计算教育的内容。2008年美国国家科学基金会(nSF)启动了总经费为7500万美元的重大基金资助计划CDi(Cyber-enableDiscoveryandinnovation)。CDi旨在使用计算思维(特别是在该领域产生的新思想、新方法)促进美国自然科学和工程技术领域产生革命性的成果。nSF认为“计算思维”正在复杂科学、工程研究以及教育等众多领域深刻地影响着美国国家的创新能力。nSF希望通过CDi计划使人们在科学与工程领域以及社会经济技术等领域的思维范式产生根本性的改变。

2011年,nSF又启动了Ce21(theComputingeducationforthe21stCentury)计划,该计划建立在CpatH成功的基础上,其目的是提高K-14(中小学和大学一、二年级)老师与学生的计算思维能力。nSF希望通过CDi等研究计划,使人们在科学与工程领域以及社会经济技术等领域的思维范式产生根本性的改变。基金会确信,这种思维范式的改变将会为美国产生更多的新的财富,并最终提高美国人民的生活质量。

与此同时,国内几乎与国外同步地关注到计算思维的研究进展以及对于大学计算机教育带来的潜在影响。

2007年11月,中国科学院自动化所副所长王飞跃教授撰写了《从计算思维到计算文化》等相关论文[3],对“计算思维”进行了分析。他呼吁给予“计算思维”相关研究经费的支持。

2008年6月29日至7月14日,国家自然科学基金委员会组织了计算机科学代表团访问美国。回国后,基金委副主任孙家广院士等人分别撰写了文章,强调了计算思维的重要性。孙家广院士在《计算机科学的变革》一文中认为,计算思维是美国计算机科学界的一个最具基础性和长期性的思想[4]。

教育部高等学校计算机基础课程教学指导委员会在陈国良院士的带领下,从2008年开始,组织了将近20场各种类型的专题研讨,以期提高国内计算思维领域的科学研究和计算机教育的水平。这些研讨从计算思维的基本概念出发,就哲学层面、科学层面以至于教学层面的表达形式进行了深入的讨论,逐步实现计算思维从一个哲学的表达体系,向教学表达体系的过渡。

2010年,北京大学、清华大学、西安交通大学等9所“985工程”高校在西安召开了首届“九校联盟(C9)计算机基础课程研讨会”。会后发表了《九校联盟(C9)计算机基础教学发展战略联合声明》(以下简称《联合声明》)[5],达成4点共识:(1)计算机基础教学是培养大学生综合素质和创新能力不可或缺的重要环节,是培养复合型创新人才的重要组成部分;(2)旗帜鲜明地把“计算思维能力的培养”作为计算机基础教学的核心任务;(3)进一步确立计算机基础教学的基础地位,加强队伍和机制建设;(4)加强以计算思维能力培养为核心的计算机基础教学课程体系和教学内容的研究。

在此基础上,进一步推进了教育部高教司设立以计算思维为切入点的大学计算机课程改革项目。该项目通过若干理论研究和19项教材建设,进一步丰富计算思维在大学计算机基础课程教学中的实践经验和教学理论。

三、改革的内容

当我们考虑以计算思维培养为导向的课程改革应该有什么内容时,需要放在一个历史、现状和未来发展的三维空间。我们生活在一个信息爆炸的社会,各种信息对于我们的生活已经产生越来越重要的影响,这一点在a.L.Barabasi所著的Bursts,thehiddenpatternbehindeverythingwedo中有精辟的表述[6]。

生活在这样的时代,随着云计算、社会网络、物联网、普适计算、移动通讯这些新技术的迅速发展,使得人们去编制一个程序的任务将会被寻找一个程序的任务所替代。对于大多数人所从事的工作而言,理解问题,并在云平台上找到解决问题的工具,其现实意义可能会远远大于自己动手制作解决问题的工具。因此对于未来非计算机专业的人才来说,编写程序是否还是第一位的,知道计算机CpU的工作原理是否还是那么重要?在这样的时代背景下,究竟给学生讲什么,怎么讲,成为一个尖锐的问题再一次摆在了我们面前。这种情形在第二次计算机基础课程改革时也类似碰到过。21世纪初,也是由于计算机的广泛普及,社会对于计算机应用水平的要求,已经远远不是简单的技能方面的培养就可以满足了,从简单的会编写程序变成了对于计算机应用能力的提升。在这种背景下,通过计算机基础课程教学思想、教学目标以及教学模式的大范围改革,实现了由狭义的技能教育到能力培养教育的跨越。现在也是由于计算机技术发展的进一步飞跃以及进入以大数据和云计算为特征的信息社会,我们再一次面临由能力培养到思维培养的新的改革任务。这项改革的一个重要特征是:在非计算机专业的人才培养目标中,如何更好地实现专业化和信息化相融合的模式,提升未来社会对于计算机的理解和应用的整体水平。

从以上的认识,我们可以对于这次改革的内容和目标做一些展望。从计算思维培养的角度,下面的一些内容无疑是首当其冲的:

(1)正确理解计算与计算机;

(2)通过建立模型揭示表象背后的核心问题,揭示不同现象之间的共同本质;

(3)通过算法化的问题描述,把问题转化为计算机处理的形式;

(4)通过问题计算化的处理方式,细化和深化问题的研究,提出可量化、可评测以及可验证的解决方案。

这些问题促使我们对于现有的计算机课程的开设进行深刻的反省。我们将接受严峻的挑战:也许在新的教学过程中,理解一门技术比学会一门技术更重要;让学生学会从演化的角度,而不是静止的角度来看待问题和分析问题;引导学生面向问题时,养成建立模型的习惯,从本质和规律上把握问题的关键,而不是就事论事的寻求表面解决问题的方案;在使用计算机解决问题时,要习惯于资源(能源、时间、空间、带宽、体积、用户等)受约束条件下的解决方案,而不是一般的统而化之、不讲成本、不顾环境、不考虑用户体验地解决问题方式。这些无疑对于当前的教学观念和教学体系提出了新的要求,这就是这次改革需要重点关注的内容。以当下学生的一般水平而论,学会怎样做基本不是问题,问题出在解决问题的总体思路和方法体系上,也就是说,我们要加强对于学生使用计算机解决问题的基本思维和方法论方面培养,这才是当前教育所缺乏的内容。而具体怎么做,甚至可以作为学生的课外练习来训练。特别是当课堂教学时数有限时,讲什么和练什么更成为一门课程体系设计要考虑的内容。

计算思维从理论与方法论的角度阐述有关计算和计算机最基本的特征和问题,学生如果能够从基本层面掌握这些内容,自然会对他们将来正确应用计算机解决问题产生本质上的影响。因此这次把大学计算机课程的改革概括为以计算思维培养为导向,正好反映了这次改革的基本内容和核心目标。

四、教学体系的建设

尽管我们对于计算思维培养说了很多,但是作为一项教学改革,光有理论的描述和概念的堆砌是远远不够的。关键是要建立起一个以计算思维培养为导向的教学体系,这才是这次改革的任务。

关于计算思维是什么或者不是什么,关于计算思维在人类思维中的意义和作用,关于计算思维与计算机科学是什么关系,所有这些都是在哲学层面上的讨论,这些研究是基础的和重要的,在我们讨论计算思维教学体系时,首先要从哲学层面把这些概念弄清楚。但是这些内容不能自然成为教学体系的部分。作为一项教学改革,我们必须构建计算思维的教学体系。这项工作与在哲学层面上讨论计算思维是完全不同的。

比如说,在计算思维的教学体系中,需要解决计算思维的基本内容如何表达,相关知识内容及其之间的关系。这些知识通过一堂一堂的课程给学生进行讲授,使得学生在持续的学习过程中,逐步理解和掌握计算思维的一些基本内容和方法。这个知识体系的建设十分重要,它是这次改革最重要、最基本,同时也是最复杂的任务。通过知识体系的建设,把有关计算思维的相关思维特征和方法分解到每一个具体的讲授内容。相对于具体的内容,讲什么、怎么讲、如何检查学习效果都是需要考虑的问题。比如说,我们经常说到,计算思维是:

(1)一种选择合适的方式去陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法;

(2)按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法;

(3)利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法;

(4)利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折中的思维方法[7]。

那么就需要设计出不同的讲授内容来阐述有关计算思维的特征。这些特征里面,有的适合于在算法课程讲,有些适合于在软件工程课程里讲,有的却适合于在人工智能课程或者数据库课程里讲。这些问题在一般讨论计算思维的理论时是不会碰到的,但是在具体设计计算思维培养教学体系时就是一个无法回避的问题。

编写以计算思维能力培养为目标的教材,首先就是计算思维的表达体系与实现内容。那么在过去的计算机基础课程教材中,是否就没有体现计算思维的内容呢?实际上,计算思维是渗透在所有计算机教学内容中的,以前的教材没有从计算思维的角度来写,因此相关的内容没有明确提出来,计算思维的一些重要特征被分散到不同的部分。一些优秀的教师可以从这些内容的讲授中提炼出关于计算思维的精华部分,一些优秀的学生也可以在课程的学习中“悟”到属于计算思维的内容。一本普通的教材可以讲得很出彩,一门平凡的课程可以学得很精深,这些有赖于教师或者学生的状况。而从计算思维角度讲授的教材,则要把这些发生在优秀学生身上的现象,进一步普及化,成为大多数学生可以达到的境界。现代教育的一个任务就要把原本发生在少数精英身上的培养过程变成普通人能够成功的故事。所以说,计算思维的培养需要新的教材,但不是完全依赖教材,好的教师与好的教材同等重要。教材好,未必能够讲好;教材不好,也未必就讲不好。因此,对于计算思维的培养,不是说过去一点没有,一些学生通过“授之于鱼,得之于渔”的方式学到了计算思维的一些要领;而现在通过编写专门体现计算思维的教材,达到“借之于鱼,授之于渔”的教学目的。这是此次改革在教学方法上提出的新课题,也是此次改革在教材问题上的切入点、质疑点、创新点和难点。下面三本教材已经在国内很多学校使用:

programmingLanguagepragmatics.m.Scott;

networks,Crowds,andmarkets.D.easley,J.Kleinberg,李晓明译;

algorithmics,theSpiritofComputing.D.Harel,Y.Feldman。

它们的共同特点是,从整体角度对于所讲授的内容进行阐述、概括和比较,具有体现该领域基本思想和基本方法论的讲授特点。学生不仅可以学到相应的理论和技术,也能够较好地掌握推动这些技术发展背后的原因和动力,对于学生把握好本领域的计算机应用具有很好的启发作用。这样的教材值得我们借鉴。

计算思维的培养并不排斥对于技巧和能力的培养,相反,它与技巧和能力培养呈现递进的关系,计算思维的培养是通过能力培养来实现的。根据浙江大学何钦铭教授的意见,将来对于计算思维的培养,在教材方面会出现三种模式:第一种是教材不变,讲授方式变化;第二种是教材进行修改和充实,形成新的突出计算思维内容的教材;第三种是编写全新的教材。

在未来可能出现的新教材中,有一种编写方式值得探索,这就是颠覆现有的按照计算机学科的知识框架讲授计算机课程的模式,而是参照专业学科的知识框架来讲授计算机课程,通过精心编排的属于本专业的应用案例,来讲授这些应用中所反映的计算机科学的内容,这是一种全新的编写教材的思路。在这样的教材里,甚至不用插电就可以学习到计算思维中的主要内容。这在当前网络发达的学习型社会中,不仅不是天方夜谭,而是确确实实可以实现的新的学习方式。在上面推荐的三本教材中,第二本就是以这种方式讲授有关社会科学和经济学相关内容的,在这本教材里,完全脱离了一般的计算机教科书里面计算机组成原理、体系结构、程序语言、CpU工作原理、数据库与数据结构、网络与通讯等这些传统的讲授路线,而是以社会科学和经济学中的问题为案例,讲解这些问题是如何转变为计算机可以解决的形式。内容经过精选,都是一些经典问题,讲解是新颖的,只是重点讲授如何建立模型,提取算法,转化为计算机处理的形式,这种模式对于非计算机专业的学生提高计算机应用水平具有革命性的意义,十分需要在这次改革中进行尝试。目前国内已有北京大学和南京大学等若干所大学开设了类似的课程。

大数据和云计算时代正在给人类社会带来一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程[8]。这将为计算机更加广泛的应用和发挥更加重要的作用铺垫着新的基石。以计算思维培养为导向的计算机基础课程改革正是响应这场革命在教学领域中的召唤。我们的学生能够理解这些e-时代的新特征以及对于计算机科学新的应用模式的特点吗?编写教材是诠释这次改革的最好方式。我们期待着通过大胆而积极的探索,出现一批充满改革气息的全新的教材。推进我国计算机基础课程教学进入一个新的历史阶段。

参考文献:

[1]冯博琴.对于计算思维能力培养“落地”问题的探讨[J].中国大学教学,2012(9).

[2]教育部高等学校计算机基础课程教学指导委员会.关于申报大学计算机课程改革项目的通知[Z].2012.

[3]王飞跃.从计算思维到计算文化[n].科学时报,2007-10-11.

[4]孙家广.计算机科学的变革[J].中国计算机学会通讯,2009,5(2).

[5]九校联盟(C9)计算机基础教学发展战略联合声明[J].中国大学教学,2010(9).

[6]a.L.Barabasi.Bursts,thehiddenpatternbehindeverythingwedo[m].publisherpenguin,2010.

[7][美]周以真.计算思维[J].徐韵文,王飞跃译.中国计算机学会通讯,2007(11).

[8]大数据时代来临[n].北京晚报,2012-06-15.

计算机学科的基本问题篇4

【关键词】大学计算机基础计算机工具论计算机科学计算科学

【基金项目】中国青年政治学院2013年校级科研一般项目,项目编号189070653。

【中图分类号】G642【文献标识码】a【文章编号】2095-3089(2014)04-0128-02

0.引言

当今社会早已步入信息时代,信息技术在社会发展中的作用日益突出,在高度信息化的社会,不掌握一定的信息技术,就不能很好应对激烈的竞争。社会对大学生应具有的信息技术能力提出了更高的要求,大学计算机基础教学是培养大多数非计算机专业学生信息技术能力最重要的途径,对于提高大学生信息技术能力的作用至关重要。然而从目前情况来看,大学计算机基础教学在很多高校并没有得到应有的重视,课时不断缩减,学生不感兴趣,体会不到学习的快乐,有逐渐被边缘化的趋势,甚至有人已经开始讨论大学计算机基础教学的必要性,也有部分高校已经将大学计算机基础课程性质从必修改为选修,之所以出现这种情况,最主要的原因还是现有教学中依然存在着不少问题,影响了大学计算机基础教学的质量。

1.计算机工具论及其危害

长久以来都存在着这样一种看待计算机的观点,那就是计算机只是工具,只要会用就行了,这种观点也被称为计算机工具论。随着20世纪90年代多数高校普遍开设了大学计算机基础课程,计算机工具论也成为指导大学计算机基础教学的主要理念,在教学过程中,除了讲解必要的计算机基础知识之外,主要的教学内容便是介绍各种应用软件的使用方法,其中涉及最多的便是office办公软件,以至于很多高校的大学计算机基础课程内容基本上就是office办公软件使用说明书。应用软件教学的侧重点也主要是教学生怎么去做,而不是教学生为什么要这样做,学生只会机械的使用计算机。另外,由于软件的更新速度很快,教师总是要疲于更新教学内容,教学缺乏稳定性,学生当时学会了的软件,到真正应用时版本功能上可能产生了巨大变化,还要重新学习。

公平的讲,这种在计算机工具论理念指导下技能型的教学是与当时经济发展水平相适应的,当时计算机尚未完全普及,社会上没有广泛应用,也没有进入家庭,甚至在学校也属于高级实验室设备,在这一时期,熟练掌握一些常用软件的操作基本上能够满足社会对于大学生信息技术能力的需求。随着计算机的普及程度不断提高以及计算科学的不断发展,计算机不但深入了社会的方方面面,也进入了千家万户,对人们的工作、生活、娱乐产生了巨大的影响。社会对大学生的计算机能力也提出了更高的要求,大学生不仅要了解计算机是什么,能够做什么,还要知道如何用计算解决相关领域的问题。目前这种重操作、重技能的教学渐渐地跟不上时展的需要了,计算机工具论的危害也逐渐显现出来了。

计算机工具论使得教师和学生停留在计算机只是工具这种比较肤浅的认识层次上,没有看到计算机的核心价值,没有意识到计算的巨大作用,没有把计算机和计算当作科学对待,没有触及计算机科学和计算科学的核心内容和方法。2005年6月,美国总统信息技术咨询委员会向美国总统提交了一份名为《计算科学:确保美国的竞争力》的报告,报告指出了计算本身也是一门科学,并且具有促进其他学科发展的作用。报告预测,在21世纪科学上最重要的、经济上最有前途的研究问题都有可能通过熟练地掌握先进的计算技术和运用计算科学得到解决。作为教育工作者,应该清楚的看到,计算机的核心价值在于可以通过计算解决各种实际问题,大学计算机基础教学的目标应该是教给学生如何通过计算解决问题,而不应仅仅是各种应用软件的操作。教育部高等学校计算机基础课程教学指导委员会针对非计算机专业的本科毕业生,在计算机知识与能力培养上要求非计算机专业的本科毕业生具有判断和选择计算机工具与方法的能力;能有效的掌握并应用计算机工具、技术和方法,解决专业领域中的问题;能够适应信息技术和信息社会的快速发展变化。要在大学计算机基础教学中完成这些目标,必须要摒弃计算机工具论。

2.教学内容宽泛、定位缺失

由于缺乏明确的教学理念指导,在大学计算机基础教学内容的组织上显得条理不够清楚,仅仅考虑了全面性,知识点过多,概念过多,往往是什么都讲一点,计算机基本概念、硬件、软件、网络、数据库无所不包,教师在教学过程中感觉课程内容太多,在有限的课时难以讲清楚,学生则是知其然,但不知其所以然,学生不清楚自己到底学的是什么,很茫然,尤其是对于计算机基础薄弱的学生来说更是如此。问题的根源在于很多时候只是为了灌输概念,没有让学生领会到这些概念背后所体现的基本原理是什么,而这些基本原理具有一定的稳定性,能够体现计算机学科的核心思想和方法。另外,计算机学科中的很多基本原理都具有普适性,了解这些基本原理不仅能够更好的理解计算机的工作方式,甚至还可以在其他领域中利用这些基本原理解决实际问题。

一些院校也为非计算机专业的学生开设了程序设计课程,但是在课程内容的设计和讲解上与计算机专业的差异不大,仅仅是降低了一些难度,依然没有搞清楚面向非计算机专业的程序设计课程应该如何定位。非计算机专业的程序设计课程的目标并不是为了培养程序员,而是使得学生能够通过学习程序设计,更好地理解和掌握利用计算机解决问题的方式。在教学中不应一味的追求语法的细枝末节,沉浸其中,而应该多多讲解各种算法思维,让学生掌握一种不一样的思维方式。

计算机学科的基本问题篇5

1.计算思维的概念计算思维是一种新颖的思维方式,有助于培养人们的抽象思维、逻辑思维以及解决问题的能力。2006年3月,美国卡内基•梅隆大学计算机科学系主任周以真(Jeannettem.wing)教授在美国计算机权威期刊《CommunicationsoftheaCm》杂志上给出了计算思维(Computationalthinking)的定义。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。从周教授给出的定义可以看出,计算思维是基于计算机科学并涵盖整个计算机科学领域的一种思维活动,是人类应具有的一种能力。如同所有人都具备“读、写、算”(简称3R)能力一样,计算思维是必须具备的思维能力。

2.计算思维的本质国际教育技术协会(iSte)和计算机科学教师协会(CSta)2011年通过给计算思维的各要素作描述,下了一个操作性的定义,即计算思维是一个问题解决的过程,该过程包括以下特点:

(1)制定问题,并能够利用计算机和其他工具来帮助解决该问题;

(2)要符合逻辑地组织和分析数据;

(3)通过抽象,例如模型、仿真等,再现数据;

(4)通过算法思想(一系列有序的步骤),支持自动化的解决方案;

(5)识别、分析和实施可能的解决方案,找到最有效的方案,并且有效结合这些步骤和资源;

(6)将该问题的求解过程进行推广并移植到更广泛的问题中。计算思维反映了计算机学科最本质的特征和最核心的方法,是对计算机学科三个不同领域(理论、设计、实现)的概括和提炼。计算思维注重在问题求解过程中对问题的抽象及表示、注重算法设计的抽象化及算法实现的自动化、注重问题求解后实现方法的再利用,计算思维的本质是抽象和自动化。

3.计算思维与计算机基础教育计算思维是人类具有的一项基本技能,在早期没有计算机时计算思维就已经存在了,但由于缺乏对计算思维概念的正确认识而没有被人们明确意识到。计算机的产生及计算机学科的发展使计算思维受到前所未有的广泛关注,并将计算思维的培养纳入到当今社会人才培养的目标之中。在大多数高等院校的计算机基础教育人才培养目标中,已经能够明确体现出计算机技术及操作技能的培养,但对于引领计算机学科及相关技术发展的理论与实践的创新性研究却较少涉及,以这种模式培养出来的学生有可能被局限在解决已有类似解决方案的问题上,当遇到崭新的问题时,只能用已有的技术或方法去套用,即使问题得以解决也很难取得突破性的成果,这对于学科的延展性以及各行业的发展前景都是不容乐观的。这就是源于在计算机基础教育中忽略了对学生计算思维能力的培养。计算思维能力不仅能为不同专业学生提供解决专业问题的有效方法和手段,更为重要的是能够提供一种独特的思维方式,这种思维方式引导学生从全局出发,以计算机理论与技术为支撑寻求解决问题的方法。对计算思维能力的培养将激发学生在各学科领域进行科学探索的兴趣,进而能为将来就业后的行业发展和突破创新做到很好地铺垫。

二、计算机基础教育的现状及所面临的问题

目前在我国,一些高等院校将计算机基础教育狭义地定位为一门工具学科,就是认为计算机基础教学就是教学生如何将计算机作为工具使用。在教学内容组织上过于宽泛且理论层次不高,并且部分教学内容与学生在中学阶段所学内容重复,这样造成的后果不言而喻,学生的学习积极性不高,让学生感觉好像什么都知道,又好像什么都不懂。另一方面,随着信息化不断向纵深发展,各专业对学生的计算机应用能力的要求日益递增,社会对大学生的信息能力要求越来越高,这就要求大学计算机基础教育必须不断与时俱进,改革创新,教学目标和内涵要充分体现时代的特征和需求,将计算思维融入教学的各环节中,以期进一步提升大学生的综合素质和能力,挖掘大学生的学习潜能。

三、计算机基础教育教学目标的重定位

信息技术飞速发展的同时也带动了其他学科在某些领域的突破性进展,极大地改变了人们对信息技术学科的认知,信息技术不仅仅是一个单纯的学科,而是一个不断发展演化的学科,是一个能带动其他学科交叉发展的学科。作为信息时代主要载体的计算机已不再做为一个简单的工具存在,其更为重要的作用和更为深刻的内涵随着信息技术的发展、社会需求的提高被越来越多的人体会到。大学中的计算机基础教育所面对的教学群体是非计算机专业的大一新生,这些学生毕业后根据自己的所学所知去工作,为社会各行各业的发展做出贡献。在大学中对这些学生的培养不仅关乎学生自身的发展,更关乎到社会各行业的发展进步。教育部高等学校计算机基础课程教学指导委员会提出了大学计算机基础教学要培养学生对计算机的认知能力、利用计算机解决问题的能力、基于网络的协同能力和信息社会终身学习的能力。这四个方面能力的培养,突出了计算思维能力培养的核心地位,这种能力对学生将来从事任何行业都将是终身受益的。计算机基础教育改革必须紧跟时代的步伐,科学谋划,稳步发展,不断创新。教指委《关于申报大学计算机课程改革项目的通知》中明确给出了大学计算机“普及计算机文化,培养专业应用能力,训练计算思维能力”的总体教学目标,不仅要适应计算机技术发展的要求,更要适应学生终身学习的要求以及社会对计算机应用型人才的要求,注重培养学生解决问题的思想、方法、意识、兴趣和能力,是一种更高层次的认知。

四、以计算思维为导向,拓展计算机基础教育改革的新方向

1.转变教学理念计算机基础教育传统的教学理念以知识加技能为主,过多地将授课的重点放在培养学生对知识点的理解记忆以及计算机操作技能上,这样在学生以后回忆时也仅能记起一些零散的概念、对于一些工具软件的使用等,从知识的延续性上对学生没有较大的影响。在计算机基础教育中,要确立以计算思维能力培养为主的教学理念,不仅要为学生传授知识和技能,更为重要的是在整个教学活动中要贯穿对学生计算思维的引导和训练,逐步养成利用计算思维的方式解决问题的思维习惯。让学生在计算思维能力培养的过程中掌握知识和技能,并能活学活用,解决现实生活或专业领域中的实际问题,进而激发学生的学习兴趣和潜能。要从根本上转变教学观念,师资队伍的建设起着不容小觑的作用。教师是教学活动的组织者,是学生学习的领航人,教师对教学内容的选择、整合以及传授方式等影响着学生的发展方向和发展水平。要将教师现有的计算机知识与计算思维融为一体,对每个老师来说都是对知识体系的一种重组,因而对现有的师资队伍进行多种形式的计算思维的学习、研讨以及交流活动都是很有必要的。

2.重构课程体系课程体系是教学内容和进程的总和,它规定了培养目标实施的规划方案,新的教学理念和人才培养目标要求与之相配套的课程体系。教育部非计算机专业计算机基础教学指导委员会提出“1+X”的课程设置方案,将大学本科阶段非计算机专业的计算机教学大致分为两个层面:一是作为大学计算机公共基础课的计算机基础教学;二是与学生专业或行业需求相结合的计算机专业教学。根据我校实际情况以及学科专业分布重新构建了以计算思维为核心的非计算机专业的大学计算机基础教学课程体系。

(1)计算机基础教学。计算机基础教学依托《大学计算机基础》课程,但从教学内容的组织上做了较大地改进,引入了对计算思维概念、本质以及特征的教学专题,对以往的教学内容进行取舍,确定了计算机与计算思维、信息技术基础、操作系统、算法分析与设计、程序设计基础、多媒体技术及应用、数据库基础、计算机网络、网页制作、信息安全与职业道德共十个教学单元。将计算思维概念的体现以及计算思维能力的引导蕴含在不同的教学单元中,例如通过大量引入日常生活中涉及计算的例子让学生理解计算的概念以及计算无处不在;通过典型实例介绍抽象问题求解的基本方法,让学生理解算法的概念;通过计算机软、硬件系统了解基本计算环境等。

(2)计算机专业教学。计算机专业教学主要分为两个大方向,对理、工、文科开设《程序设计技术》课程,对艺术类开设《photoShop图像处理课程》。《程序设计技术》课程根据学科分类不同分为C语言和,同一种编程语言又根据专业不同而有所侧重。学生在完成计算机基础教学教育之后,已经初步建立了计算思维的意识,借助专业教学使学生将这一思维模式很好地延续下去。特别是在《程序设计技术》课程中所侧重的就是学生对于抽象算法的设计以及利用编程语言将算法具体化、自动化的实施过程,这无疑是计算思维得以体现的一个很好的教学实例。

(3)计算机能力教学。计算机能力教学是前两种教学的升华,包括计算思维能力和学科创新能力。对这两种能力的培养一方面涵盖在计算机基础教学和计算机专业教学之中,另一方面根据不同学科方向开设的公共选修课、学术讲座以及学科竞赛的形式得以体现。目前我校对机电、测控专业开设计算机辅助设计CaD,对食工、化工开设高级编程、对经济管理类开设数据库设计与开发、对艺术类开设网页设计和动漫制作等。这将使学生在完成计算机基础教育过程中所培养的计算思维方式以及计算思维能力得以延续发展,进而满足学生终身学习的要求。

3.更新教学方法由于对学生培养目标进行了重新定位,教学方法也要同步地进行更新,由传统课堂讲授模式改为课堂讲授、小组讨论、专题研讨、问题引导、反思与自我建构等多种模式的结合运用。在每一种教学方法中,都要体现出教师引导的重要性,教师在授课过程中不要把所有内容灌输给学生,要给学生留有一定的思考空间,让部分内容通过学生的主动思考体会出来,这样既可以锻炼学生主动思考问题、解决问题的能力,也能让学生在学习过程中有一定的成就感,所取得的效果比教师直接讲给学生要好很多。通过多种教学模式的运用,一方面可以活跃课堂氛围,另一方面可以引导学生在计算思维的模式下发掘自身的学习潜能。

4.丰富课程资源以往教师提供给学生的教学资源往往是自己的讲课课件、习题答案等,内容、形式都过于单一。随着网络技术的发展,校园网的迅速兴起为教师创建多样化的教学资源提供了平台。教师可以创建本课程的课程网站,将本课程的教学文档(教学大纲、教学课件、教学视频、习题以及答案等)放在网站上,还可以在网站上设置讨论区为师生课下交流提供空间,分阶段测试区为学生自我测试提供平台。计算机基础教育的最终目标是培养学生的计算思维意识和能力,为此还可以在网站上开辟计算思维专栏,将计算思维的概念和理论详细地进行介绍,并结合计算思维在该课程不同章节的具体使用,使学生对计算思维从理论到结合实践的具体应用有一个深刻的认识,从而逐步锻炼并养成利用计算思维模式解决问题的使用习惯。

计算机学科的基本问题篇6

【摘要】以计算思维改革计算机硬件教学是计算机教学改革的必然趋势,但是仅改变教学设计不能达到计算思维训练的目的,还需要更深层次的思考与整合。本文提出了以计算思维改革计算机硬件教学的六个难点,给出了基本的解决思路。从管理层面入手,改变课堂教学整体结构,改革教学的方法和过程,优化教学的设备、环境和教材,只有这样才可能真正达到在计算机硬件教学中贯彻计算思维思想,提高学生科技创新能力的根本目标。

关键词计算思维;计算机硬件;课程;教学;一体化改革

【中图分类号】G624【文献标识码】a

【论文编号】1671-7384(2014)01-0082-04

仅从字面上看,计算思维似乎并不是一个陌生的名词,但是计算思维一直被局限于人工智能领域,直到2006年美国学者周以真发表了“计算思维”一文,才将计算思维提升到一个新的高度。自此国内外学者开始试图将计算思维融入教育、产品与系统开发中,计算机学界也开始研究如何在计算机课程教学中融入“计算思维”,要以计算思维改变计算机教学现状。查阅文献不难发现,目前以计算思维为主导的教学研究内容,最多的还是在计算机基础教育和软件课程教学方面。究其原因,不外乎大学计算机基础教育陷入困境,希望尽快找到前景光明之路;计算机软件教学本身就含有较多的算法内容,课程和计算关系更为密切。若将计算思维作为学科思维模式进行培养,则应将其贯穿于学科教育的全过程,作为计算机专业基础课的“数字电路”、“计算机组成原理”等当然也不能例外。本文是对计算机硬件教学应用计算思维的探索,希望能将计算思维体现在所有计算机课程中,形成计算思维帮助计算机专业教学的完整过程链。

计算思维的内涵解读

在2010年11月,陈国良院士第一次正式提出,将计算思维能力培养作为计算机基础课程教学改革切入点的倡议。2012年11月,教育部把与计算思维有关的课程改革课题纳入教育部研究项目。可以说,目前计算思维在计算机课程改革中的作用、地位、影响等仍处于起步和探索阶段,如何将计算思维有机融入计算机专业教学,更有待于深入研究。

有人简单地将计算思维说成是计算机、软件和计算相关学科中科学家和工程技术人员的思维模式;有人将其提高为运用计算科学的基础概念进行问题求解、系统设计、人类行为理解等涵盖计算机科学的一系列思维活动;也有人将计算思维看作是理论思维、实验思维之外的第三大思维。在美国学界,较为统一的“计算思维”定义是:“计算思维是一种能够把问题及其解决方案表述成为可以有效地进行信息处理形式的思维过程”。

从以上种种说法中我们至少可以解读出计算思维有以下几层含义。

(1)它是一种思考问题的方法,是利用计算科学的概念思考解决问题的方法,计算思想贯穿始终。

(2)它是一种解决问题的手段。是按算法形成解决问题的方案,计算思维对解决问题起至关重要的作用。

(3)它是提升理工类学生创新能力的有效途径。通过这种抽象、严谨的思维训练,能够形成符合现代科技工程领域工作需要的思维模式,有效提高研究和创新能力。

计算思维究竟是否需要在所有的计算机学科推行,关键是要解决两个方面的问题。一是计算思维是否适应教学内容的要求,或是教学内容能否设计成适应计算思维的教学模块;二是将计算思维融入教学是否能够提高教学质量,是否有利于培养学生的创新能力。

计算思维对计算机硬件学科的影响

正是因为计算思维以设计和构造为特征,所以势必影响计算机所有学科。计算思维对计算机硬件学科产生影响的主要原因有以下三方面。

一是计算机硬件是完成计算的基础,所有以计算思维形成的利用计算机解决实际问题的算法,都要借助硬件平台最终实现,若能从开始专业学习阶段就以计算思维理解硬件平台,一定能够更好地理解利用硬件平台解决应用问题的实际算法。

二是计算机硬件课程是专业基础课,若在专业基础课上没有形成计算思维的基本工作模式,势必造成思维过程连续性断裂。既没有形成硬件课程学习的计算思维,不利于后续专业课学习,也没有形成计算思维的训练连续性,不利于计算思维能力的培养。

三是计算思维与产品开发和系统设计密切关联,而计算机硬件课程就是电子产品开发和电子系统设计的基础,因此计算思维必将成为统领计算机硬件课程体系的核心。

因此,尽快将计算思维引入计算机硬件教学环境,是解决计算机人才培养的迫切要求,也是系统解决计算思维帮助计算机学科建设的必然趋势。应该注意的是:将计算思维作为培养专业能力的目标引入计算机硬件教学,不应该是简单的教学设计改革,而应是贯穿教学全过程、全方位的一体化改革,是内容全面、过程连续、手段完善的计算机硬件教学整体解决方案。

基于计算思维开发适合学科特点的教学设计

如何将计算思维有机融入计算机硬件类课程,应该是首先需要解决的问题。以计算思维进行计算机硬件类课程的教学设计,就是运用计算思维进行问题求解或系统设计的过程。是从提出问题开始,以分析问题、找出可能解决问题的方案为第一学习过程。以完善解决方案、解决实际问题为深入学习过程。最后要在解决问题的基础上拔高,争取做到一题多解、一解多题,寻找突破问题难点的思路和解决问题的创新技术方法。因此,以“提出问题分析问题解决问题”的过程进行教学设计完全符合已有的硬件课程的教学过程。在完成解决问题的基础上深入拓展,笔者在以前的教学中也多有尝试,但是没有那么完整和系统。

以计算思维进行教学设计首先要把完整的教学内容拆分成适合课堂教学的任务,由此引出教学改革的第一个难点——教学任务和课堂教学的适应性问题。若实际教学内容能够拆成满足课堂教学时长的任务,一切好说。但一般情况下,一个完整的学习问题求解过程是“提出问题分析问题解决问题问题延伸”。若要认真完成这样一个过程,两个学时似乎很难达到目的,所以基于计算思维的教学改革不只是教师的问题,需要教学管理部门理解和密切配合。只有教学管理层理解课程内容与教学时长的关系,支持配合计算机硬件教学改革,教师才有更多的教学设计自主权。

(1)任务拆分。将完整的教学内容拆分成有机衔接的若干个任务是教学设计的第一步,拆分任务需要考虑完成全部内容的教学时长。

(2)提出问题。具体教学设计的第一个任务就是针对每个学习任务准确刻画出提出问题的方法和内容,可以是“做一个举重裁决电子表决器”的直接任务式,可以是“增加内存芯片时片间线路如何连接”的疑问引导式,还可以展示电子产品实物下达具体任务。不论以何种方式提出问题,关键是能够正确表述问题的实质,便于学生后续分析、分解任务并导出解决问题的思路。

(3)分析问题。面对具体的任务需要找出解决问题的方法和思路,如何引导或便于学生自己找到解决问题的思路或解决方案,是教学改革的第二个难点。教师放和收的尺度不好把握,收放失当会影响教学形式和教学效果,建议教师在教学设计中考虑课程前期多收少放,后期少收多放。

(4)解决问题。解决问题是训练计算思维的关键,以前期形成解决问题的思路为基础,系统解决遇到的问题不是教学中的麻烦问题,形成解决问题的逻辑思想、养成逻辑思维的习惯才是关键。按照问题解决方案去做总会有两种结果,顺利完成和不能完成,发现问题、解决问题是必然的循环过程,善于发现问题、解决问题是整个过程的核心。

(5)问题延伸。最能锻炼学生创新能力的课程内容是最后学习环节的解决问题方法延伸,这也是教学改革的第三个难点,此时会面临许多要破解的难题。如:拆分出来的教学任务有没有延伸的余地、学生有没有延伸学习的能力、学生需要借助哪些知识或工具延伸学习、需要多少时间完成延伸学习、是否所有学生都能完成任务等。

掌握基于计算思维的课堂教学方法

既然将计算思维作为思维训练的重要内容,教学方法、过程和内容就应区别于过去传统的教法,因此,我们认为适用的教学方法是任务引领、案例教学法。教师要从过去的单一讲授的课堂主导者,转变成教会学生完成基本任务,引导学生自主延伸学习任务的辅导者。教师需要提出具体任务,然后帮助学生分析、完成任务。同时,教师要在师生、生生充分讨论后,总结、概括地提出合理的完成任务的思路和解决问题的方法,简单讲解完成基本任务的知识和方法,引导学生自主完成学习任务、用多种方法或思路完成任务。学生需要理解任务,分析、确定完成任务的方法和思路,掌握完成任务的必备知识和技能,自己动手尝试完成任务和以多种方法完成任务。

(1)课堂角色任务转换。教学双方的角色任务转变是教学改革的第四个难点,只有双方都能适应角色任务转变,才能顺利开展课堂教学工作。教师从主导到引导的转变使教学难度增加,教师面对的不是一个整齐划一的课堂,而是进度、方法、内容不一的多个个体,这对教师的掌控能力有更高的要求。学生从被动接受知识到主动完成任务的转变使学习难度增大,认真听讲成为对学习最基本的要求,不但要听得懂还要做得出,更要学会以多种方法和思路完成学习任务,这对学生的学习主动性、思维能力、动手能力都提出了更高的要求。

(2)教学环境的要求。满足教学要求的环境是教学改革的第五个难点,学生自主完成学习任务的教学环境的要求更高。对于计算机硬件教学来说,不只需要实验场地、实验设备,还要大量的实验材料,教学成本与传统教学不能同日而语,学校的教育成本投入必然加大。

(3)教学过程中的关键点。教师提出恰当的教学任务是第一要务,任务过难、过易、偏离学习主题,都很难正常进行后续教学。分析任务提出解决方案的过程实际已经简单圈定了基本的知识范围,教师在帮助学生分析任务时进行必要的知识讲解和铺垫,使学生具有初步的分析和解决问题的能力。在学生自主完成任务的过程中要随时注意可能出现的问题,辅导学生完成基本学习任务。整个教学活动的前期,教师应给学生提供一些拓展的资料,帮助学生了解拓展的基本思路,随着拓展学习能力的不断增强,教师可以完全下放自主权,由学生自己创造性地进行任务拓展。对于有创新特色的成果,教师要及时总结、褒奖,达到相互借鉴、共同学习、共同提高的目的。

开发基于计算思维课堂模式的教材

作为辅助教学的教材,首先应该有适应计算思维课堂教学的模式,其次是有满足计算思维学习的内容,这两个条件限制必然使教材的结构形式和内容有别于传统教材。教材形式如何改变,改变后的结构形式和内容能否被师生接受是教学改革的第六个难点。

(1)教材结构形式。教材结构与教学相适应是对结构形式的基本要求,因此教材不能再拘泥于传统的章节形式,而应该以适应教学的任务为独立单元,以完成任务的知识、技能为连续过程,以具体案例任务为目标,以知识、技能拓展为结束的一个完整体系。以下是以任务为教学单元的典型教材结构形式:

>任务

>任务解决方案

>任务知识

>任务工作提示

>任务拓展基础

其先后次序可以根据需要调整,如明确任务以后,带着任务学知识,具备一定的基础知识再去分析任务、提出解决方案;也可以先提出任务的解决方案,根据工作思路学习所用知识,具备基本知识和技能后再动手解决问题。

(2)教材内容。教材内容与结构形式相适应也是对教材的基本要求。由于基于计算思维是在传统“逻辑教、逻辑学”基础上的延伸,并不能改变知识间的逻辑结构,提出符合知识技能逻辑关系的任务也是关乎改革成败的关键。第一,任务不能改变知识链的逻辑关系,要适应“逻辑教、逻辑学”的逻辑思维训练本质。第二,要达到学做合一,实现“逻辑做”的动手训练。第三,局部知识完整,能满足拓展创新的“逻辑”需要。教材的重要作用是辅助学习,给出完整解决问题的具体工作过程提示,是帮助学生动手解决问题的基础,也是帮助学生形成解决问题思路的要求。学生按教材要求动手完成任务,只是计算思维训练的初级阶段,学生自己提出同一问题新的解决方案或找出同一方案可以解决的不同问题,才是教学要达到的最终目的。所以教材任务的最后部分应该是帮助任务拓展的提示性信息,可以是专业的

参考文献和网站信息,可以是具体的实用性产品说明,也可以是同类任务的列表。

计算思维融入计算机硬件教学是必然趋势,计算思维也必将改变计算机硬件教学涉及的所有内容。因此,研究在计算思维背景下的计算机硬件教学改革有重要的现实意义。简单认为改变教学方法即可以实现计算思维训练的想法不现实也不可行,只有从管理、方法、手段、内容等进行全方位的一体化改革,才能够在教学中贯彻计算思维的训练思想,真正培养具有计算思维基础、具有创新能力的有用人才。

参考文献

[1]Jeannettem.wing.Computationalthinking[J].CommunicationsofaCm,2006,49(3):33-35.

[2]李晓明,蒋宗礼,王志英等.积极研究和推进计算思维能力的培养[J].计算机教育,2012(5):1.

[3]战德臣,聂兰顺.计算思维与大学计算机课程改革的基本思路[J].中国大学教学,2013(2).

计算机学科的基本问题篇7

我校通识课程的指导思想是培养学生具有多学科思维方式和多种分析问题的方法与能力。从这个意义上,计算机作为一个学科,也是一种独特的、新的思维方式,也是进行专业学习和研究的有力的方法和工具。因此如何把握计算机基础类课程体现出这种特点,是我们进行课程体系建设所要着力解决的关键问题。

1计算机基础类课程十年来的四次改革

1998年新浙江大学成立,我们整合了原各校的计算机基础课程,定位为全校本科的公共课程。整合的指导原则是根据当时国家教委有关计算机基础课程建设要求,划分了计算机基础类课程的三个层次:计算机文化课、程序设计基础和计算机应用,如表1所示。该课程体系持续到2001年。

计算机文化课的教学目的是要求掌握计算机的基本使用。教学内容为计算机技能性知识,如windows系统、office软件等。在这个阶段,我国的计算机无论其应用还是市场基本上处于起飞初期,普及程度还相当低,大多数中学还没有开设计算机操作课程。

进入21世纪,我国的中学阶段基本上已经开设了使用计算机的课程,因此大学计算机教学的形式和内容必须随着这一形势进行改革和建设。为此我们在2002年改革计算机文化课,其思路是把计算机文化课中的技能性操作部分改革为直接上机考试的“通过制”,即不再上课教学,但要求学生必须通过参加辅导课或直接参加上机考试取得学分。考试内容和形式与计算机等级考试类似。

作为基础性课程,计算机文化课改革后分设“计算机科学导论”和“网络应用技术基础”,学生根据自己的计算机水平选修。课程设置如表2所示。

“计算机科学导论”课程侧重于比较全面地介绍计算机系统知识,而“网络应用基础基础”侧重于网络技术及应用。前者适合于基础知识比较缺乏的学生,后者适合有一定基础的同学。

不可否认,计算机文化课的通过制考试的高通过率,一部分原因是学生的“考试能力”,再就是技能性知识并不能反映出学生的“计算机能力”。这在我们其后的教学实践中得到的反馈也验证了这一点。选修网络基础课程的同学往往在基础知识上表现得极为缺乏。经过两年的教学实践,我们从2004年开始,将计算机科学导论课和网络应用技术基础课重新合并,新开设的课程名称为“大学计算机基础”,如表3所示。

和文化课不同,在大学计算机基础课中,以知识性系统性为主,兼顾有关技能型知识,两者的比例大约为2:1。也就是说,大学计算机基础的定位是以知识性为主,技能型为辅。这是因为大学新生大多数具备了一定的计算机操作基础,也是为了使学生能够更加全面地理解和学习计算机,为后续课程如程序设计、专业课学习运用计算机奠定必要的基础。

2006年开始执行的06-08本科培养计划,计算机基础类课程被定位于“通识课程”。新的教学计划如表4所示。

到今年已经完成了这一轮(2006-2008)改革后课程的教学任务,我们将在前次实践的基础上制定更加符合课程建设目标的新的教学计划(2009-2011)。

十年间的四次课程改革,每次都是围绕两个问题进行的,一是如何适应教学对象计算机技能不断提高而缺乏理论知识的实际,而是不断探索作为基础类课程的大学计算机如何服务于整个学校人才培养计划,特别是在2006年以来,作为通识课程的大学计算机基础类课程需要把计算机能力、计算机方法学作为重点,是我们进行课程建设的重要任务。

2大学计算机基础课程的特点分析

进行课程建设,必须把握课程的基本属性,了解课程的特点。和大学中其他基础类课程,如数理化、人文类基础课不同,计算机基础受到计算机技术高速发展的影响,课程内容需要不断更新,知识结构需要不断调整,教学手段和方法需要不断改进。这也是我们不断进行课程建设和改革的源动力。我们的对课程特点的认识有以下几点。

2.1“变化”是计算机基础课程建设的主旋律

计算机科学与技术的一个重要特点是,技术的进步往往改变了传统的方法和思路,也改变了原来的知识组成及表达。一个直接的表现是微机的操作系统从DoS过渡到今天的windows,技术上的进步是人机交互从字符方式改变为图形界面,而产生的影响是计算机的操作和使用从难到易,极大地推进了计算机使用的普及。

不但是人机交互的改变,计算机系统结构也在迅速改变。单机的单核处理器模式开始被多核取代。更重要的改变是网络:延伸了计算机的功能,使信息交互、检索和运用的方式发生了变化,人们已经习惯于从网络上获取更多的、更及时的信息。

从程序的角度看,传统的面向过程的程序设计在许多方面被面向对象的设计方法取代,过去强调的程序优化等被应用到嵌入式系统,一般意义上的“计算”被“信息处理”替代。计算机不再是单纯地作为“计算”工具,而是作为事务处理的重要方法……

计算机基础课程的基础知识不断变化,因此需要在课程建设中反映这些变化,而课程建设必然滞后于技术本身的发展,这种矛盾就是进行课程建设的前提。有统计表明,在所有学科中,信息量和信息更替最为频繁和迅速的就是计算机。因此,作为基础课程的大学计算机基础需要,也必须能够反映计算机的这些基本特点。

2.2课程建设的重点从技能性转变为基础性

从科学的角度看,计算机具有本身的科学体系,这个体系本身也在不断的超越自我,更重要的是需要认识它的科学性和基础性。技术进步并没有改变计算机构成的基本元素,也没有改变它的二进制基础和处理器核心地位。因此单纯把技能性的知识作为课程教学的重点,既不符合计算机学科本身的特点,和我们的课程目标也完全背离。因此课程建设的重点定位在“基础性知识和理论”,是回归课程应该具有的属性。因此无论是计算机文化课、程序设计基础课,突出其知识型、系统性,理解计算机、理解程序原理,这是课程建设的任务和目标所在。

计算机作为科学的历程只有半个多世纪,但作为人类追求计算自动化的历程它是和人类文明进程同步的。早期的计算机是专业化的,而今天被称为“桌面时代”,pC机和以pC机为节点的网络已经成为《时代周刊》的封面“人物”。没有人怀疑计算机的重要性,而问题在于需要认识“计算机重要在什么地方”。这也是我们进行计算机基础课程建设需要需要明确和解决的问题,也就是说要反映出课程的基础属性,需要掌握基本知识、系统知识,进而理解计算机既是工具,也是分析问题处理问题的一种先进的方法学。

2.3大学计算机基础类课程适合于按知识点组织教学

无论是教师还是学生,对计算机繁多的名词大有难以应付的感觉。这些名词都有其特定的背景,要理解其意义实在是不容易,即使是计算机专业人员也未必能够应付自如。再如在程序设计课程中,理解计算机语言的抽象表达、形式化结构也是困难的。

实际上,知识之间的关联、交叉、按序渐进的传统的知识表达方法并不能很好地用于计算机基础类课程,因此需要寻找合适的组织方法满足课程本身特点,而知识点教学也许是一个好的选择,也被证明是成功的选择。

知识点教学既是计算机课程本身的特点所致,也是进行计算机系统知识学习的一个好的途径。我们需要解决的问题是采用何种方法组织这些知识点,使之和今天的教学对象的实际更好地结合。这也是大学计算机基础课程中需要不断实践的教学研究问题。

3培养计算机能力是课程建设的目的

非计算专业学习计算机的目的,已经从传统的“应用”进化到“基础理论与应用”。“学习计算机方法、培养计算机意识是大学计算机基础课程建设的根本目的”,这个提法并不是新的,也不是喊口号,问题在于理解什么是计算机方法以及什么是计算机意识,只有明确这些问题才能够有效指导我们开展课程建设。

计算机技能是重要的,但计算机技能不是,也不一定需要通过课程教学实现。已经有科学学研究观点认为,计算机不再单纯是一种工具,它更重要的是一种方法,计算机方法。因此,计算机方法也是重要的,它同样不能仅通过课程教学实现。

我们知道,科学的方法是发现问题并寻找解决问题的思路,这个过程可以通过数理分析、实验或通过大量的统计分析方法得到,也可以通过计算机方法得到,至少目前的许多科学研究和事务处理使用计算机,也离不开计算机,但并不意味着我们已经认识了计算机方法。

通过大学阶段的计算机基础类课程学习,基础课程是建立有关计算机系统的概念,了解计算机是如何处理问题的,计算机如何把对问题的求解归结为程序处理,进而理解程序处理是计算机所独有的方法,也是科学研究处理分析数据所依赖的方法。计算机具有一套完整的处理过程,理解它的处理过程对进一步使用计算机方法解决专业问题的重要性是显见的。即使不是直接去设计程序解决问题,但如何描述问题以使得计算机能够处理问题却是使用计算机的第一步。

计算机方法不能简单地使用语言加以描述,它的形式化表达和处理来自于设计者的思路,来自于设计者所具备的知识结构,特别是对知识的理解和认知结构。计算机本身不能理解和处理我们所理解和处理的问题,因此需要我们和计算机进行交互,这种交互过程本身就是计算机方法的一部分。

有了计算机方法,就有了计算机意识。有专家认为,“计算机意识”是指在解决专业问题过程中能够“知道”如何使用计算机。这是一个很大的问题,显然不能简单地理解“会使用”计算机就能够做到培养“计算机意识”。这不但需要计算机基础类课程,更需要在后续的专业课程与计算机结合。

4计算机基础课程建设未来之展望

显然我们把注着眼点放在“能力”上,并不是弱化计算机的技能,而是引导学生“通过计算机学习计算机”,即充分体现GUi系统的特点,安排适当的课外上机时间和布置相应的实验要求,让学生自己完成,带着问题学习和探究性学习,通过06课程计划中的一轮实践,效果也是预期的。

在程序设计课程中,引导学生从记忆语法到理解算法,通过编写程序理解计算机,这一思路已经得到成功的实践,何钦铭教授担纲的“C程序设计基础及实验”课程是部级精品课程,而且按照“案例驱动、算法为主”的国家“十一五”规划教材(高等教育出版社出版)也已经在国内许多高校广泛推广、使用。

我校的新一轮课程建设已经启动,对大学计算机基础类课程而言,将有新的机会进行更加深入的探索和实践,更好地把握课程的基础属性,围绕通识要求将是我们未来计算机基础类课程建设的主要任务。

参考文献

[1]教育部高等学校计算机科学与技术教学指导委员会《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)[m].北京:高等教育出版社,2006.

[2]陈小红.美国通识课程教学的发展趋势及启示[J].外国教学研究,2006,(1):37~39

计算机学科的基本问题篇8

关键词:算法设计与分析;软件工程;硕士研究生课程;教学改革;计算思维

北京大学软件与微电子学院是一所面向产业和领域需求,培养高层次、实用型、复合交叉型、国际化人才的学院。经过10年的探索与实践,提出一套“产学研用结合”的培养模式和“多层次、多方向、多领域、模块化、开放式”的课程体系[1]。在该课程体系中,“算法设计与分析”课程如何定位?面向工程硕士的算法课与本科生的算法课有什么区别?针对不同本科专业方向和基础的学生如何制订教学实施方案?这些都是需要探索的问题。

一、算法课程的定位和指导思想

教育部软件工程学科课程体系研究课题组在《中国软件工程学科教程》一书中提出了4种分别侧重于计算机科学、软件开发技术、系统认识和工程化理念的不同的本科生教学计划参考模式,其中“数据结构与算法”都是重要的核心课程之一[2]。软件工程是计算机科学与工程和管理学科的交叉学科,算法知识是计算学科的核心内容,是软件工程硕士必备的基础。特别对于从事软件工程的高层次、复合型人才,通过算法课程的学习有助于培养学生的计算思维与系统分析能力。

因此,在北京大学软件与微电子学院的课程体系中,“算法设计与分析”课程是面向全校硕士研究生的公共选修课,同时是软件开发、软件测试与质量保证专业与研发中心硕士研究生的必修课,总计3学分,48学时。

由于软件学院跨学科、多领域、产学研用相结合的培养模式,在制订算法课程的教学计划时遇到以下问题。

问题1:学习算法课的学生来自不同的专业方向,有着不同的培养目标和需求(见表1)。

表1给出了一个北京校区算法课脱产班212人专业方向分布的示例,其中必修学生156人,大约占3/4,剩下的是其他专业方向的选修生。不同专业方向、不同培养模式(脱产和在职班)的学生对算法课有着不同的需求。研究中心的学生由于要参与课题研究,需要较好的计算思维及更强的建模分析能力,其他学生更着重于软件工程实践及面向领域的应用,而在职班的学生则希望了解更多的应用背景。如何根据不同的培养目标确定算法课的教学内容?

问题2:算法课具有一定的难度,需要用到某些数据结构与离散数学的知识。而软件与微电子学院有部分学生本科专业不是计算机或相关专业,没有系统学过这些课程。

根据北京大学软件与微电子学院的特点,面向软件工程学科的硕士研究生算法课要在课程定位、教学目标、教学内容、教学设计等方面不断探索,制订出具有自己特色的教学实施方案。课程建设的指导思想是:

(1)突出能力培养。随着计算机的广泛应用,新的问题不断涌现,新的算法层出不穷,能力的培养尤为重要。与算法和问题求解相关的能力主要体现在以下4个方面:用适当的数学模型描述实际问题的建模能力,运用计算思维确定问题求解方法的算法设计能力,对给定算法做出性能评价的分析能力,对问题难度和复杂性的判定能力。针对软件工程专业硕士,在算法教学中应该着重于前3种能力的培养。

(2)构建统一的知识框架。该框架面向多个专业方向,适应于不同的本科基础,针对多样性的人才培养目标,采用层次化、模块化的结构,使得教师能够根据不同的教学需求制订相应的教学计划。

(3)进行科学的教学设计,不断更新教学内容,引入好的教学方法和教育技术。

(4)建设一系列配套的教学资源,包括教材、电子教案、教学辅导书、网上教学环境等。

(5)注重教师培养,建立老中青结合的教师队伍。

二、算法课程的教学目标与知识框架

针对软件工程专业硕士,算法课程的教学目标是:

(1)掌握计算机算法设计的基本技术――分治策略、动态规划、贪心算法、回溯与分支限界、随机算法等。

(2)掌握计算机算法分析的基本方法――了解评价算法的标准,能够对给定算法做出最坏与平均时间复杂度的估计,了解问题复杂度的界定方法。

(3)了解计算复杂性理论的基本框架和应用。

(4)培养针对实际问题进行建模并选择高效求解算法的能力,使得学生在计算思维、学科方法训练及专业素质方面得到提升。

根据软件工程的特点,算法课的核心内容以算法设计技术与分析方法为主,对于np完全理论以及概率算法、近似算法等研究领域加以简要的介绍。算法课程的知识框架如下图所示。

在算法知识框架中,处于底层的是算法基础,有关知识可以在课程开始给予简要的介绍,也可以包含在其他基础课中。北大软件与微电子学院的做法是:把有关计算机组成、操作系统、程序设计、数据结构等计算机科学与技术的基础知识配置成a、B、C三种类型的基础课,以便不同专业的学生根据自己的情况选修。中间两层由核心知识单元构成,主要涉及算法的设计技术和分析方法,这部分内容是课程重点。第四层涉及计算复杂性理论,重点是np完全理论。面对软件工程专业,只需要简单介绍相关的概念和理论框架,使学生了解什么是问题的难解性。最高层则结合学科进展介绍近似算法、随机算法等热点研究方向,同时联系学生科研实践对课程进行总结。整个教学安排按照48学时进行分配,其中基础知识、算法设计与分析部分可根据不同班次的教学要求分配32~42学时。

算法课程的知识框架图

三、围绕计算思维和能力培养进行教学设计

“计算思维”是美国科学基金会在2006年的研究报告中提出的新概念,也是近年来计算机教育所关注的热点问题。计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[3]。计算思维是通过约简、嵌入、转化和仿真等方法,把一个困难的问题阐释为如何求解它的思维方法。是一种递归思维,是一种采用抽象和分解的方法来控制庞杂的任务或进行巨型复杂系统的设计,是一种选择合适的方式陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法[4]。

作为高层次的软件工程研究和应用人才,应该受到良好的计算思维训练,而算法是计算思维训练的重要一环。算法课程的教学要求是:能够对所求解的问题加以抽象或约简,给出形式化的描述并找到正确高效的求解方法,其中涉及问题抽象、复杂问题的分解和递归处理、算法复杂度的定量分析与权衡等,这些都体现了计算思维。为了强化计算思维的训练,我们在教学设计中考虑的重点是:

1.教学内容,即“讲什么”的问题

大多数学校的本科算法课程主要讲算法的设计步骤,同时强调上机实现。而面向工程硕士的算法课要增加深度,讲出算法技术所隐含的学科思想。这不仅需要介绍具体的设计步骤,更应该讲清楚这样做的理论依据。所设计的算法是否正确?如何证明其正确性?它的优势在哪里?有什么局限性?改进算法的途径是什么?等等。应该通过学习达到举一反三,掌握算法所体现的思维逻辑和学科方法。有些学生在本科阶段修过算法课,分治策略、动态规划、贪心法、分支限界等设计技术都接触过,认为自己没必要再学了;但是,在期末课程总结中表示“算法课收获很大”,“许多在本科没搞清楚的问题都理解了,拿到实际问题有了更清晰的解决思路。”

需要说明的是,针对必修与选修、脱产与在职班的不同教学要求,教师可以在内容上加以调整。比如对于脱产班算法必修课,可以选择上图框架中的全部10个知识模块,教学安排如表2所示。而在职班和其他专业方向的选修课可以多讲一些应用实例,而适当减少模块6-10的内容。

2.教学方法,即“怎样讲”的问题

算法课中涉及较多的数学知识,比较抽象难懂,怎样激发学生的兴趣,做到启发式学习?我们的做法是:

(1)按照“提出问题-阐述方法-解决问题-总结规律-推广应用-讨论提高”的模式进行教学设计。每种设计技术和分析方法都精选了大量的应用实例,这些实例应该满足“建模简单,能够清晰地体现算法的设计思想,使用效果良好,有广泛的应用背景,与其他课程的教学内容有联系”。比如讲贪心法,先通过活动选择问题介绍贪心法的设计思想,举出3种贪心策略,其中1种能够得到最优解,而另外2种是错误的;接着总结了贪心法的设计步骤,指出设计的关键是正确性证明,这是讲授的重点,也是难点;然后通过3个典型的例子详细阐述数学归纳法和交换论证的证明方法;最后在推广应用中介绍了最优前缀码、最小生成树、单源最短路径等具有广泛应用背景的例子,并以找零钱问题为例讨论对某些可能得不到最优解的贪心法如何对输入做参数化分析。

(2)从研究课题和算法领域的新进展中收集典型的实例。学生曾经参与芯片设计、视频检索、资源配置、搜索引擎、安全协议设计等各种问题的研究,其中不少内容都涉及算法和复杂性理论。把学生参与研究的课题成果引入算法教学,学生非常感兴趣,进一步认识到提高算法设计与分析能力的重要性。

3.教学环节

课堂讲授是重要的,但不是全部,学生素质的训练和能力的培养依赖于教学环节的整体设计,比如考核方式、课后作业、课程实践等。

(1)与本科算法教学强调上机实现不同,研究生算法课的课后作业主要以对实际问题的建模、算法设计与分析的训练为主,有关练习主要取自教材[5]。

(2)为了突出能力培养的要求,算法课的考核不但考查学生对相关算法知识的理解,更应该检查是否具有相应的算法设计和分析能力,对问题求解是否有一个正确的思路。设计试卷时实际应用试题至少应该占50%。

(3)对于某些学生课后主动阅读资料、结合科研课题进行算法设计与分析的工作给予更多的关注和指导,并在学习评价上给予鼓励。

(4)课程成绩评定采用综合评定的方式,根据不同教学要求,平时成绩占40%~50%,期末笔试占50%~60%。

4.教学环境

利用现代化教学手段,建立网上教学环境,进行课件、课下答疑、视频讨论等,更好地与学生进行交流。

在北京大学软件与微电子学院的大力支持下,经过多年的课程建设,硕士研究生算法课的教学改革取得了显著的成果。形成了面向软件工程学科的知识体系和教学设计,出版了“十一五”规划教材,开发了电子教案,同时积累了较多的教学资源,建立了老中青相结合的师资队伍。广大学生对算法课的教学也给予了高度的评价。

参考文献:

[1] 北京大学软件与微电子学院课程体系研究组. 北京大学软件与微电子学院课程体系[m]. 北京:高等教育出版社,2011.

[2] 教育部软件工程学科课程体系研究课题组. 中国软件工程学科教程[m]. 北京:清华大学出版社,2005.

[3] Jeannette m. wing. Computational thinking[J]. Communications of the aCm, 2006, 49(3).

计算机学科的基本问题篇9

关键词:计算机思维;数据结构;实践教学

中图分类号:G642文献标识码:a文章编号:1009-3044(2016)10-0152-02

1计算思维

2006年3月,美国卡内基・梅隆大学的周以真教授在美国计算机权威杂志aCm上发表并定义了计算思维(Computationalthinking)。周教授指出,计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动。[1]计算思维的提出,引起了美国教育界以及科学界的广泛关注,直接促成了“大学计算教育振兴的途径”计划,以及更为具体的以“计算思维为核心的课程改革”。

计算思维的重要作用同样引起了国内学者和计算机教育专家的关注,国防科技大学的朱亚宗教授站在人文历史的基础之上,将计算思维归类为三大科学思维(实验思维、理论思维、计算思维)之一。[2]2010年,“九校联盟(C9)计算机基础课程研讨会”上,了《九校联盟(C9)计算机基础教学发展战略联合声明》,确定了以计算思维为核心的计算机基础课程的教学改革。随后,一些计算机教育者开始在“计算机导论”、“程序设计”、“离散数学”等课程的教学中广泛探讨计算思维的应用和实践。

2《数据结构》课程教学中存在的问题

2.1先导课程的基础不够扎实

《C/C++语言程序设计》、《离散数学》等课程是《数据结构》学习的先导课程,对程序设计基础的掌握程度会直接影响学生对《数据结构》理论知识的学习和实验实践训练。目前计算机专业的教学计划中通常会把《C/C++语言程序设计》安排在大学第一学期,与《数据结构》课程开设距离1-2个学期,这造成了学生在学习《数据结构》时对《C/C++语言程序设计》的前导知识已经淡忘模糊,指针、结构体问题甚至会出现知识空白;同时,《C/C++语言程序设计》也是实践性较强的课程,前期学习往往实验训练不足,学生动手能力普遍较差,这些情况对《数据结构》课程的实践教学带来很大困难。

2.2课程知识理论性抽象性强

《数据结构》课程主要讨论现实世界中数据的各种逻辑结构,在计算机中的存储结构以及进行各种非数值运算的算法。目的是使学生掌握数据组织、存储和处理的常用方法以及算法设计的基本方法。《数据结构》是许多后续专业课程的基础,课程本身涉及的概念多、内容广,理论性抽象性比较强,学生在学习理解上普遍存在一定的困难。

2.3课程实践环节薄弱

实践是《数据结构》课程的重要环节,培养学生设计开发复杂高效程序的技能是课程的教学要求之一。具体内容包括:掌握数据组织、存储和处理的常用方法;对经典算法进行编码调试;具备编写较大型程序的能力。实际教学中,课时不足尤其是实验课时不足,造成了课程的实践环节较为薄弱,学生在课程学习后往往反映:“课堂内容能够掌握,但上机编程时困难重重无从下手”。

3计算思维与数据结构

周以真教授将计算思维的特征总结为:概念化,不是程序化;根本的,不是刻板的技能;是人的,不是计算机的思维方式;是数学和工程思维的互补与融合;是思想,不是人造物;面向所有人,所有地方。[3]同时,周教授也阐述了几种具体的计算思维方法:通过约简、嵌入、转化、仿真,把困难的问题阐释成知道问题怎样解决;利用递归思维、并行处理,把代码译成数据,又把数据译成代码;利用抽象和分解来控制庞杂的任务或巨大复杂系统;基于关注分离的方法(SoC方法);按照预防、保护及通过冗余、容错、纠错的方式,从最坏情况进行系统的恢复;利用启发式推理寻求解答;利用海量数据来加快计算等。这些阐述不仅扩散了计算思维的原理,也为我们提供了将来的发展和培养方向。

在国内,桂林电子科技大学董荣胜教授以“思想与方法”替代“基础概念”更改了周以真教授的定义。董教授指出,“计算思维”是从学科思维层面直接讨论学科的根本问题与学科的思维方式,而“计算机方法论”则是从方法论的角度讨论学科的根本问题和学科形态,二者的研究互补性很强,相互促进。

计算思维的核心之一是“抽象”,要求在多个层次上抽象进行思维,进而实现问题求解,这个过程具体到一门课程,最适合的内容就是“数据结构和算法描述”。《数据结构》是计算机专业非常重要的一门专业基础课,主要研究数据之间的逻辑结构、存储结构和对数据的各种基本操作。在《数据结构》的学习中,我们经历这样一种过程:应用数据抽象,建立数据对象模型;应用问题抽象,建立问题的数学模型;应用计算机,实现问题求解的算法。这与计算思维的本质特征“抽象”和“自动化”是相契合的,所以在《数据结构》课程中贯穿计算思维的思想,构建一个基于计算思维的《数据结构》教学体系是可行的,也符合董荣胜教授提出的计算思维与计算机方法论相互补充相互促进。[4]

4结合计算思维训练的《数据结构》教学改革实例

在实际教学中我们发现,大多计算机专业的学生在完成了一门或若干门课程的学习后获得的是零散的概念,对学科知识难以做到系统的理解,甚至直到毕业仍无法建立起利用计算机求解问题的思路。针对这个问题我们曾对部分大三、大四年级学生做过调查,在问到“影响你专业课学习的主要原因是什么”时,82.5%的学生选择了“自己对计算机学科的核心问题,学科涉及的数学方法、系统方法的认识和掌握”,其他学生选择了“自己的动手能力”。计算思维的提出正是要求我们在教学中重视学科所蕴含的思想和方法,为计算机专业课的教学改革提供了思路。

计算机学科的基本问题篇10

关键词:计算思维;实践案例;工程项目;多学科融合

1背景

计算思维是一个抽象的理论概念。所谓思维是指人类大脑认识世界的活动,人们在学习、理解和掌握新鲜事物过程中,常常是通过搜集各种有用信息,然后对其进行分析、整理、加工和改造,从而形成自己特有的思维方法和理解手段,以认识事物的本质和规律。在思维过程中,数学即计算起着非常重要的作用,它是实现从理论思维到实验思维的重要方法。1975年图灵奖共同获得者HerbertSimon和allennewell提出思维就是计算认知,就是计算的思想。由此可见,计算和思维是密不可分的。理论思维、计算思维和实验思维统称为3大科学思维。

计算思维主要是由美国卡内基·梅隆大学的周以真教授提出的,她认为计算思维就是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动脚。计算思维的本质是抽象和自动化,计算思维中的抽象最终要求能够机械地一步步自动执行。那么,在整个计算思维活动中,谁负责抽象?谁又进行自动化呢?这就涉及计算思维的2个对象主体,即人和计算机。在解决实际问题时,计算思维对象主体之一的人对问题进行抽象和处理,将实际需求转化为问题空间的求解模型,再用编程语言加以实现,最后由计算机按照人的指令自动执行和求解程序。

通俗地讲,计算思维就是通过人的思维进行计算,即人通过特定的思维活动使用计算机解决实际问题。计算机在解题过程中充当媒介的作用,它是人和机器相结合的产物。当然,人也可以取代计算机实现计算,即计算思维是可以完全脱离机器的,但是在某些方面,计算机的性能要优于人,如机器执行指令的速度、精确度和可靠性等方面远远高于人类;而人的思维能力则是计算机无法模拟的。计算机赋予人强大的计算能力,而人给予计算机激情。因此,电子计算机的创造给计算思维带来深远的影响。计算机实现了人和机器、思维和计算的完美结合,同时也使得人们有勇气实现“只有想不到,没有做不到”的境界。

2计算思维与计算机科学

计算思维与计算机科学有着密不可分的联系,计算思维促进计算机科学的发展和创新,计算机科学推动计算思维的研究和应用。

随着以计算机科学为基础的信息技术迅猛发展,计算思维对各个学科的影响尤其是对计算机学科的作用日益凸显。计算思维的本质是抽象和自动化,核心是基于计算模型和约束的问题求解;而计算机科学恰恰是利用抽象思维建立求解模型并将实际问题转化为符号语言,再利用计算机自动执行的。其中,抽象是计算机学科的最基本原理,而自动计算则是计算机学科的最显著特征。计算思维反映的是计算机学科最本质的特征和最核心的方法。计算思维虽不是计算机科学的特有产物,甚至它的出现要先于计算机科学,但是计算机的发明却给计算思维的研究和发展带来根本性变化。计算机在数学计算和信息处理中无可比拟的优势,使得原本只有在理论层面可以构造的事物变成了现实世界可以实现的实物,拓展了人类认知世界和解决问题的能力和范围,推进了计算思维在形式、内容和表述等方面的探索。

因此,计算机学科是最能反映计算思维能力的学科,将计算思维引入计算机学科教学也是十分有必要的。计算思维能力是计算机专业人才所应具备的最基本和最重要的能力之一。

3计算机学科教学现状

目前,计算机学科教学面临一些问题,主要体现在以下几个方面。

1)课程设置无优势。很多工科院系都开设了与计算机相关的各门课程,制定的课程体系比计算机专业要求还高。在毫无课程优势的条件下,计算机专业学生又缺乏其他学科知识背景,解决特定领域问题时存在沟通和开发障碍。单就从利用计算机解决实际问题的层面看,计算机专业学生与非计算机专业学生相比无明显优势。

2)理论和实践衔接不紧密。计算机学科具有明显的理工科特征,是一门集科学、工程和应用于一体的学科。在计算机学科中,很多课程都设置有理论教学和配套实验2个环节,但实际教学中存在理论知识和实践内容衔接不紧密,实验案例更新较慢,实验内容的设计难易不均或偏离理论教学等问题,导致学生很难通过实践课程的学习深入理解、掌握和验证所学理论。

3)重教轻育。目前,很多教师非常重视课程内容的更新、教学方法的改革和授课技能的提高,却时常忽略学生思维和能力的培养。教师只关注如何将知识以成品形式灌输给学生和检验学生对知识“复制”程度等“教”的培养,而缺乏对学生主动获取知识、重新构建知识、再次利用知识等“育”的延伸。现有的教学过程是间断的,没有延续性。在授课学时和课程容量等客观因素限制下,教师传授给学生的是经过抽象、加工和简化后的现成模型和理想化系统,学生所学的学科知识和现实世界的实际应用基本上是脱节的。即便理论知识掌握的再高深和实践技能锻炼的再娴熟,学生依然是纸上谈兵,无法独立解决真实世界中的各种问题。

4注重计算思维培养

从上述分析不难看出,教师在计算机学科中加强学生计算思维的培养是基本的,也是必须的要求。那么,如何将计算思维融入计算机学科中,实现思维与教学的无缝连接呢?我们主要从以下几个方面实现。

1)利用实践案例“教”计算思维。

有过计算机学科教学经历的教师都有这样的体会,教给学生一门知识或技能相对容易,但教会学生某种能力或思维却很难,原因在于计算机涉及的很多内容都具有非物理特征,如程序执行、系统调用和内存分配等活动都是透明的,无法被感知。学习者不能直接获取感性认识,更难建立起理性认识并指导实践活动。另外,抽象是使用计算机解决实际问题的第一步,但它也是无形之物,是人脑的思考过程。我们如何找到一个有效载体,将这些“只可意会”的模型和理论赋予其中,让学生更好且更容易地体会计算机系统及其工作原理呢?答案是寓抽象于实践。实践是将思维形象化和具体化的重要手段。在授课过程中,教师应注重理论知识和实践能力的结合,设计各种典型案例并着重讲解如何将实际问题转化成形式化描述的思考过程,加强学生抽象思维和逻辑思维的培养。这就是目前常用的案例化教学模式,而在融入计算思维的前提下,它又要满足更高要求。

①案例既要源于现实世界,又不能过于复杂和难以理解。教学案例可分为3个层次:底层为现实世界中的事物模型;中层为信息世界中的抽象模型;顶层为机器世界中的数据模型。以计算思维为特征的教学案例的3个层次如图1所示。

与现存的基于中层或顶层的案例设计不同,以计算思维为特征的案例教学要以现实世界中的具体事物为研究对象,旨在让学生能够身临其境地理解“计算机科学家”将事物模型一步步转化为计算机所能理解的符号模型的求解过程,从而减少学生只会解答理想模型而不能求解现实问题的现象。另外,案例设计要难易适中和繁简得当,要对实际问题进行裁剪和提炼。教师应结合相关理论内容,模拟“精化后”的、更理性、较直接的知识发现过程。学生则通过循序渐进的思维锻炼,逐步掌握高度的抽象思维和严密的逻辑思维,努力构建计算机模型的概念。

②案例既要体现人的思考过程,又要有计算机的行为。以计算思维为特征的案例教学要能体现人和计算机协同解决问题的全过程,即演示人如何从现实世界抽象模型转而到信息世界,再如何从信息世界描述数据转而到机器世界,计算机如何在机器世界执行程序并反馈结果的各个阶段。

教师要让学生理解人和计算机之间的辩证关系,即人指挥计算机工作,计算机约束人的操作;更要进一步让学生体会人和计算机在高效处理、性能优化和便捷使用等方面的互制作用,即人的思维越深入,模型构建越合理,计算机运行效率越高,系统可靠性越强,而计算机性能越高、运算速度越快,人需顾忌的因素越小,思维受限越低。学生在探究型教学模式的培养下,从实际案例中体会人和计算机在问题求解过程中的不同角色和任务分工,逐渐将计算思维的思想和方法融入一般事务的处理中,形成自己的经验和思路,构成以教促学的回路。计算思维模式下的教学如图2所示。

2)利用工程项目“学”计算思维。

教学的最终目的是学以致用。作为教育者,我们不希望培养出来的只是会解决书本问题的“读书机器”,而期盼能培养出像计算机科学家那样思考问题的优秀人才。对于产生的任何思想和建立的模型,我们最终都要将其运用到实际项目中加以验证和检验。因此,当学生具备一定的理论基础和对客观事物的抽象能力,学会如何对具体问题建模后,教师最好能以工程项目的实现为最终考核目标。

项目式培养模式的引入既能最大程度地发挥学生的知识和技能,又能极力缩短理论和现实之间的距离,是打通课堂教学和实际应用的最好手段。它实现了理论和实践、思维和能力的无缝连接。教师在将工程项目引入课程教学时,应注意以下几点。

①工程项目既要紧扣理论知识,又要高于书本中的知识内容。教师在以工程项目为主要教学手段的学生计算思维能力培养中,以工程项目的选取作为最关键的环节。工程项目的选取直接影响学生是否能成功迈出从现实世界进入信息世界的第一步。工程项目不同于普通案例,它源于现实世界的复杂系统并且具有实际意义,在难度、深度和广度上均高于普通案例。学生在学习过程中会遇到较大阻力。教师要在项目内容的选取、难易程度的设置、书本内容和课外知识的结合等各方面下工夫和花精力,可结合理论内容对所选项目进行适当删减和修改以适应教学实情,添加一定的注释和题解以帮助学生理解,最好还能根据学生的不同水平制订不同的实现目标。

②工程项目应尽量涵盖多个知识点。工程项目的实现是一个相对较长的过程,若教师为每个知识点都配置一个与之对应的工程项目,既不现实又无意义,但要想仅依赖一个实际项目讲解所有知识点更不可能。因此,教师需要根据课程大纲和学时要求采取分模块教学的方法,以模块形式组织知识点,以模块内容构建项目。每个项目应包含若干相关知识点且项目容量要适度,既不能大而全,又不要小而碎。

3)利用多学科融合“促”计算思维。

计算思维的培养不是计算机单一学科或信息技术某几个学科的要求,而是整个大学通识教育的重要组成部分。思维可以不受学科限制,不同专业背景的学生在思考问题的角度、解决问题的方法、处理问题的手段等方面具有共通性。计算机学科的普及和发展使得自身与各学科的联系越来越紧密,以计算机学科为中心的多学科交叉融合的网状研究形态正在逐渐形成。以计算机学科为中心的多学科交叉融合如图3所示。

为了让学生尤其是非计算机专业的学生更好地理解和掌握计算机的原理和本质,更好地应用计算机技术解决本学科实际问题,教师在计算机课程教学中应以计算机的核心概念、重要原理和先进技术为依托,以计算思维的解决思路为主线,以多学科融合的典型案例为延伸,打破各学科之间的壁垒,实现思维的迁移。