计算机科学与技术计算机科学方向专业规范.docx
《计算机科学与技术计算机科学方向专业规范.docx》由会员分享,可在线阅读,更多相关《计算机科学与技术计算机科学方向专业规范.docx(149页珍藏版)》请在冰豆网上搜索。
![计算机科学与技术计算机科学方向专业规范.docx](https://file1.bdocx.com/fileroot1/2023-2/21/ca897388-2346-497b-95cf-51d26717465e/ca897388-2346-497b-95cf-51d26717465e1.gif)
计算机科学与技术计算机科学方向专业规范
计算机科学与技术(计算机科学方向)专业规X
教育部高等学校计算机科学与技术
专业教学指导分委员会
2005年10月17日
近十年来,计算机学科发生了巨大的变化,这一变化对计算机专业的教育产生了深远的影响。
从历史上看,在计算机学科发展的早期,数学、逻辑、电子学、程序语言和程序设计是支撑学科发展的主要专业基础知识。
到了20世纪60—70年代,数据结构与算法、计算机原理、编译技术、操作系统、程序设计与程序语言、数据库系统原理等成为学科的主要专业基础知识。
从20世纪80年代开始,并行与分布计算、网络技术、软件工程等开始成为新的学科内容,突破了计算机学科原有的专业设置框架,逐渐形成了在“计算机科学与技术”一个专业之下分为计算机科学、计算机工程、软件工程、信息技术、信息系统等多个专业方向的新格局。
一、历史、现状及发展方向
1.主干学科概况
计算机科学是计算机科学与技术领域最早出现的学科。
从1956我国高校开办“计算装置与仪器”专业算起,到现在采用的“计算机科学与技术”一级学科的称谓,计算机专业教育在中国已经走过了近50年的历程。
(1)发展初期(1956—1977年)
1956年,国务院制定了新中国第一个科学技术发展规划,即《1956—1967年十二年科学技术发展远景规划》。
这个规划除确定了56项重大研究任务以外,还确定了发展电子计算机、半导体、无线电电子学和自动化技术等6项紧急措施,从而促使我国计算机教育事业发展第一个高潮的到来。
到1958年,共有15所高校开办了计算机专业。
该阶段的计算机教育有以下特点:
1)专业创始人从国外学习归来,带回计算机新技术。
2)大多采取“以任务带学科,以科研带队伍”的发展模式,人才培养面向国防和科学研究。
这一发展模式一直持续到70年代中期,形成了中国计算机教育发展的独特模式。
3)当时新建的计算机专业大多称为“计算装置”,强调从基本元器件开始的计算机硬件系统的设计与实现,大多设置在自动控制系,形成了与应用系统结合的计算机教育。
同时,一些重点大学在数学系新建了计算数学专业,从事算法设计人才的培养,这是我国早期培养的软件人才具有坚实数学基础的一个重要原因。
1966年至1976年期间,大学教育处于一个特殊的历史时期,计算机专业的教育基本上处于停滞状态,没有正规的专业教学计划,缺乏专业教材。
这使得我国计算机人才培养与教育的发展与国外产生了极大的差距。
(2)发展时期(1978—1993年)
随着十年动乱的结束,国家的工作重点逐步转移到四个现代化建设上。
在国家科委主持起草的《1978—1985年全国科学技术发展规划纲要》中,又把电子计算机列为8个影响全局的综合性课题,放在突出的地位,我国计算机教育迎来了第二个发展高潮。
在1978—1986年之间共有74所院校开办了计算机专业。
在70年代末和80年代,计算机专业基本上限定在重点理工科院校里。
90年代开始,随着计算机应用的越来越广泛,社会对计算机人才的需求量高速增长,很多大学都开办起计算机、计算机应用技术专业。
研究生教育随着学位制的恢复开始走上正轨,并逐渐地扩大规模。
硕士研究生教育、博士研究生教育开始在探索中逐渐完善和提高。
该阶段的计算机教育有以下特点:
1)改革开放促进了计算机新技术、新课程的引进。
例如,80年代初,在向西方先进国家大量派出进修教师、访问学者的同时,一些重点大学邀请美国大学教授来讲课与讲学,对外交流逐步展开。
2)计算机软件开始得到普遍重视,计算机应用技术教育开始普及。
随着微处理器技术的快速发展,数据管理、信息处理、工业控制、人工智能、数字图像等应用技术教育在计算机教育中增强。
3)高层次人才培养开始起步。
1978年,我国恢复研究生招生。
经国务院学位委员会审定,在部分重点大学建立了计算机学科硕士点和博士点,多层次的计算机人才教育体系基本形成。
(3)高速发展时期(1994年至今)
90年代,万维网(WorldWideWeb)在世界X围的蓬勃兴起使“计算”的概念发生了深刻的变化,社会对于计算机人才的需求急剧增长。
这种变化不可避免地反映到教育中,一方面,若干相关课程被引入到计算机专业的教学计划中,另一方面,一些学校办起了网络工程、软件工程、电子商务、信息安全等新专业。
1995年全国科学技术大会的召开,“科教兴国”发展战略的实施,使我国计算机教育进入一个快速发展期,现在开设计算机科学与技术专业的505所高校中,有368所是在1994年后开办的。
该阶段的计算机教育特点是:
1)计算机专业的内涵和外延发生较大变化。
计算机专业的教育内容已不再局限于传统的计算理论、计算机组织与体系结构,而计算机软件、计算机网络、多媒体及其应用技术、网络与信息安全等教育内容得以强化。
2)办学单位和在校生人数迅速增加,一大批青年人补充进教师队伍,在数量上逐步完成教学第一线人员的新老交替。
3)教材内容逐步与国际接轨。
2000年前后,我国高等教育、清华大学、机械工业等从国外著名出版公司引进了成套的计算机专业教材。
回顾我国计算机教育历史,可以得到一些计算机教育发展规律的启迪。
1)计算机教育发展要以国家需求为目标
我国计算机教育发展的三次高潮均是在国家提出科技进步、经济发展的阶段目标前提下形成的。
进入21世纪,党的十六大提出“加快信息化进程,用信息化带动工业化”,我国的计算机教育必须服务于这一宏伟目标。
2)发展中国家必须注重学习国际先进技术
我国计算机教育发展的三个重要阶段,均与从国外引进和学习先进的计算机技术、学习先进的教育思想与内容密不可分。
在当今信息时代,我们必须在坚持自主教育创新的同时,注重与国际计算机教育接轨。
3)充分认识计算机专业的实践性特点
我国计算机专业的初建历程本身就是一部计算机教育与实践相结合的创业史,许多优秀学生的成长历程也说明计算机实践教育之重要性。
因此,新世纪的计算机教育不仅要重视扎实的专业基础理论学习,更要强调系统设计与开发能力的培养。
4)师资队伍是保证教育质量的关键
历史证明了高质量的计算机教育必须依赖于高素质的师资队伍,目前的当务之急是要提高青年教师的业务素质和教学水平。
5)计算机教育内容必须与时俱进
48年来,我国计算机教育历程就是不断完善和更新的过程。
因此,计算机教育内容必须与时俱进,应该在吸收国际先进的计算机教育理念、模式、体系的同时,提出适合我国国情的计算机教育发展思路和创新模式,以促进我国计算机教育的健康发展。
2.主干学科的方法论介绍
在计算机科学与技术学科的教育中,学科方法论的内容占有非常重要的地位。
计算机科学与技术学科方法论系统研究该领域认识和实践过程中使用的一般方法,研究这些方法及其性质、特点、内在联系、变化与发展,它主要包含三个方面:
学科方法论的三个过程(又称为学科的三个形态)、重复出现的12个基本概念、典型的学科方法。
前者描述了认识和实践的过程,后两者分别描述了贯穿于认识和实践过程中问题求解的基本方面与要点。
(1)三个过程
学科方法论的三个过程为:
理论、抽象、设计。
理论:
它与数学所用方法类似,主要要素为定义和公理、定理、证明、结果的解释。
用这一过程来建立和理解计算机科学与技术学科所依据的数学原理。
其研究内容的基本特征是构造性数学特征。
抽象(模型化):
源于实验科学,主要要素为数据采集方法和假设的形式说明、模型的构造与预测、实验分析、结果分析。
在为可能的算法、数据结构和系统结构等构造模型时使用此过程。
然后对所建立的模型的假设、不同的设计策略,以及所依据的理论进行实验。
用于和实验相关的研究,包括分析和探索计算的局限性、有效性、新计算模型的特性,以及对未加以证明的理论的预测的验证。
抽象的结果为概念、符号、模型。
设计:
源于工程学,用来开发求解给定问题的系统和设备。
主要要素为需求说明、规格说明、设计和实现方法、测试和分析,用来开发求解给定问题的系统。
(2)重复出现的12个基本概念
蕴含学科基本思想的重要概念是计算机科学与技术学科方法论的第二个方面。
作为问题求解过程中要考虑的一些要点,对它们的深入了解,并在实际工作中使用这些概念,是毕业生成为成熟的计算机科学家和工程师的重要标志之一。
这些概念包括:
绑定:
通过把一个抽象的概念和附加特性相联系使得抽象的概念具体化的过程。
也就是具体问题的合理抽象描述和抽象描述对具体问题的恰当表示。
大问题的复杂性:
随着问题规模的增长,复杂性呈非线性增加的效应。
这是区分和选择各种方法的重要因素。
依此来度量不同的数据规模、问题空间和程序规模。
概念和形式模型:
对一个想法或问题进行形式化、特征化、可视化和思维的各种方法。
这是实现计算机问题求解的最典型、最有效的途径。
一致性和完备性:
包括正确性、健壮性和可靠性这类相关概念。
从某种意义上说,这是一个计算机系统所追求的。
效率:
关于诸如空间、时间、人力、财力等资源消耗的度量,要求人们在设计和实现系统时,要对相应的因素给予强烈的关注。
演化:
变更的实施和它的意义。
变更时对整个系统的各个层次所造成的影响,以及面对变更的事实,抽象、技术和系统的适应性及充分性。
抽象层次:
计算中抽象的本质和使用。
在处理复杂事物、构造系统、隐藏细节和获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象,能够表达一个实体和系统。
按空间排序:
在计算机科学与技术学科中局部性和近邻性的概念。
除物理上的定位外(如在网络和存储中),还包括组织方式的定位(如:
处理机进程、类型定义和有关操作的定位),即概念上的定位(如:
软件的辖域、耦合、内聚)。
按时间排序:
事件排序的时间概念。
包括在形式概念中把时间作为参数,把时间作为分布于空间的进程同步的手段,作为算法执行的基本要素。
重用:
在新的情况或环境下,特定的技术概念和系统成分可被再次使用的能力。
安全性:
软件和硬件系统对合适的请求给予响应,并抗拒不合适的、非预期的请求以保护自己的能力;系统承受灾难事件的能力。
折衷与决策:
计算中折衷的现实和这种折衷的处理意见。
选择一种设计来代替另一种设计所产生的技术、经济、文化及方面的影响。
折衷是存在于所有知识领域各层次上的基本事实。
例如:
算法研究中时间和空间的折衷,对于矛盾的设计目标的折衷,硬件设计折衷,在各种制约下优化计算能力所蕴含的折衷。
(3)典型的学科方法
典型的学科方法是计算机科学与技术学科方法论的第三部分。
包括数学方法和系统科学方法。
1)数学方法
数学方法是指以数学为工具进行科学研究的方法,该方法用数学语言表达事物的状态、关系和过程,经推导形成解释和判断。
包括问题的描述、变换。
如:
公理化方法、构造性方法(以递归、归纳和迭代为代表)、内涵与外延方法、模型化与具体化方法等。
其基本特征是:
高度抽象、高精确、具有普遍意义。
它是科学技术研究简洁精确的形式化语言、数量分析和计算方法、逻辑推理工具。
2)系统科学方法
系统科学方法的核心是将研究的对象看成一个整体,以使思维对应于适当的抽象级别上,并力争系统的整体优化。
一般遵循如下原则:
整体性、动态、最优化、模型化。
具体方法有:
系统分析法(如:
结构化方法、原型法、面向对象的方法等)、黑箱方法、功能模拟方法、整体优化方法、信息分析方法等。
我们在系统设计中常用的具体方法还有:
自底向上、自顶向下、分治法、模块化、逐步求精等。
对不同类型的学生,在教学中可以突出不同的方法要求。
一般地,要求掌握系统设计中的典型设计方法。
3.相关学科及影响本专业教育的因素
计算机科学与技术学科正在成为基础技术学科,它正在加速向其他学科渗透,不仅成为信息科学的基础,而且还在同其他学科的结合中形成新的研究领域。
因此,一方面,计算机科学与技术学科在其他学科的改造中扮演着重要的角色,另一方面,不断增长的应用需求和学科本身研究的进展推动着计算机科学与技术学科迅速地发展和延伸,以至于人们认为计算机科学已经难以涵盖所有的内容,因此开始将扩展后的学科称为计算学科(putingDiscipline),其他经过扩展和发展形成的新学科被称为计算学科的分支学科。
(1)计算学科
20世纪60年代至70年代这段期间,计算机专业的课程体系大多数都是基于ACM68课程体系(后来发展为ACM78课程体系)。
到了20世纪70年代末,教学计划的多样性局面开始出现,但那时的计算机科学学科仍然是计算学科的主流。
即使是今天,在计算学科的众多分支中,计算机科学仍然是基础。
计算学科仍然是一个年轻的学科,学科的高速发展决定了它的内容的加速增长,要想在四年的有限课程内涵盖所有的内容已不可能。
所以,相应的教育需各有偏重,从而就有了计算机科学(CS)、计算机工程(CE)、软件工程(SE)、信息系统(IS)、信息技术(IT)。
甚至还有网络工程、电子商务、信息安全等新派生的分支。
这些分支拥有共同的核心。
(2)技术的变化
影响计算机科学与技术学科变化的大部分因素来自于技术的进步。
Intel公司创始人戈登·摩尔在1965年预测:
微处理器芯片的密度将每18个月翻一番。
我们称之为摩尔定律。
该定律目前继续成立。
可以看到,可用的计算机能力是以指数速度增加的,这使得几年前还无法解决的问题在近期得到解决成为可能。
学科其他方面的变化更大,例如万维网出现后,网络技术迅速发展,它给人们的工作和生活提供了新的方式。
所有这些,都要求计算机科学与技术学科教育所需的知识体系能够紧跟技术的进步。
近期在技术方面变化比较大的主要有:
1)网络技术,包括基于TCP/IP的技术、万维网及其应用
2)图形学和多媒体技术
3)嵌入式系统
4)数据库技术
5)互操作性
6)面向对象程序设计
7)复杂的应用程序接口的使用
8)人机交互
9)软件安全
10)XX与密码学
11)应用领域
这些变化迫使我们以不断进步的、系统的观点去调整教学计划,在保持基本内容稳定的前提下,用新的内容去取代一些相对比较陈旧的内容。
(2)文化的变化
计算机科学与技术的教育还受到文化与社会发展的影响。
尤其是下面所列的各种变化对教育的影响更大。
1)新技术带来的教学法的改变。
2)全世界计算机数量和用户直接可用的计算功能增加。
随着人们使用计算机获取信息和处理事务的机会增多,使得人们对计算机技术有了更多更新的认识。
在学生对计算机及其应用的熟悉程度普遍提高的同时,我们不仅需要考虑到学生的起步基础,还要考虑到发展的不平衡问题。
3)计算机技术增长的经济影响。
高技术产业的良好发展势头,社会的极大需求所导致的极具吸引力的高待遇的良好就业前景,吸引了一大批人热切地希望走入计算机领域。
同时,企业界与大多教学机构之间的人才竞争更加激烈。
4)学科的拓宽。
这些年以来,计算机科学与技术学科已变得更宽广、内容更丰富,计算机科学与技术学科的教育必须对此有所体现。
(4)教育观念的变化
教育观念也在不断地发生变化。
哲学家费希特曾经指出:
教育必须培养人的自我决定能力,而不是培养人们去适应传统世界;教育重要的不是着眼于实用性、传播知识和技能,而是要唤醒学生的力量,培养其自我性、主动性、抽象的归纳力和理解力。
目前,教育正在摆脱单一的知识传授功能,联合国教科文组织给出的教育定义已经从“有组织有目的的知识传授活动”变化为“是能够导致学习的交流活动”。
在本学科的教育中,首先需要加强基础理论的教育,强化学生“计算思维能力”的培养;其次是选择最佳的知识载体,循序渐进地向学生传授包括基本问题求解过程和基本思路在内的学科方法学的内容,而将一些流行系统和工具作为学生学习过程中的实践环境和学生自我扩展的内容来处理;第三,在强调基础的同时,也要注意随着学科的发展,适时、适当地提升教学中的一些基础内容,以满足学科发展的要求。
二、培养目标和规格
1.人才培养目标
培养德、智、体、美全面发展,掌握自然科学基础知识,系统地掌握计算机科学理论、计算机软硬件系统及应用知识,基本具备本领域分析问题解决问题的能力,具备实践技能,并具备良好外语运用能力的计算机专业高级专门人才。
2.人才培养规格
计算机科学专业方向的学制一般为四年,授予工学学士学位。
(1)素质结构要求
思想道德素质:
热爱祖国,拥护中国共产党的领导,树立科学的世界观、人生观和价值观;具有责任心和社会责任感;具有法律意识,自觉遵纪守法;热爱本专业、注重职业道德修养;具有诚信意识和团队精神。
文化素质:
具有一定的文学艺术修养、人际沟通修养和现代意识。
专业素质:
掌握科学思维方法和科学研究方法;具备XX创新意识和严谨的科学素养;具有一定的工程意识和效益意识。
身心素质:
具有较好的身体素质和心理素质。
(2)能力结构要求
获取知识的能力:
自学能力、信息获取与表达能力等。
应用知识能力:
系统级的认知能力和理论与实践能力,掌握自底向上和自顶向下的问题分析方法,既能把握系统各层次的细节,又能认识系统总体;既掌握本学科的基础理论知识,又能利用理论指导实践。
创新能力:
创造性思维能力、创新实验能力、科技开发能力、科学研究能力以及对新知识、新技术的敏锐性。
(3)知识结构要求
工具性知识:
外语、文献检索、科技写作等。
人文社会科学知识:
文学、哲学、政治学、社会学、法学、心理学、思想道德、职业道德、艺术等。
自然科学知识:
数学、物理学等。
专业技术基础知识:
电工电子学、离散数学、程序设计等。
专业知识:
算法与复杂性、计算机组织与体系结构、操作系统、网络及其计算、程序设计语言、人机交互、图形学与可视化计算、智能系统、信息系统、软件工程和数值计算科学等。
经济管理知识:
经济学、管理学等。
三、教育内容和知识体系
1.人才培养的教育内容及知识结构的总体框架
(1)理论依据
“计算机科学”是一门研究计算机和可计算系统的学科,包括它们的理论、设计、开发和应用技术。
主要的领域包括算法与复杂性、程序设计语言、软件设计与理论、数据库系统、人工智能、计算机系统、网络、人机交互、计算科学等。
涉及数学、概率、逻辑、心理学等方面。
着重于理论知识的教学和分析问题、解决问题能力的培养。
本规X重视知识单元的设计和课程体系建设。
通过具体定义一个较小的核心课程体系及典型课程,为各高等学校专业教学计划的制定提供个性化发展的空间,以适应不同学校的学生来源、教育资源,以及培养目标上的差异。
(2)总体框架
理工科本科专业教育内容的总体框架由普通教育(通识教育)、专业教育和综合教育三大部分构成:
普通教育:
①人文社会科学,②自然科学,③经济管理,④外语,⑤体育,⑥实践训练等。
专业教育:
①本学科基础,②本学科专业,③专业实践训练等。
综合教育:
①思想教育,②学术与科技活动,③文艺活动,④体育活动,⑤自选活动等知识体系。
对于以上三部分内容,本规X侧重说明第二部分的专业教育的内容:
它由专业知识体系与对应的课程设置两部分组成,下面分别介绍。
2.知识体系
(1)知识体系概述
计算机科学专业方向知识体系划分为知识领域、知识单元和知识点三个层次,共有14个知识领域,132个知识单元,共计560个核心学时。
知识领域(Area)代表一个特定的学科子领域。
每个领域由英文的缩写词表示,为了与计算机科学与技术专业其他专业方向的知识领域相区别,加上前缀CS-。
比如CS-OS代表操作系统,CS-PL代表程序设计语言,知识领域又被分割成知识单元(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以网络为中心的计算
CS-PL程序设计语言
CS-GV图形学与可视化计算
CS-IS智能系统
CS-IM信息管理
CS-数值计算科学
(3)知识单元
知识体系各部分的详细情况列在表1中。
表内各知识单元、知识点后面的括弧内给出了它们各自的核心学时数。
有关知识领域、知识单元、知识点的详细描述见附录1。
表1 知识领域和知识单元
知识领域
知识单元(560核心学时)
知识单元(选修)
CS-AR计算机体系结构与组织(82)
AR1数字逻辑与数字系统(16)
AR2数据的机器级表示(6)
AR3汇编级机器组织(18)
AR4存储系统组织和结构(10)
AR5接口和通信(12)
AR6功能组织(14)
AR7多处理和体系结构(6)
AR8性能提高技术
AR9网络与分布式系统结构
CS-AL算法与复杂性(54)
AL1算法分析基础(6)
AL2算法策略(12)
AL3基本算法(24)
AL4分布式算法(4)
AL5可计算性理论基础(8)
AL6P和NP复杂类
AL7自动机理论
AL8高级算法分析
AL9加密算法
AL10几何算法
AL11并行算法
CS-HC人机交互(12)
HC1人机交互基础(8)
HC2简单图形用户界面的创建(4)
HC3以人为中心的软件评价
HC4以人为中心的软件开发
HC5图形用户界面的设计
HC6图形用户界面的程序设计
HC7多媒体系统的人机交互
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)
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)
SE6软件确认(8)
SE7软件进化(5)
SE8软件项目管理(5)
SE9基于构件的计算
SE10形式化方法
SE11软件可靠性
SE12特定系统开发
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虚拟机(