论文部分内容阅读
摘要:实现能力导向的教育,需要弄清能力培养的内涵、厘清专业能力的构成、研究专业能力培养与教学实施等。本文讨论计算机类专业人才的4大专业基本能力及其82个能力点、能力培养要求、能力培养与主干课程,以及创新能力的培养。
关键词:计算机专业;能力构成;能力培养
一、能力导向的教育
《国家中长期教育改革和发展规划纲要(2010—2020年)》指出,要按照邓小平同志提出的“面向现代化,面向世界,面向未来”的要求办好教育,把全面提高高等教育质量作为发展高等教育的核心任务,推动教育事业在新的历史起点上科学发展。深入理解并努力实现教育面向未来的属性,是实现教育科学发展的基础。
教育“面向未来”,首先是面向社会的未来,“未来的实际问题”和“未来被发现的知识”。其“未来”属性,使得我们必须把“学生能够有效地解决‘未来的实际问题’,能够在未来发现新的知识并有效地利用这些知识”作为教育教学追求的目标。所以,今天的教育强调的应该是足以支撑这些“未来要求”的基础——基础知识和基本能力。其次是面向学生的未来。面向学生的未来,需要提升教学目标,即“不是学生今天‘学了什么’,而是学生未来‘能做什么’”。这就是“教是为了不教”,“学是为了应用”。因此,教师的追求应该从自己“教了什么”,迁移到学生“学了什么、会做什么”。
因此,强调可持续发展能力培养的本科教育必须摆脱以知识传授为主,努力唤醒学生的力量,培养其自我性、主动性、抽象的归纳力和理解力,培养其自我决定能力,使教育成为“导致学习的交流活动”。这些都表现出能力导向教育的要求。倡导和实现能力导向的教育,是提高教育教学水平和质量的重要方面。
能力导向的教育反对简单的知识灌输,而是以知识为载体,通过探讨知识发现、问题求解过程及其相关思想和方法的使用,培养学生综合地、灵活地、探索性地运用知识有效地解决实际问题的能力,逐渐形成健全人格。能力导向教育同时希望通过“扬长”以求教育的效率和对卓越的追求,即在人才培养上应该扬长以求效率、求卓越。高等学校的分类、分专业,为扬长教育提供基础。在全面实施素质教育中,要充分发挥不同高等学校和不同专业的特长,突出专业能力和素质的培养,更好地体现学生的主要诉求,提高教育的针对性、有效性和效率。而且团队合作、学习、表达、交流、克服困难、勇于探索等基本素质可以更有针对性地在专业教育中加以体现。
要想实现能力导向的教育,需解决三个问题:专业能力的构成,教学落实,培养目标达成的判定。为了解决前两个问题,我们开展了计算机类专业人才的专业能力(简称为计算机专业能力)的构成与培养研究。研究以作者提出的计算思维、算法设计与分析、程序设计与实现,以及系统的认知、设计、开发与应用四大基本能力为基本框架,结合美国同行在CC2005中提出的59个能力点,给出了计算机类专业人才专业能力结构:4大专业基本能力、13个方面、82个能力点,以及这些专业能力的培养。
二、计算机专业能力构成
1.计算思维能力
计算思维能力的核心是基于计算机考虑问题求解。
广义而言,可以理解为如何有效地将计算机技术用于生产、生活和科学实践活动,提高工作效率,高质量地解决遇到的问题。包括从日常生活的最基本利用到科学研究领域中的应用,以及作为三大科学研究方式之一而对“计算”的有效利用。从这个意义上讲,计算思维能力并不是计算机专业人才的“专利”,而是生活在信息时代的人都应该具备的能力。
狭义而言,可以理解为如何按照计算机求解问题的基本方式去考虑问题的求解,以便构建出不同类型的计算系统。计算机问题求解,首先是问题的表示。需要通过抽象进行形式化处理,建立适当的模型,然后实现计算机表示和处理。而且在计算机系统“独立”实现对问题的求解之前,还需先在设计者头脑中“构建”并“运行”各个适当抽象级别上的处理系统(过程)。计算系统及其运行大多数情况下的非物理特性决定本学科基础分支学科的基本教育原理是抽象第一。
计算机专业人才以狭义的计算思维能力为主,主要包括9个能力点:问题的符号表示、问题求解过程的符号表示、逻辑思维、抽象思维、形式化证明、建立模型、实现类计算、实现模型计算、利用计算机技术。
2.算法设计与分析能力
算法是计算系统工作的基础。计算机专业人才需建立算法的概念,具备算法意识,以及能对具有相当规模、较复杂问题的求解算法进行设计与分析,并对算法的能行性和效率进行适当的研究。
算法设计与分析能力主要包括8个能力点:简单算法的设计、复杂算法的设计、简单算法的分析、复杂算法的分析、证明理论结果、开发程序设计问题的解、设计概念验证性程序、确定是否有更优的解。
3.程序设计与实现能力
程序设计与实现包括基于软件和硬件的设计与实现。按照图灵奖的获得者Wirth的观点,“在较高的认识层次上,硬件和软件是一样的”,因为问题的求解最终都可以归结为用一定形式的数据表示物质世界的给定系统,并使用算法通过对这些数据的变换来获得相应的处理结果,只不过载体可能不同。程序设计与实现涉及具体载体下的实现策略、方法、过程,追求相应的社会、经济和技术的可行性、效率、成本、效益等。
通常需要掌握适当的语言和程序设计思想与方法,用优质的程序实现算法,包括程序设计、软硬件实现、调试、维护。程序设计与实现能力被归纳为3个能力点:小型程序设计、大型程序设计、系统程序设计。
4.系统能力
系统的认知、设计、开发与应用能力简称为系统能力。基本要求是以系统的观点,站在系统的全局去认识问题、分析问题和解决问题,并实现系统的构建、优化、使用。学生具有一定的程序设计与实现能力后,通过提高系统能力,实现综合能力的提升。
这里的系统能力的关键包含两个层面上的意义:一是对一定规模的系统的“全局掌控能力”(全局地掌控一定规模系统);另一方面是在构建系统时,系统地考虑问题的求解。
系统认知能力主要包括6个能力点:基本系统软件使用、系统软件构成、基本的计算机硬件系统构成、网络系统的构成、硬件系统的性能、软件系统的性能。
系统设计能力主要包括19个能力点:设计数字电路、设计功能部件、设计芯片、对芯片进行程序设计、设计嵌入式系统、设计计算机外设、设计复杂传感器系统、设计人机友好的设备、设计计算机、设计应用程序、设计数据库管理系统、数据库建模和设计、设计智能系统、开发业务解决方案、评价新型搜索引擎、定义信息系统需求、设计信息系统、设计网络结构、实验设计。
系统开发能力主要包括23个能力点:实现应用程序、配置应用程序、实现智能系统、开发新的软件环境、创建安全系统、配置和集成电子商务软件、开发多媒体解决方案、配置和集成e-learning系统、创建软件用户界面、制作图形或者游戏软件、配置数据库产品、实现信息检索软件、制定企业信息规划、制定计算机资源规划、选择网络部件、安装计算机网络、实现通信软件、实现移动计算系统、实现嵌入式系统、实现数字电路、实现信息系统、实验实现、实验分析。
系统应用能力主要包括14个能力点:使用应用程序、培训用户使用信息系统、维护和更新信息系统、管理高级别安全要求项目、管理一个组织的网站、选择数据库产品、管理数据库、数据库用户的培训与支持、资源升级调度与预算、计算机安装与升级、计算机软件安装与升级、管理计算机网络、管理通信资源、管理移动计算资源。
三、体现不同类型人才的不同要求
不同类型的人才将适应不同的问题空间,他们的知识取向不同,需要强调不同学科形态的内容,对各个能力点的要求也是不一样的,正是这些不同,体现了不同类型人才的不同教育要求。例如,从大的框架上讲,研究型人才需要强化计算思维能力和算法设计与分析能力的培养;应用型人才要求强化程序设计与实现能力和系统能力的培养,而以其他两种能力为辅。
参照CC2005,不同类型计算机人才(专业方向)在各个能力点的要求分成6级,分别用0~5表示。0:表示不要求;1:表示基本了解有关要求和做法;2:表示了解有关要求和做法;3:表示理解有关要求和做法;4:表示基本具备;5:表示较好地具备。
例如,计算思维能力中的“问题的符号表示”能力点,对计算机科学、计算机工程、软件工程的人才,要求达到5;对信息技术和信息系统的人才,要求达到3。“实现类计算”能力点,对计算机科学的人才,要求达到5;对计算机工程和软件工程的人才,要求达到4;对信息技术和信息系统的人才,要求达到1。算法设计与分析能力中的“证明理论结果”能力点,对计算机科学的人才,要求达到5;对计算机工程和软件工程的人才,要求达到3;对信息技术的人才,要求达到1;而对信息系统的人才,则不要求。系统能力中的“实现嵌入式系统”能力点,对计算机科学的人才,要求达到2;对计算机工程要求达到5;对软件工程的人才,要求达到3;对信息技术和信息系统的人才,要求达到1。“对芯片进行程序设计”能力点,对计算机科学和软件工程的人才,要求达到1;对计算机工程的人才,要求达到5;而对信息技术和信息系统的人才则不要求。
四、课程教学与能力的培养
专业基本能力的培养,是通过一系列的理论和实践教学活动,在循序渐进的过程中逐渐完成。通过强化系列课程的设置与建设,构成能力培养的“阶梯式”训练系统,使学生循序渐进地在一系列的修养中“形成”一些良好的学科习惯,潜移默化地“养成”学科要求的能力和素质。作为基础的课程,将起到核心作用。所以,必须强调课程教学为专业人才培养的总目标服务,发挥每门课程在专业人才培养体系中的作用。
例如,离散数学体现对象状态及其变换描述的形式化和离散性特征,为计算系统实现问题求解提供强有力的基本手段,对培养学生的计算思维能力具有重要的意义。形式语言与自动机理论以形式化的视角研究计算系统,该课程的主要特点是抽象和形式化,既有严格的理论证明,又具有很强的构造性,包含一些基本模型、模型的建立、性质等,直接促进计算思维所包含的各能力点的培养,引导学生实现从“实例计算”到“类计算/模型计算”的迁移。
再例如,程序设计课程在于培养学生利用高级程序设计语言进行问题求解的基本能力。包括使学生了解高级程序设计语言的结构,掌握基本的计算机问题求解的思想方法以及基本的程序设计过程和技巧,熟悉适应计算机的问题求解基本模式,特别是引导学生转换思维方式。其后续课程,数据结构与算法则需要进一步提高学生数据结构、算法和程序计算能力。通过更复杂问题的表示和处理,将计算从“实例”初步推进到“类”。在这个过程中把“设计”作为问题求解的基础,使学生一开始就养成一个良好的问题求解习惯。
在有一定的基础后,以基本计算机硬件系统、软件系统的构建为载体,引导学生学习一些重要的系统设计思想,分层次地考虑问题,逐步求精,学会关注和掌握系统构成、系统逻辑,引导学生从宏观到微观去分析、理解和把握系统,逐步提升学生的眼光,引导学生站在系统级上对算法和程序进行再认识。
五、创新能力培养
创新能力的培养已经成为高等教育的重要目的。一般来讲,就教育而言,培养学生的创新能力,应该理解为培养学生综合运用所学知识创造性地解决实际问题的能力。创新能力的培养没有捷径可走,需要扎扎实实的积累。作者认为,创新能力(Innvation ability)等于厚基础(Fundaments)、善思维(Thinking),再加上常实践(Practice)。可用如下公式表示:
I=F+T+P
一是强化创新意识,不断激发其创新的欲望。创新需要张扬“个性”,鼓励“扬长教育”。创新意识和创新精神的建立在于鼓励学生,特别是教育学生能够进行自我鼓励,自觉地寻求顶峰体验。
二是强调学习、工作、探索中的“理性”成分。“理性”是瞄准目标的、更有效的行为的保障。所谓“理性”,通俗地讲,就是要求人们在明确的思想(理论)指导下,沿着较清晰的运行路线,按照一定的规律进行特定的活动。扎实的理论基础、学科方法学以及适合学科特点的思维能力和思维方法是支撑该学科的人员进行“理性”思维和“理性”实践的三大基础。
三是引导学生学习思考问题。从鼓励学生多问为什么开始,教会学生不墨守成规,积极寻找更合理的答案。教师要跳出知识的圈子,在传授知识的同时,更注重思想、方法的传授。鼓励研究性学习,引导学生探索未知,倡导学科上的好奇心和批判精神,带领他们一步一步地走入“理智”的探索空间。
四是强调不断实践。理论知识的掌握程度对实践能力的影响至关重要,恰当的实践活动又对掌握好理论知识有非常重要的促进作用。有人将知识分成理论知识和实践,并认为理论知识是食物、实践是消化,是有一定道理的。从计算机学科抽象、理论、设计三种形态来看,也要求将理论和实践紧密地结合起来,这是计算学科的理论性和实践性紧密结合的特征的体现。实际上,理论可以使学生“站到巨人的肩膀上,并拥有一个智慧的脑”,而实践则是用智慧的脑,练就一双灵巧的手,去开创一个新世界。
要想使实践教学能够达到预期目标,必须重视总体规划的合理性、实验类型和内容的启发性、丰富性,实践环节的系统性。特别要注意实践教学中的选题规模和复杂度必须逐步提升,不可在一个水平上重复。实践可以是多途径、多形式的,不能局限于狭义的实验室活动和走进企业的活动。而且不同的专业、不同的专题对应的最有效实践在“形式”、“途径”甚至“地点”等方面都可能是不同的。
除了教学计划中安排的实践教学外,鼓励学有余力的学生参与教授们的“科研活动”,通过实际的科研工作,以获得直接的科研锻炼。
《高等学校计算机科学与技术专业人才专业能力构成与培养》已经出版,全书共5部分。第一部分是绪论;第二部分论述计算机专业能力的构成;第三部分从概念及相关性说明、作用、培养以及要注意的问题等方面描述82个能力点;第四部分选择离散数学、形式语言与自动机、程序设计、数据结构与算法、编译原理、操作系统、数据库系统、计算机组成、计算机网络、软件工程10门课程,示例性地给出课程教学如何为能力培养服务;第五部分讨论创新意识和能力培养问题。
能力的难测性,使得能力培养的研究极具挑战性。目前完成的工作仅仅是一个开始,特别是如何测定能力的培养状况、判定培养目标的达成等,对教育者和受教育者来说都十分重要,这些都有待于未来的进一步研究与实践。
参考文献:
[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业人才专业能力构成与培养[M]. 北京:机械工业出版社,2010.
[2] 中国计算机科学与技术学科教程2002研究小组. 中国计算机科学与技术学科教程2002(China Computing Curricula2002)[M]. 北京:清华大学出版社,2002.
[3] 蒋宗礼. 以能力培养为导向,提高计算学科教育教学水平[J]. 中国大学教学,2008(8):35-37.
[4] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业核心课程教学实施方案[M]. 北京:高等教育出版社,2009.
[5] The Joint Task Force for Computing Curricula 2005. Computing Curricula 2005[EB/OL].http/www.acm.org/education/ curricula, 2005-09-30..
[6] 蒋宗礼等. 论计算机学科的形态与研究生培养的关系[J]. 学位与研究生教育,2004(11):11-15.
[责任编辑:余大品]
关键词:计算机专业;能力构成;能力培养
一、能力导向的教育
《国家中长期教育改革和发展规划纲要(2010—2020年)》指出,要按照邓小平同志提出的“面向现代化,面向世界,面向未来”的要求办好教育,把全面提高高等教育质量作为发展高等教育的核心任务,推动教育事业在新的历史起点上科学发展。深入理解并努力实现教育面向未来的属性,是实现教育科学发展的基础。
教育“面向未来”,首先是面向社会的未来,“未来的实际问题”和“未来被发现的知识”。其“未来”属性,使得我们必须把“学生能够有效地解决‘未来的实际问题’,能够在未来发现新的知识并有效地利用这些知识”作为教育教学追求的目标。所以,今天的教育强调的应该是足以支撑这些“未来要求”的基础——基础知识和基本能力。其次是面向学生的未来。面向学生的未来,需要提升教学目标,即“不是学生今天‘学了什么’,而是学生未来‘能做什么’”。这就是“教是为了不教”,“学是为了应用”。因此,教师的追求应该从自己“教了什么”,迁移到学生“学了什么、会做什么”。
因此,强调可持续发展能力培养的本科教育必须摆脱以知识传授为主,努力唤醒学生的力量,培养其自我性、主动性、抽象的归纳力和理解力,培养其自我决定能力,使教育成为“导致学习的交流活动”。这些都表现出能力导向教育的要求。倡导和实现能力导向的教育,是提高教育教学水平和质量的重要方面。
能力导向的教育反对简单的知识灌输,而是以知识为载体,通过探讨知识发现、问题求解过程及其相关思想和方法的使用,培养学生综合地、灵活地、探索性地运用知识有效地解决实际问题的能力,逐渐形成健全人格。能力导向教育同时希望通过“扬长”以求教育的效率和对卓越的追求,即在人才培养上应该扬长以求效率、求卓越。高等学校的分类、分专业,为扬长教育提供基础。在全面实施素质教育中,要充分发挥不同高等学校和不同专业的特长,突出专业能力和素质的培养,更好地体现学生的主要诉求,提高教育的针对性、有效性和效率。而且团队合作、学习、表达、交流、克服困难、勇于探索等基本素质可以更有针对性地在专业教育中加以体现。
要想实现能力导向的教育,需解决三个问题:专业能力的构成,教学落实,培养目标达成的判定。为了解决前两个问题,我们开展了计算机类专业人才的专业能力(简称为计算机专业能力)的构成与培养研究。研究以作者提出的计算思维、算法设计与分析、程序设计与实现,以及系统的认知、设计、开发与应用四大基本能力为基本框架,结合美国同行在CC2005中提出的59个能力点,给出了计算机类专业人才专业能力结构:4大专业基本能力、13个方面、82个能力点,以及这些专业能力的培养。
二、计算机专业能力构成
1.计算思维能力
计算思维能力的核心是基于计算机考虑问题求解。
广义而言,可以理解为如何有效地将计算机技术用于生产、生活和科学实践活动,提高工作效率,高质量地解决遇到的问题。包括从日常生活的最基本利用到科学研究领域中的应用,以及作为三大科学研究方式之一而对“计算”的有效利用。从这个意义上讲,计算思维能力并不是计算机专业人才的“专利”,而是生活在信息时代的人都应该具备的能力。
狭义而言,可以理解为如何按照计算机求解问题的基本方式去考虑问题的求解,以便构建出不同类型的计算系统。计算机问题求解,首先是问题的表示。需要通过抽象进行形式化处理,建立适当的模型,然后实现计算机表示和处理。而且在计算机系统“独立”实现对问题的求解之前,还需先在设计者头脑中“构建”并“运行”各个适当抽象级别上的处理系统(过程)。计算系统及其运行大多数情况下的非物理特性决定本学科基础分支学科的基本教育原理是抽象第一。
计算机专业人才以狭义的计算思维能力为主,主要包括9个能力点:问题的符号表示、问题求解过程的符号表示、逻辑思维、抽象思维、形式化证明、建立模型、实现类计算、实现模型计算、利用计算机技术。
2.算法设计与分析能力
算法是计算系统工作的基础。计算机专业人才需建立算法的概念,具备算法意识,以及能对具有相当规模、较复杂问题的求解算法进行设计与分析,并对算法的能行性和效率进行适当的研究。
算法设计与分析能力主要包括8个能力点:简单算法的设计、复杂算法的设计、简单算法的分析、复杂算法的分析、证明理论结果、开发程序设计问题的解、设计概念验证性程序、确定是否有更优的解。
3.程序设计与实现能力
程序设计与实现包括基于软件和硬件的设计与实现。按照图灵奖的获得者Wirth的观点,“在较高的认识层次上,硬件和软件是一样的”,因为问题的求解最终都可以归结为用一定形式的数据表示物质世界的给定系统,并使用算法通过对这些数据的变换来获得相应的处理结果,只不过载体可能不同。程序设计与实现涉及具体载体下的实现策略、方法、过程,追求相应的社会、经济和技术的可行性、效率、成本、效益等。
通常需要掌握适当的语言和程序设计思想与方法,用优质的程序实现算法,包括程序设计、软硬件实现、调试、维护。程序设计与实现能力被归纳为3个能力点:小型程序设计、大型程序设计、系统程序设计。
4.系统能力
系统的认知、设计、开发与应用能力简称为系统能力。基本要求是以系统的观点,站在系统的全局去认识问题、分析问题和解决问题,并实现系统的构建、优化、使用。学生具有一定的程序设计与实现能力后,通过提高系统能力,实现综合能力的提升。
这里的系统能力的关键包含两个层面上的意义:一是对一定规模的系统的“全局掌控能力”(全局地掌控一定规模系统);另一方面是在构建系统时,系统地考虑问题的求解。
系统认知能力主要包括6个能力点:基本系统软件使用、系统软件构成、基本的计算机硬件系统构成、网络系统的构成、硬件系统的性能、软件系统的性能。
系统设计能力主要包括19个能力点:设计数字电路、设计功能部件、设计芯片、对芯片进行程序设计、设计嵌入式系统、设计计算机外设、设计复杂传感器系统、设计人机友好的设备、设计计算机、设计应用程序、设计数据库管理系统、数据库建模和设计、设计智能系统、开发业务解决方案、评价新型搜索引擎、定义信息系统需求、设计信息系统、设计网络结构、实验设计。
系统开发能力主要包括23个能力点:实现应用程序、配置应用程序、实现智能系统、开发新的软件环境、创建安全系统、配置和集成电子商务软件、开发多媒体解决方案、配置和集成e-learning系统、创建软件用户界面、制作图形或者游戏软件、配置数据库产品、实现信息检索软件、制定企业信息规划、制定计算机资源规划、选择网络部件、安装计算机网络、实现通信软件、实现移动计算系统、实现嵌入式系统、实现数字电路、实现信息系统、实验实现、实验分析。
系统应用能力主要包括14个能力点:使用应用程序、培训用户使用信息系统、维护和更新信息系统、管理高级别安全要求项目、管理一个组织的网站、选择数据库产品、管理数据库、数据库用户的培训与支持、资源升级调度与预算、计算机安装与升级、计算机软件安装与升级、管理计算机网络、管理通信资源、管理移动计算资源。
三、体现不同类型人才的不同要求
不同类型的人才将适应不同的问题空间,他们的知识取向不同,需要强调不同学科形态的内容,对各个能力点的要求也是不一样的,正是这些不同,体现了不同类型人才的不同教育要求。例如,从大的框架上讲,研究型人才需要强化计算思维能力和算法设计与分析能力的培养;应用型人才要求强化程序设计与实现能力和系统能力的培养,而以其他两种能力为辅。
参照CC2005,不同类型计算机人才(专业方向)在各个能力点的要求分成6级,分别用0~5表示。0:表示不要求;1:表示基本了解有关要求和做法;2:表示了解有关要求和做法;3:表示理解有关要求和做法;4:表示基本具备;5:表示较好地具备。
例如,计算思维能力中的“问题的符号表示”能力点,对计算机科学、计算机工程、软件工程的人才,要求达到5;对信息技术和信息系统的人才,要求达到3。“实现类计算”能力点,对计算机科学的人才,要求达到5;对计算机工程和软件工程的人才,要求达到4;对信息技术和信息系统的人才,要求达到1。算法设计与分析能力中的“证明理论结果”能力点,对计算机科学的人才,要求达到5;对计算机工程和软件工程的人才,要求达到3;对信息技术的人才,要求达到1;而对信息系统的人才,则不要求。系统能力中的“实现嵌入式系统”能力点,对计算机科学的人才,要求达到2;对计算机工程要求达到5;对软件工程的人才,要求达到3;对信息技术和信息系统的人才,要求达到1。“对芯片进行程序设计”能力点,对计算机科学和软件工程的人才,要求达到1;对计算机工程的人才,要求达到5;而对信息技术和信息系统的人才则不要求。
四、课程教学与能力的培养
专业基本能力的培养,是通过一系列的理论和实践教学活动,在循序渐进的过程中逐渐完成。通过强化系列课程的设置与建设,构成能力培养的“阶梯式”训练系统,使学生循序渐进地在一系列的修养中“形成”一些良好的学科习惯,潜移默化地“养成”学科要求的能力和素质。作为基础的课程,将起到核心作用。所以,必须强调课程教学为专业人才培养的总目标服务,发挥每门课程在专业人才培养体系中的作用。
例如,离散数学体现对象状态及其变换描述的形式化和离散性特征,为计算系统实现问题求解提供强有力的基本手段,对培养学生的计算思维能力具有重要的意义。形式语言与自动机理论以形式化的视角研究计算系统,该课程的主要特点是抽象和形式化,既有严格的理论证明,又具有很强的构造性,包含一些基本模型、模型的建立、性质等,直接促进计算思维所包含的各能力点的培养,引导学生实现从“实例计算”到“类计算/模型计算”的迁移。
再例如,程序设计课程在于培养学生利用高级程序设计语言进行问题求解的基本能力。包括使学生了解高级程序设计语言的结构,掌握基本的计算机问题求解的思想方法以及基本的程序设计过程和技巧,熟悉适应计算机的问题求解基本模式,特别是引导学生转换思维方式。其后续课程,数据结构与算法则需要进一步提高学生数据结构、算法和程序计算能力。通过更复杂问题的表示和处理,将计算从“实例”初步推进到“类”。在这个过程中把“设计”作为问题求解的基础,使学生一开始就养成一个良好的问题求解习惯。
在有一定的基础后,以基本计算机硬件系统、软件系统的构建为载体,引导学生学习一些重要的系统设计思想,分层次地考虑问题,逐步求精,学会关注和掌握系统构成、系统逻辑,引导学生从宏观到微观去分析、理解和把握系统,逐步提升学生的眼光,引导学生站在系统级上对算法和程序进行再认识。
五、创新能力培养
创新能力的培养已经成为高等教育的重要目的。一般来讲,就教育而言,培养学生的创新能力,应该理解为培养学生综合运用所学知识创造性地解决实际问题的能力。创新能力的培养没有捷径可走,需要扎扎实实的积累。作者认为,创新能力(Innvation ability)等于厚基础(Fundaments)、善思维(Thinking),再加上常实践(Practice)。可用如下公式表示:
I=F+T+P
一是强化创新意识,不断激发其创新的欲望。创新需要张扬“个性”,鼓励“扬长教育”。创新意识和创新精神的建立在于鼓励学生,特别是教育学生能够进行自我鼓励,自觉地寻求顶峰体验。
二是强调学习、工作、探索中的“理性”成分。“理性”是瞄准目标的、更有效的行为的保障。所谓“理性”,通俗地讲,就是要求人们在明确的思想(理论)指导下,沿着较清晰的运行路线,按照一定的规律进行特定的活动。扎实的理论基础、学科方法学以及适合学科特点的思维能力和思维方法是支撑该学科的人员进行“理性”思维和“理性”实践的三大基础。
三是引导学生学习思考问题。从鼓励学生多问为什么开始,教会学生不墨守成规,积极寻找更合理的答案。教师要跳出知识的圈子,在传授知识的同时,更注重思想、方法的传授。鼓励研究性学习,引导学生探索未知,倡导学科上的好奇心和批判精神,带领他们一步一步地走入“理智”的探索空间。
四是强调不断实践。理论知识的掌握程度对实践能力的影响至关重要,恰当的实践活动又对掌握好理论知识有非常重要的促进作用。有人将知识分成理论知识和实践,并认为理论知识是食物、实践是消化,是有一定道理的。从计算机学科抽象、理论、设计三种形态来看,也要求将理论和实践紧密地结合起来,这是计算学科的理论性和实践性紧密结合的特征的体现。实际上,理论可以使学生“站到巨人的肩膀上,并拥有一个智慧的脑”,而实践则是用智慧的脑,练就一双灵巧的手,去开创一个新世界。
要想使实践教学能够达到预期目标,必须重视总体规划的合理性、实验类型和内容的启发性、丰富性,实践环节的系统性。特别要注意实践教学中的选题规模和复杂度必须逐步提升,不可在一个水平上重复。实践可以是多途径、多形式的,不能局限于狭义的实验室活动和走进企业的活动。而且不同的专业、不同的专题对应的最有效实践在“形式”、“途径”甚至“地点”等方面都可能是不同的。
除了教学计划中安排的实践教学外,鼓励学有余力的学生参与教授们的“科研活动”,通过实际的科研工作,以获得直接的科研锻炼。
《高等学校计算机科学与技术专业人才专业能力构成与培养》已经出版,全书共5部分。第一部分是绪论;第二部分论述计算机专业能力的构成;第三部分从概念及相关性说明、作用、培养以及要注意的问题等方面描述82个能力点;第四部分选择离散数学、形式语言与自动机、程序设计、数据结构与算法、编译原理、操作系统、数据库系统、计算机组成、计算机网络、软件工程10门课程,示例性地给出课程教学如何为能力培养服务;第五部分讨论创新意识和能力培养问题。
能力的难测性,使得能力培养的研究极具挑战性。目前完成的工作仅仅是一个开始,特别是如何测定能力的培养状况、判定培养目标的达成等,对教育者和受教育者来说都十分重要,这些都有待于未来的进一步研究与实践。
参考文献:
[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业人才专业能力构成与培养[M]. 北京:机械工业出版社,2010.
[2] 中国计算机科学与技术学科教程2002研究小组. 中国计算机科学与技术学科教程2002(China Computing Curricula2002)[M]. 北京:清华大学出版社,2002.
[3] 蒋宗礼. 以能力培养为导向,提高计算学科教育教学水平[J]. 中国大学教学,2008(8):35-37.
[4] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业核心课程教学实施方案[M]. 北京:高等教育出版社,2009.
[5] The Joint Task Force for Computing Curricula 2005. Computing Curricula 2005[EB/OL].http/www.acm.org/education/ curricula, 2005-09-30..
[6] 蒋宗礼等. 论计算机学科的形态与研究生培养的关系[J]. 学位与研究生教育,2004(11):11-15.
[责任编辑:余大品]