1、计算机科学与技术(计算机科学方向)专业规范教育部高等学校计算机科学与技术专业教学指导分委员会2005 年 10 月 17 日近十年来,计算机学科发生了巨大的变化,这一变化对计算机专业的教育产生了深远的影响。从历史上看,在计算机学科发展的早期,数学、逻辑、电子学、程序语言和程序设计是支撑学科发展的主要专业基础知识。到了 20 世纪 6070 年代,数据结构与算法、计算机原理、编译技术、操作系统、程序设计与程序语言、数据库系统原理等成为学科的主要专业基础知识。从 20 世纪 80 年代开始,并行与分布计算、网络技术、软件工程等开始成为新的学科内容,突破了计算机学科原有的专业设置框架,逐渐形成了在“
2、计算机科学与技术”一个专业之下分为计算机科学、计算机工程、软件工程、信息技术、信息系统等多个专业方向的新格局。本规范分为五个部分:一、历史、现状及发展方向;二、培养目标与规格;三、教育内容和知识体系;四、办学条件;五、主要参考指标。第三部分的专业教育内容和知识体系仅阐明了知识体系、课程设置的总体描述与指导原则,详细内容见附录 1 与附录 2。在历史、现状及发展方向这部分中,规范从整个专业,即计算机科学与技术的角度进行了阐述,而没有局限在计算机科学领域内。一、历史、现状及发展方向1. 主干学科概况 计算机科学是计算机科学与技术领域最早出现的学科。从 1956 我国高校开办“计算装置与仪器”专业算
3、起,到现在采用的“计算机科学与技术”一级学科的称谓,计算机专业教育在中国已经走过了近 50 年的历程。(1) 发展初期(19561977 年)1956 年,国务院制定了新中国第一个科学技术发展规划,即19561967 年十二年科学技术发展远景规划 。这个规划除确定了 56 项重大研究任务以外,还确定了发展电子计算机、半导体、无线电电子学和自动化技术等 6 项紧急措施,从而促使我国计算机教育事业发展第一个高潮的到来。到 1958 年,共有 15 所高校开办了计算机专业。该阶段的计算机教育有以下特点:1) 专业创始人从国外学习归来,带回计算机新技术。2) 大多采取“以任务带学科,以科研带队伍”的发
4、展模式,人才培养面向国防和科学研究。这一发展模式一直持续到 70 年代中期,形成了中国计算机教育发展的独特模式。3) 当时新建的计算机专业大多称为“计算装置” ,强调从基本元器件开始的计算机硬件系统的设计与实现,大多设置在自动控制系,形成了与应用系统结合的计算机教育。同时,一些重点大学在数学系新建了计算数学专业,从事算法设计人才的培养,这是我国早期培养的软件人才具有坚实数学基础的一个重要原因。1966 年至 1976 年期间,大学教育处于一个特殊的历史时期,计算机专业的教育基本上处于停滞状态,没有正规的专业教学计划,缺乏专业教材。这使得我国计算机人才培养与教育的发展与国外产生了极大的差距。(2
5、) 发展时期(19781993 年) 随着十年动乱的结束,国家的工作重点逐步转移到四个现代化建设上。在国家科委主持起草的1978 1985 年全国科学技术发展规划纲要中,又把电子计算机列为 8 个影响全局的综合性课题,放在突出的地位,我国计算机教育迎来了第二个发展高潮。在 1978198614年之间共有 74 所院校开办了计算机专业。在 70 年代末和 80 年代,计算机专业基本上限定在重点理工科院校里。90 年代开始,随着计算机应用的越来越广泛,社会对计算机人才的需求量高速增长,很多大学都开办起计算机、计算机应用技术专业。研究生教育随着学位制的恢复开始走上正轨,并逐渐地扩大规模。硕士研究生教
6、育、博士研究生教育开始在探索中逐渐完善和提高。该阶段的计算机教育有以下特点:1) 改革开放促进了计算机新技术、新课程的引进。例如,80 年代初,在向西方先进国家大量派出进修教师、访问学者的同时,一些重点大学邀请美国大学教授来讲课与讲学,对外交流逐步展开。2) 计算机软件开始得到普遍重视,计算机应用技术教育开始普及。随着微处理器技术的快速发展,数据管理、信息处理、工业控制、人工智能、数字图像等应用技术教育在计算机教育中增强。3) 高层次人才培养开始起步。1978 年,我国恢复研究生招生。经国务院学位委员会审定,在部分重点大学建立了计算机学科硕士点和博士点,多层次的计算机人才教育体系基本形成。(3
7、) 高速发展时期(1994 年至今) 90 年代,万维网(World Wide Web)在世界范围的蓬勃兴起使“计算”的概念发生了深刻的变化,社会对于计算机人才的需求急剧增长。这种变化不可避免地反映到教育中,一方面,若干相关课程被引入到计算机专业的教学计划中,另一方面,一些学校办起了网络工程、软件工程、电子商务、信息安全等新专业。1995 年全国科学技术大会的召开, “科教兴国”发展战略的实施,使我国计算机教育进入一个快速发展期,现在开设计算机科学与技术专业的 505 所高校中,有 368 所是在 1994 年后开办的。该阶段的计算机教育特点是:1) 计算机专业的内涵和外延发生较大变化。计算机
8、专业的教育内容已不再局限于传统的计算理论、计算机组织与体系结构,而计算机软件、计算机网络、多媒体及其应用技术、网络与信息安全等教育内容得以强化。2) 办学单位和在校生人数迅速增加,一大批青年人补充进教师队伍,在数量上逐步完成教学第一线人员的新老交替。3) 教材内容逐步与国际接轨。2000 年前后,我国高等教育出版社、清华大学出版社、机械工业出版社等从国外著名出版公司引进了成套的计算机专业教材。回顾我国计算机教育历史,可以得到一些计算机教育发展规律的启迪。1) 计算机教育发展要以国家需求为目标我国计算机教育发展的三次高潮均是在国家提出科技进步、经济发展的阶段目标前提下形成的。进入 21 世纪,党
9、的十六大提出“加快信息化进程,用信息化带动工业化” ,我国的计算机教育必须服务于这一宏伟目标。 2) 发展中国家必须注重学习国际先进技术我国计算机教育发展的三个重要阶段,均与从国外引进和学习先进的计算机技术、学习先进的教育思想与内容密不可分。在当今信息时代,我们必须在坚持自主教育创新的同时,注重与国际计算机教育接轨。3) 充分认识计算机专业的实践性特点我国计算机专业的初建历程本身就是一部计算机教育与实践相结合的创业史,许多优秀学生的成长历程也说明计算机实践教育之重要性。因此,新世纪的计算机教育不仅要重视扎实的专业基础理论学习,更要强调系统设计与开发能力的培养。4) 师资队伍是保证教育质量的关键
10、历史证明了高质量的计算机教育必须依赖于高素质的师资队伍,目前的当务之急是要提高青年教师的业务素质和教学水平。155) 计算机教育内容必须与时俱进48 年来,我国计算机教育历程就是不断完善和更新的过程。因此,计算机教育内容必须与时俱进,应该在吸收国际先进的计算机教育理念、模式、体系的同时,提出适合我国国情的计算机教育发展思路和创新模式,以促进我国计算机教育的健康发展。2. 主干学科的方法论介绍在计算机科学与技术学科的教育中,学科方法论的内容占有非常重要的地位。计算机科学与技术学科方法论系统研究该领域认识和实践过程中使用的一般方法,研究这些方法及其性质、特点、内在联系、变化与发展,它主要包含三个方
11、面:学科方法论的三个过程(又称为学科的三个形态) 、重复出现的 12 个基本概念、典型的学科方法。前者描述了认识和实践的过程,后两者分别描述了贯穿于认识和实践过程中问题求解的基本方面与要点。(1) 三个过程学科方法论的三个过程为:理论、抽象、设计。理论:它与数学所用方法类似,主要要素为定义和公理、定理、证明、结果的解释。用这一过程来建立和理解计算机科学与技术学科所依据的数学原理。其研究内容的基本特征是构造性数学特征。抽象(模型化):源于实验科学,主要要素为数据采集方法和假设的形式说明、模型的构造与预测、实验分析、结果分析。在为可能的算法、数据结构和系统结构等构造模型时使用此过程。然后对所建立的
12、模型的假设、不同的设计策略,以及所依据的理论进行实验。用于和实验相关的研究,包括分析和探索计算的局限性、有效性、新计算模型的特性,以及对未加以证明的理论的预测的验证。抽象的结果为概念、符号、模型。设计:源于工程学,用来开发求解给定问题的系统和设备。主要要素为需求说明、规格说明、设计和实现方法、测试和分析,用来开发求解给定问题的系统。(2) 重复出现的 12 个基本概念蕴含学科基本思想的重要概念是计算机科学与技术学科方法论的第二个方面。作为问题求解过程中要考虑的一些要点,对它们的深入了解,并在实际工作中使用这些概念,是毕业生成为成熟的计算机科学家和工程师的重要标志之一。这些概念包括:绑定:通过把
13、一个抽象的概念和附加特性相联系使得抽象的概念具体化的过程。也就是具体问题的合理抽象描述和抽象描述对具体问题的恰当表示。大问题的复杂性:随着问题规模的增长,复杂性呈非线性增加的效应。这是区分和选择各种方法的重要因素。依此来度量不同的数据规模、问题空间和程序规模。概念和形式模型:对一个想法或问题进行形式化、特征化、可视化和思维的各种方法。这是实现计算机问题求解的最典型、最有效的途径。一致性和完备性:包括正确性、健壮性和可靠性这类相关概念。从某种意义上说,这是一个计算机系统所追求的。效率:关于诸如空间、时间、人力、财力等资源消耗的度量,要求人们在设计和实现系统时,要对相应的因素给予强烈的关注。演化:
14、变更的实施和它的意义。变更时对整个系统的各个层次所造成的影响,以及面对变更的事实,抽象、技术和系统的适应性及充分性。抽象层次:计算中抽象的本质和使用。在处理复杂事物、构造系统、隐藏细节和获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象,能够表达一个实体和系统。按空间排序:在计算机科学与技术学科中局部性和近邻性的概念。除物理上的定位外(如在网络和存储中) ,还包括组织方式的定位(如:处理机进程、类型定义和有关操作的定位) ,即概念上的定位(如:软件的辖域、耦合、内聚) 。16按时间排序:事件排序的时间概念。包括在形式概念中把时间作为参数,把时间作为分布于空间的进程同步的手段,作为算法
15、执行的基本要素。重用:在新的情况或环境下,特定的技术概念和系统成分可被再次使用的能力。安全性:软件和硬件系统对合适的请求给予响应,并抗拒不合适的、非预期的请求以保护自己的能力;系统承受灾难事件的能力。折衷与决策:计算中折衷的现实和这种折衷的处理意见。选择一种设计来代替另一种设计所产生的技术、经济、文化及方面的影响。折衷是存在于所有知识领域各层次上的基本事实。例如:算法研究中时间和空间的折衷,对于矛盾的设计目标的折衷,硬件设计折衷,在各种制约下优化计算能力所蕴含的折衷。(3) 典型的学科方法典型的学科方法是计算机科学与技术学科方法论的第三部分。包括数学方法和系统科学方法。1) 数学方法数学方法是
16、指以数学为工具进行科学研究的方法,该方法用数学语言表达事物的状态、关系和过程,经推导形成解释和判断。包括问题的描述、变换。如:公理化方法、构造性方法(以递归、归纳和迭代为代表) 、内涵与外延方法、模型化与具体化方法等。其基本特征是:高度抽象、高精确、具有普遍意义。它是科学技术研究简洁精确的形式化语言、数量分析和计算方法、逻辑推理工具。2) 系统科学方法系统科学方法的核心是将研究的对象看成一个整体,以使思维对应于适当的抽象级别上,并力争系统的整体优化。一般遵循如下原则:整体性、动态、最优化、模型化。具体方法有:系统分析法(如:结构化方法、原型法、面向对象的方法等) 、黑箱方法、功能模拟方法、整体
17、优化方法、信息分析方法等。我们在系统设计中常用的具体方法还有:自底向上、自顶向下、分治法、模块化、逐步求精等。对不同类型的学生,在教学中可以突出不同的方法要求。一般地,要求掌握系统设计中的典型设计方法。3. 相关学科及影响本专业教育的因素计算机科学与技术学科正在成为基础技术学科,它正在加速向其他学科渗透,不仅成为信息科学的基础,而且还在同其他学科的结合中形成新的研究领域。因此,一方面,计算机科学与技术学科在其他学科的改造中扮演着重要的角色,另一方面,不断增长的应用需求和学科本身研究的进展推动着计算机科学与技术学科迅速地发展和延伸,以至于人们认为计算机科学已经难以涵盖所有的内容,因此开始将扩展后
18、的学科称为计算学科(Computing Discipline) ,其他经过扩展和发展形成的新学科被称为计算学科的分支学科。(1) 计算学科20 世纪 60 年代至 70 年代这段期间,计算机专业的课程体系大多数都是基于 ACM68 课程体系(后来发展为 ACM78 课程体系) 。到了 20 世纪 70 年代末,教学计划的多样性局面开始出现,但那时的计算机科学学科仍然是计算学科的主流。即使是今天,在计算学科的众多分支中,计算机科学仍然是基础。计算学科仍然是一个年轻的学科,学科的高速发展决定了它的内容的加速增长,要想在四年的有限课程内涵盖所有的内容已不可能。所以,相应的教育需各有偏重,从而就有了计
19、算机科学(CS) 、计算机工程(CE) 、软件工程(SE) 、信息系统(IS) 、信息技术(IT) 。甚至还有网络工程、电子商务、信息安全等新派生的分支。这些分支拥有共同的核心。(2) 技术的变化17影响计算机科学与技术学科变化的大部分因素来自于技术的进步。Intel 公司创始人戈登摩尔在 1965 年预测:微处理器芯片的密度将每 18 个月翻一番。我们称之为摩尔定律。该定律目前继续成立。可以看到,可用的计算机能力是以指数速度增加的,这使得几年前还无法解决的问题在近期得到解决成为可能。学科其他方面的变化更大,例如万维网出现后,网络技术迅速发展,它给人们的工作和生活提供了新的方式。所有这些,都要
20、求计算机科学与技术学科教育所需的知识体系能够紧跟技术的进步。近期在技术方面变化比较大的主要有:1) 网络技术,包括基于 TCP/IP 的技术、万维网及其应用2) 图形学和多媒体技术3) 嵌入式系统4) 数据库技术5) 互操作性6) 面向对象程序设计7) 复杂的应用程序接口的使用8) 人机交互9) 软件安全10) 保密与密码学11) 应用领域这些变化迫使我们以不断进步的、系统的观点去调整教学计划,在保持基本内容稳定的前提下,用新的内容去取代一些相对比较陈旧的内容。(2) 文化的变化计算机科学与技术的教育还受到文化与社会发展的影响。尤其是下面所列的各种变化对教育的影响更大。1) 新技术带来的教学法
21、的改变。2) 全世界计算机数量和用户直接可用的计算功能增加。随着人们使用计算机获取信息和处理事务的机会增多,使得人们对计算机技术有了更多更新的认识。在学生对计算机及其应用的熟悉程度普遍提高的同时,我们不仅需要考虑到学生的起步基础,还要考虑到发展的不平衡问题。3) 计算机技术增长的经济影响。高技术产业的良好发展势头,社会的极大需求所导致的极具吸引力的高待遇的良好就业前景,吸引了一大批人热切地希望走入计算机领域。同时,企业界与大多教学机构之间的人才竞争更加激烈。4) 学科的拓宽。这些年以来,计算机科学与技术学科已变得更宽广、内容更丰富,计算机科学与技术学科的教育必须对此有所体现。(4) 教育观念的
22、变化教育观念也在不断地发生变化。哲学家费希特曾经指出:教育必须培养人的自我决定能力,而不是培养人们去适应传统世界;教育重要的不是着眼于实用性、传播知识和技能,而是要唤醒学生的力量,培养其自我性、主动性、抽象的归纳力和理解力。目前,教育正在摆脱单一的知识传授功能,联合国教科文组织给出的教育定义已经从“有组织有目的的知识传授活动”变化为“是能够导致学习的交流活动” 。在本学科的教育中,首先需要加强基础理论的教育,强化学生“计算思维能力”的培养;其次是选择最佳的知识载体,循序渐进地向学生传授包括基本问题求解过程和基本思路在内的学科方法学的内容,而将一些流行系统和工具作为学生学习过程中的实践环境和学生
23、自我扩展的内容来处理;第三,在强调基础的同时,也要注意随着学科的发展,适时、适当地提升教学中的一些基础内容,以满足学科发展的要求。二、培养目标和规格181. 人才培养目标培养德、智、体、美全面发展,掌握自然科学基础知识,系统地掌握计算机科学理论、计算机软硬件系统及应用知识,基本具备本领域分析问题解决问题的能力,具备实践技能,并具备良好外语运用能力的计算机专业高级专门人才。2. 人才培养规格计算机科学专业方向的学制一般为四年,授予工学学士学位。(1) 素质结构要求思想道德素质:热爱祖国,拥护中国共产党的领导,树立科学的世界观、人生观和价值观;具有责任心和社会责任感;具有法律意识,自觉遵纪守法;热
24、爱本专业、注重职业道德修养;具有诚信意识和团队精神。文化素质:具有一定的文学艺术修养、人际沟通修养和现代意识。专业素质:掌握科学思维方法和科学研究方法;具备求实创新意识和严谨的科学素养;具有一定的工程意识和效益意识。身心素质:具有较好的身体素质和心理素质。(2) 能力结构要求 获取知识的能力:自学能力、信息获取与表达能力等。应用知识能力:系统级的认知能力和理论与实践能力,掌握自底向上和自顶向下的问题分析方法,既能把握系统各层次的细节,又能认识系统总体;既掌握本学科的基础理论知识,又能利用理论指导实践。创新能力:创造性思维能力、创新实验能力、科技开发能力、科学研究能力以及对新知识、新技术的敏锐性
25、。(3) 知识结构要求 工具性知识:外语、文献检索、科技写作等。 人文社会科学知识:文学、哲学、政治学、社会学、法学、心理学、思想道德、职业道德、艺术等。自然科学知识:数学、物理学等。专业技术基础知识:电工电子学、离散数学、程序设计等。专业知识:算法与复杂性、计算机组织与体系结构、操作系统、网络及其计算、程序设计语言、人机交互、图形学与可视化计算、智能系统、信息系统、软件工程和数值计算科学等。经济管理知识:经济学、管理学等。三、教育内容和知识体系 1. 人才培养的教育内容及知识结构的总体框架 (1) 理论依据“计算机科学”是一门研究计算机和可计算系统的学科,包括它们的理论、设计、开发和应用技术
26、。主要的领域包括算法与复杂性、程序设计语言、软件设计与理论、数据库系统、人工智能、计算机系统、网络、人机交互、计算科学等。涉及数学、概率、逻辑、心理学等方面。着重于理论知识的教学和分析问题、解决问题能力的培养。19本规范重视知识单元的设计和课程体系建设。通过具体定义一个较小的核心课程体系及典型课程,为各高等学校专业教学计划的制定提供个性化发展的空间,以适应不同学校的学生来源、教育资源,以及培养目标上的差异。(2)总体框架理工科本科专业教育内容的总体框架由普通教育(通识教育) 、专业教育和综合教育三大部分构成: 普通教育:人文社会科学, 自然科学,经济管理,外语, 体育,实践训练等。专业教育:本
27、学科基础, 本学科专业,专业实践训练等。 综合教育:思想教育, 学术与科技活动,文艺活动,体育活动, 自选活动等知识体系。对于以上三部分内容,本规范侧重说明第二部分的专业教育的内容:它由专业知识体系与对应的课程设置两部分组成,下面分别介绍。2. 知识体系 (1) 知识体系概述计算机科学专业方向知识体系划分为知识领域、知识单元和知识点三个层次,共有 14个知识领域,132 个知识单元,共计 560 个核心学时。知识领域(Area)代表一个特定的学科子领域。每个领域由英文的缩写词表示,为了与计算机科学与技术专业其他专业方向的知识领域相区别,加上前缀 CS-。比如 CS-OS 代表操作系统,CS-P
28、L 代表程序设计语言,知识领域又被分割成知识单元(Unit),代表各个知识领域中的不同方向,用知识领域缩写词后面加一个数字后缀来表示。例如,CS-AR4 表示知识领域 CS-AR 中的知识单元“存储系统组织和结构” 。知识单元分为核心和选修两种,核心知识单元是所有计算机专业学生都应该学习的基础内容。知识点(Topic):整个体系结构中的最底层。代表知识单元中单独的主题模块。(2) 知识体系的知识领域 CS-AR 计算机体系结构与组织CS-AL 算法与复杂性CS-HC 人机交互CS-OS 操作系统CS-PF 程序设计基础CS-SP 社会与职业问题CS-SE 软件工程CS-DS 离散结构CS-NC
29、 以网络为中心的计算CS-PL 程序设计语言CS-GV 图形学与可视化计算CS-IS 智能系统CS-IM 信息管理CS-CN 数值计算科学(3) 知识单元知识体系各部分的详细情况列在表 1 中。表内各知识单元、知识点后面的括弧内给出了它们各自的核心学时数。有关知识领域、知识单元、知识点的详细描述见附录 1。表 1 知识领域和知识单元20知识领域 知识单元(560 核心学时) 知识单元(选修)CS-AR 计算机体系结构与组织(82)AR1 数字逻辑与数字系统(16)AR2 数据的机器级表示(6)AR3 汇编级机器组织(18)AR4 存储系统组织和结构(10)AR5 接口和通信(12)AR6 功能
30、组织(14)AR7 多处理和体系结构(6)AR8 性能提高技术AR9 网络与分布式系统结构 CS-AL 算法与复杂性(54)AL1 算法分析基础(6)AL2 算法策略(12)AL3 基本算法(24)AL4 分布式算法(4)AL5 可计算性理论基础(8)AL6 P 和 NP 复杂类 AL7 自动机理论AL8 高级算法分析AL9 加密算法AL10 几何算法AL11 并行算法CS-HC 人机交互(12)HC1 人机交互基础(8)HC2 简单图形用户界面的创建(4)HC3 以人为中心的软件评价 HC4 以人为中心的软件开发 HC5 图形用户界面的设计 HC6 图形用户界面的程序设计 HC7 多媒体系统
31、的人机交互HC8 协作和通信的人机交互CS-OS 操作系统(40)OS1 操作系统概述 (2)OS2 操作系统原理(4)OS3 并发性(12)OS4 调度与分派(6)OS5 内存管理(10)OS6 设备管理(2)OS7 安全与保护(2)OS8 文件系统(2)OS9 此同时实时和嵌入式系统OS10 容错OS11 系统性能评价OS12 脚本CS-PF 程序设计基础(69)PF1 程序设计基本结构(15)PF2 算法与问题求解(8)PF3 基本数据结构 (30)PF4 递归(10)PF5 事件驱动程序设计(6) CS-SP 社会与职业问题(11)SP1 信息技术史(1)SP2 信息技术的社会环境(2
32、)SP3 分析方法和分析工具(2)SP4 职业责任和道德责任(1)SP5 基于计算机系统的风险与责任(1)SP6 知识产权(3)SP7 隐私与公民自由(1)SP8 计算机犯罪SP9 与信息技术相磁的经济问题SP10 哲学框架CS-SE 软件工程(54)SE1 软件设计(12)SE2 使用 APIS(8)SE3 软件工具与环境(4)SE4 软件过程(4)SE5 软件需求与规格说明(8)SE9 基于构件的计算SE10 形式化方法SE11 软件可靠性SE12 特定系统开发21知识领域 知识单元( 560 核心学时) 知识单元(选修)SE6 软件确认(8)SE7 软件进化(5)SE8 软件项目管理(5
33、)CS-DS 离散结构(72)DS1 函数、关系与集合(12)DS2 基本逻辑(18)DS3 证明技巧(24)DS4 计数基础(12)DS5 图和树(6)DS6 离散概率CS-NC 以网络为中心的计算(48)NC1 网络及其计算介绍(4)NC2 通信与网络(20) NC3 网络安全(8)NC4 客户/服务器计算举例:Web (8)NC5 构建 Web 应用(4)NC6 网络管理 (4)NC7 压缩与解压缩NC8 多媒体数据技术NC9 无线和移动计算 CS-PL 程序设计语言(54)PL1 程序设计语言概论(4) PL2 虚拟机(2) PL3 语言翻译简介(6)PL4 声明和类型(6)PL5 抽
34、象机制(6)PL6 面向对象程序设计(30)PL7 函数程序设计PL8 语言翻译系统PL9 类型系统PL10 程序设计语言的语义PL11 程序设计语言的设计CS-GV 图形学与可视化计算(8)GV1 图形学的基本技术(6)GV2 图形系统(2)GV3 图形通信GV4 几何建模GV5 基本图形绘制方法GV6 高级图形绘制方法GV7 先进技术GV8 计算机动画GV9 可视化GV10 虚拟现实GV11 计算机视觉CS-IS 智能系统(22)IS1 智能系统的基本问题(2) IS2 搜索和约束满足(8)IS3 知识表示与知识推理(12)IS4 高级搜索IS5 高级知识表示与知识推理IS6 代理IS7
35、自然语言处理技术IS8 机器学习与神经网络IS9 人工智能规划系统IS10 机器人学CS-IM 信息管理(34)IM1 信息模型与信息系统(4)IM2 数据库系统(4)IM3 数据建模(6)IM4 关系数据库(2)IM5 数据库查询语言(6)IM6 关系数据库设计(6)IM7 事务处理(6)IM8 分布式数据库IM9 物理数据库设计IM10 数据挖掘IM11 信息存储与信息检索IM12 超文本和超媒体IM13 多媒体信息与多媒体系统IM14 数字图书馆CS-CN 数值计算科学CN1 数值分析CN2 运筹学22知识领域 知识单元( 560 核心学时) 知识单元(选修)CN3 建模与仿真CN4 高
36、性能计算 本规范给出的课程建议规定了每门课程的最小核心,包括的这些单元是要获得学位必须具备的相应知识。对于以上建议,规范强调以下两点:1) 核心单元不是课程的全部。因为核心单元是课程最小的部分,所以它不能构成完整的本科课程,每门课程应当包括来自知识体系中的附加选修单元。2) 核心单元不能仅仅安排在本科阶段的入门性课程中。许多核心单元属于入门的导论性知识,但这不意味着它们必须安排在低年级的入门性课程中,因为有些导论性的知识,只有当学生具有必需的基础知识后才能接受。另外,引论性课程也可以包括选修单元。所以核心这一说法只是意味着必须具备的含义,而并没有限制它必须安排在那些课程里。表 1 使用学时作为
37、课时单位,表示以传统方式在课堂上授课的时间,应注意以下三点:1) 不限定授课方式。 除了传统的课堂授课方式,还有其他更好的方式,特别是近年来教育技术与手段的进步为我们提供了很多这样的方式。对这些教学方式来说,也许难以用小时来衡量。但为了便于统一与比较,规范仍然采用学时作为单位。从这个意义上说,学时与教学方式无关。2) 课时数不包含课外的时间,即不包含教师的准备时间和学生花在课堂外的时间。通常,课堂外花费的时间约为课内时间的 3 倍。3) 规范中列出的每个单元的课时数为最小课时数。即要达到教学目标可能花费的最小课时数,教学单位可以根据需要适当调整。3. 课程体系 知识体系给出了计算机科学专业方向
38、的知识框架,但这些知识要通过课程教学来传授给学生。规范以举例或推荐的方式描述它们,各个学校可以此作为参照,构建具有本校特色的课程与课程体系。课程教学包括理论教学和实验教学。课程可以按知识领域进行设置,也可以由若干知识领域构成一门课程,还可以从各知识领域中抽取相关的知识单元组成课程。 计算机科学专业方向课程体系由核心课程和选修课程组成,核心课程应该覆盖知识体系中的全部核心单元及部分选修知识单元。同时,各高校可选择一些选修知识单元、反映学科前沿和反映学校特色的知识单元放入选修课程中。 (1) 课程设置为了便于教学计划的排定,我们把课程分为基础课程、主干课程、高级课程三个层次。基础课程用以奠定专业基
39、础,主干课程涵盖知识体系中的大部分核心知识单元,高级课程超出核心知识单元的范围,包括一些特色或先进的专业知识。基础课程在一、二年级开设;主干课程在二、三年级开设。基础课程和主干课程应该覆盖知识体系中的全部核心单元,也可以包括一些选修内容。如果某个核心单元未能包括在前两层的课程中,则应将其加入到高级课程中。下面给出这样一种安排的示例。基础课程:程序设计基础、面向对象程序设计、计算机导论、离散结构、数据结构、计算机组成等。主干课程:算法设计与分析、计算机体系结构、操作系统、网络计算、编译原理、人机交互、计算机图形学、人工智能、数据库、社会与职业问题、软件开发等。高级课程:可以选择编码与信息理论、数值分析、计算生物学、并行算法、高等计算机系统结构、VLSI 开发、网络安全、机器学习、数据挖掘、软件设计等,也可以是旨在培养学生动手能力和团队合作能力的实践性课程。