第四章计算科学教学计划与课程体系4.1计算科学(专业)的培养规格和目标高等学校计算科学专业本科以上教育主要是为计算机产业,重要部门的计算机应用,中、高等学校教学和研究院所的科研工作培养人才。毕业生的主要流向应该是计算机公司,产品技术含量较高的工业企业,各行各业计算中心,中等以上学校和科研院所。但是,市场经济的发展规律并不能保证毕业生按照预设的目标流向和分布。在现实社会中,不同行业,不同层次单位对计算科学人才的需求各不相同,因此,在高等学校,本科计算科学(专业)教育常存在两种基本的培养模式。●研究生教育・研究生培养规格和目标高等学校计算科学专业研究生教育培养适应计算科学学科发展,国家社会发展与进步事业实际需要,德、智、体、美全面发展,具有良好的科学素养和文化修养,系统地、较好地掌握本学科公共基础知识,较好地掌握本学科基本概念、基本原理、基本方法、基本技术等基础理论知识;理论联系实际,受到良好的计算科学基本实验技术与技能等实践能力的基本训练,受到科学研究与实际应用训练的计算科学专门人才。除了对各级毕业生在德育、体育、外语、文化方面的要求外,对专业业务要求应有如下具体培养规格和目标。计算科学硕士研究生教育的培养规格和目标是:⑴为未来从事计算科学学科教学、研究、应用与开发提供一个深入开展工作的坚实的理论、方法和技术基础;⑵毕业生应了解整个学科当前的发展现状和未来的发展趋势,了解学科发展的一般规律,掌握学科深入发展所需的研究生一级的核心基础知识和某一专业化方向的基本原理、基本技术和基本方法;⑶具有在较高的起点上,即能够在阅读和正确理解相当于国际重要学术刊物,包括国内“计算机学报”、“软件学报”、“计算机研究与发展”等同档刊物(注:以国务院学位委员会评估文件为准)一个方向上若干学术论文和技术报告的起点上,独立开展学术研究或专业技术工作的能力;⑷具有对一些计算科学技术项目所提出的思想、方法、技术和工程技术路线的能行性作出准确估计的能力;⑸理论联系实际,具有运用所学专业知识分析、解决中低等难度专业技术问题的能力;博士研究生毕业后,除对一般毕业研究生的要求外,应达到如下培养规格和目标:⑴在计算科学学科各方向的重要的基本概念、基本原理和基本技术,特别是典型方法、典型实例和学科形态方面,应具有本学科比较广博的专业基础知识,进一步掌握学科深入发展所需的核心基础知识和自己所从事的专业化方向的基本原理、基本方法和基本技术;⑵具有在较高的起点上,即能够在阅读和正确理解相当于国际一流学术刊物一个方向上若干学术论文和技术报告的起点上,独立开展有创造性的学术研究或专业技术工作的能力,或主持有学术深度的专业技术工作。●本科生教育・本科生培养规格和目标高等学校计算科学本科专业培养适应计算科学学科发展,国家社会发展与进步事业实际需要,德、智、体、美全面发展,具有良好的科学素养和文化修养,系统地、较好地掌握理工科公共基础知识,较好地掌握本学科基本概念、基本原理、基本方法、基本技术等基础(理论)知识;理论联系实际,受到良好的计算科学基本实验技术与技能等实践能力的基本训练,受到科学研究与实际应用初步训练的计算科学专门人才。毕业生适宜到科研部门和高、中等学校从事科学研究和教学工作;适宜到计算机产业、重要部门、以及相近学科的有关单位从事计算科学开发研究、应用与管理等工作;可以继续攻读计算科学及其相关学科的硕士学位。其中,计算科学专业第一类(A类)教学计划是以培养计算科学学术人才和技术人才,着眼于学生未来成为主任工程师、总工程师、教授、学者和高级专业管理部门主管官员为具体目标;第二类(B类)教学计划是以培养专业技术熟练的软硬件生产、开发、经营、维护工程师,以及专业技术管理工程师为具体目标。两种教育模式各有侧重和特点。在教学内容方面,A类教育重在基础理论、基本技术和未来深造,或从事科学研究和专业技术研究与开发能力的培养,B类教育重在基本理论、基本技术、应用技术和实际应用与开发能力的培养。计算科学本科生A类教育模式的培养规格和目标是:思想政治和德育方面(略,请参看国家统一规定);体育方面(略,请参看国家统一规定);业务方面:⑴系统地、较好地掌握理工科公共基础知识,较好地掌握本学科基本概念、基本原理、基本方法、基本技术等基础(理论)知识,理论联系实际,受到良好的科学思维和科学实验的基本训练;⑵毕业生应初步了解整个学科的知识组织结构、学科形态、典型方法、核心概念和学科基本工作流程方式,初步了解学科当前的发展现状和未来的发展趋势,掌握计算科学本科一级的核心基础知识和某一专业化方向的专业基础知识,为未来在计算科学领域从事一般教学、研究、应用与开发或深造提供一个开展工作的坚实的专业知识基础;⑶毕业生应初步具有进一步深入掌握学科核心基础知识和某一专业化方向专业基础知识的能力,初步具有对一般计算科学技术项目所提出的思想、方法、技术和工程技术路线的能行性作出基本估计的能力;⑷能通过文献检索和其他方式阅读中外文书刊,获取专业科技信息。理论联系实际,具有运用所学专业知识分析、解决简单的专业技术问题的能力。文化方面:⑴对中国传统文化有一个基本的普及性的了解,对中外文化的某一方面有一定的基础;⑵通过积极参与学校的文化建设,在文艺修养、审美情趣、言谈举止、礼仪风貌等方面达到一定水平。计算科学本科生B类教育模式的培养规格和目标是:思想政治和德育方面(略,请参看国家统一规定);体育方面(略,请参看国家统一规定);业务方面:⑴为未来从事计算科学学科一般应用、开发、维护、技术服务和技术管理提供一个开展工作的比较坚实的理论、方法和技术基础,为未来在本学科掌握流行新方法和新技术提供一个计算科学核心的专业知识基础;⑵毕业生应初步了解整个学科的知识组织结构、学科形态、典型方法、核心概念和学科基本工作流程方式,初步了解当前的发展现状和未来的发展趋势,掌握计算科学本科一级主要的核心基础知识的基本概念、基本原理、基本技术和基本方法;⑶熟悉某一种或若干种流行的计算机系统(包括硬件、软件工具和环境),在操作使用计算机进行数据处理,维护、开发和管理方面具有比较熟练地开展一般性专业技术工作的能力,具有借助专利资料和各种渠道获得的软硬件产品的技术资料掌握新产品、新技术的操作与使用的能力;⑷理论联系实际,具有运用所学专业知识分析、解决简单的专业技术问题的能力;文化方面:参考A类模式4.2计算科学(专业)参考教学计划与课程体系(略)4.3如何学好计算科学根据多年的教学实践经验,学生最关心的也是最重要的问题有以下四个:⑴如何实现思维方式的数学化?⑵计算科学专业各学期重点课程有哪些?⑶实验课程在计算科学教学计划中的作用和地位是什么?⑷如何提高专业能力?下面,我们就这四个问题进行详细的讨论。●如何实现思维方式的数学化在计算科学教育界,高等学校的教师们普遍都承认数学教育对学生学习计算科学专业知识的重要性。但重要性体现在哪里呢?我们认为:数学教育对计算科学专业人才的培养有两个目的:一是通过教学使学生掌握进一步学习这一学科所需要的数学基础知识;二是通过严格的数学训练,使学生实现思维方式或思维过程的数学化。如何来实现思维方式的数学化呢?这是许多学生普遍有疑问而且又感兴趣的问题。下面,我们从思维方式数学化的定义出发,讨论这一观点的内在涵义及其实现途径,进而提出实际操作方法,并结合例子作详细说明。所谓思维方式的数学化是指从普通人的思维方式转向数学家工作的思维方式。在科学界,数学家的思维方式与其它学科的学者很不相同。他们认识客观事物,对客观事物的观察和分析,一般并不直接关心事物的物理、化学、生物学等特性,而是通过对事物的抽象,运用特殊的符号或语言系统,研究事物在空间中的数量关系、位置关系、结构关系和变换规律,研究具有共同抽象概念、性质的一类事物的某些内在规律,以此指导人们从一个侧面去认识事物。逻辑是严格数学论证和科学论证的主要工具,而数理逻辑则是从数学的角度为数学研究乃至科学研究提供了科学推理的逻辑基础。由于数学对客观事物规律的描述是建立在严格而又抽象的符号推演的基础之上,因而使得数学家工作的思维方式与其它学科很不一样。大多数数学家是经过严格的数学训练实现思维方式数学化的,但要将这种思维方式上升为系统的理性思维方式,则主要取决于人们的数理逻辑或形式逻辑的修养。为了增加读者的感性认识,进一步加深大家对数学重要性的认同,我们先举几个实例。例给定一个字符串长度不超过m的集合,请将集合中的每一个字符串反转一下(或称调个个儿)。例如,对字符串abc,就是求cba。注意,除最终的输出外不允许使用输入/输出操作。本书提供了两种描述与计算问题的解法,可能还有更好的解法。显然,由于解题过程思想方法的不同,数学表述也不同。计算机执行运算操作时的“机械、死板、严格、精密”的特性是数学与计算科学建立天然联系的主要内在原因。计算理论业已表明,理论上,凡是可以由计算机处理的问题,包括问题描述和处理过程,均可以数学化或形式化,即用数学符号系统来描述;反之,凡是可以用以离散数学为代表的构造性数学描述的问题及其处理过程,只要论域是有穷的,或虽论域为无穷但存在有穷表示,也一定能够用计算机来处理。至于现实是否能行则取决于计算复杂性和实际需要的计算时间和空间。由此可以看出学习数学,特别是学习以离散数学为代表的构造性数学对计算科学专业工作者的重要性。今天,虽然许多人能够完成大量计算机应用的任务而并不需要很多的数学训练,但这不等于说计算科学不需要高深的数学,原因是仅凭直觉和经验就能顺利处理的那些问题,不仅说明了这些问题是足够简单的,而且还由于科学家和工程师们所做的大量前期工作使得其中一些原来困难的问题在前人工作的基础上已变得较为容易。当然,在这些足够简单的问题中有许多问题的处理工作在性质上本不属于计算科学专业在社会分工中确定的范畴,它们大都属于计算机具体应用(应归属各具体学科)的范畴,而不属于计算机应用(指计算机应用于各学科的共性技术研究)的范畴。对非计算科学专业从事计算机具体应用的人员来说,数学也许并不重要,他们只需要懂得怎样使用各种计算机软硬件资源,如编译程序、操作系统、数据库管理系统、有关的硬件接口、各种软件工具和应用软件程序包的使用就可以了,但对计算科学专业人员,没有坚实的数学基础,就不可能从事较高起点的,而且是其它学科专业人员不能胜任的计算科学专业技术工作,特别是那些需要专业人员自己寻找解决问题的途径、理论、方法和技术的问题。由此可见思维过程的数学化对计算科学专业人员的重要性。学习数学基础课程是实现思维方式数学化的有效途径。然而,由于计算机处理能力上的离散特性,以及受专业学制年限的制约,对于计算科学专业的本科学生,还不能也没有充分必要地象普通数学专业的学生那样学习大多数基础数学专业的数学课程。按照计算科学专业数学教育的两个目的,教学的重点应是离散数学和少量理论计算机科学的内容。但是,计算科学专业后续课程中广泛出现各种应用数学知识的情况和事实上对学习离散数学与理论计算机科学必须具有较好的数学修养的要求,使我们的教学不可能直接从一年级就进入构造性数学的教学环节,实现思维方式数学化的步骤必须分两个阶段来完成。第一阶段,通过对空间解析几何、数学分析、高等代数、常微分方程、概率统计、计算方法等数学课程的学习,使学生熟悉和习惯于使用数学语言和符号系统对研究的数学对象进行严格的分析、表述、计算和推演,为学习后续课程打下坚实的数学基础,初步实现思维方式的数学化,初步达到数学上的某种成熟性。第二阶段,数学学习转向以计算科学为背景的离散数学和理论计算机科学的学习,特别是通过对数理逻辑的系统学习,使学生将思维方式由感性逐步上升为系统的理性思维方式,进一步实现思维方式的数学化,最终使学生达到良好的数学上的某种成熟性。通过数学教学途径来实现学生思维方式的数学化是最便捷、可靠的途径。计算科学创新研究与开发能力的高低主要取决于研究开发者的数学基础,特别是数学上的某种成熟性和思维方式的数学化。数学上的成熟性和思维方式的数学化不是一般工科数学教学所能实现的。在第一阶段的数学教育中,重要的是教学中要在诸如数学分