计算机科学与技术(计算机科学方向)专业规范_第1页
计算机科学与技术(计算机科学方向)专业规范_第2页
计算机科学与技术(计算机科学方向)专业规范_第3页
计算机科学与技术(计算机科学方向)专业规范_第4页
计算机科学与技术(计算机科学方向)专业规范_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与技术(计算机科学方向)专业规范教育部高等学校计算机科学与技术专业教学指导分委员会2005年10月17日近十年来,计算机学科发生了巨大的变化,这一变化对计算机专业的教育产生了深远的影响。从历史上看,在计算机学科发展的早期,数学、逻辑、电子学、程序语言和程序设计是支撑学科发展的主要专业基础知识。到了20世纪60—70年代,数据结构与算法、计算机原理、编译技术、操作系统、程序设计与程序语言、数据库系统原理等成为学科的主要专业基础知识。从20世纪80年代开始,并行与分布计算、网络技术、软件工程等开始成为新的学科内容,突破了计算机学科原有的专业设置框架,逐渐形成了在“计算机科学与技术”一个专业之下分为计算机科学、计算机工程、软件工程、信息技术、信息系统等多个专业方向的新格局。本规范分为五个部分:一、历史、现状及发展方向;二、培养目标与规格;三、教育内容和知识体系;四、办学条件;五、主要参考指标。第三部分的专业教育内容和知识体系仅阐明了知识体系、课程设置的总体描述与指导原则,详细内容见附录1与附录2。在历史、现状及发展方向这部分中,规范从整个专业,即计算机科学与技术的角度进行了阐述,而没有局限在计算机科学领域内。一、历史、现状及发展方向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)在世界范围的蓬勃兴起使“计算”的概念发生了深刻的变化,社会对于计算机人才的需求急剧增长。这种变化不可避免地反映到教育中,一方面,若干相关课程被引入到计算机专业的教学计划中,另一方面,一些学校办起了网络工程、软件工程、电子商务、信息安全等新专业。1995年全国科学技术大会的召开,“科教兴国”发展战略的实施,使我国计算机教育进入一个快速发展期,现在开设计算机科学与技术专业的505所高校中,有368所是在1994年后开办的。该阶段的计算机教育特点是:1)计算机专业的内涵和外延发生较大变化。计算机专业的教育内容已不再局限于传统的计算理论、计算机组织与体系结构,而计算机软件、计算机网络、多媒体及其应用技术、网络与信息安全等教育内容得以强化。2)办学单位和在校生人数迅速增加,一大批青年人补充进教师队伍,在数量上逐步完成教学第一线人员的新老交替。3)教材内容逐步与国际接轨。2000年前后,我国高等教育出版社、清华大学出版社、机械工业出版社等从国外著名出版公司引进了成套的计算机专业教材。回顾我国计算机教育历史,可以得到一些计算机教育发展规律的启迪。1)计算机教育发展要以国家需求为目标我国计算机教育发展的三次高潮均是在国家提出科技进步、经济发展的阶段目标前提下形成的。进入21世纪,党的十六大提出“加快信息化进程,用信息化带动工业化”,我国的计算机教育必须服务于这一宏伟目标。2)发展中国家必须注重学习国际先进技术我国计算机教育发展的三个重要阶段,均与从国外引进和学习先进的计算机技术、学习先进的教育思想与内容密不可分。在当今信息时代,我们必须在坚持自主教育创新的同时,注重与国际计算机教育接轨。3)充分认识计算机专业的实践性特点我国计算机专业的初建历程本身就是一部计算机教育与实践相结合的创业史,许多优秀学生的成长历程也说明计算机实践教育之重要性。因此,新世纪的计算机教育不仅要重视扎实的专业基础理论学习,更要强调系统设计与开发能力的培养。4)师资队伍是保证教育质量的关键历史证明了高质量的计算机教育必须依赖于高素质的师资队伍,目前的当务之急是要提高青年教师的业务素质和教学水平。5)计算机教育内容必须与时俱进48年来,我国计算机教育历程就是不断完善和更新的过程。因此,计算机教育内容必须与时俱进,应该在吸收国际先进的计算机教育理念、模式、体系的同时,提出适合我国国情的计算机教育发展思路和创新模式,以促进我国计算机教育的健康发展。2.主干学科的方法论介绍在计算机科学与技术学科的教育中,学科方法论的内容占有非常重要的地位。计算机科学与技术学科方法论系统研究该领域认识和实践过程中使用的一般方法,研究这些方法及其性质、特点、内在联系、变化与发展,它主要包含三个方面:学科方法论的三个过程(又称为学科的三个形态)、重复出现的12个基本概念、典型的学科方法。前者描述了认识和实践的过程,后两者分别描述了贯穿于认识和实践过程中问题求解的基本方面与要点。(1)三个过程学科方法论的三个过程为:理论、抽象、设计。理论:它与数学所用方法类似,主要要素为定义和公理、定理、证明、结果的解释。用这一过程来建立和理解计算机科学与技术学科所依据的数学原理。其研究内容的基本特征是构造性数学特征。抽象(模型化):源于实验科学,主要要素为数据采集方法和假设的形式说明、模型的构造与预测、实验分析、结果分析。在为可能的算法、数据结构和系统结构等构造模型时使用此过程。然后对所建立的模型的假设、不同的设计策略,以及所依据的理论进行实验。用于和实验相关的研究,包括分析和探索计算的局限性、有效性、新计算模型的特性,以及对未加以证明的理论的预测的验证。抽象的结果为概念、符号、模型。设计:源于工程学,用来开发求解给定问题的系统和设备。主要要素为需求说明、规格说明、设计和实现方法、测试和分析,用来开发求解给定问题的系统。(2)重复出现的12个基本概念蕴含学科基本思想的重要概念是计算机科学与技术学科方法论的第二个方面。作为问题求解过程中要考虑的一些要点,对它们的深入了解,并在实际工作中使用这些概念,是毕业生成为成熟的计算机科学家和工程师的重要标志之一。这些概念包括:绑定:通过把一个抽象的概念和附加特性相联系使得抽象的概念具体化的过程。也就是具体问题的合理抽象描述和抽象描述对具体问题的恰当表示。大问题的复杂性:随着问题规模的增长,复杂性呈非线性增加的效应。这是区分和选择各种方法的重要因素。依此来度量不同的数据规模、问题空间和程序规模。概念和形式模型:对一个想法或问题进行形式化、特征化、可视化和思维的各种方法。这是实现计算机问题求解的最典型、最有效的途径。一致性和完备性:包括正确性、健壮性和可靠性这类相关概念。从某种意义上说,这是一个计算机系统所追求的。效率:关于诸如空间、时间、人力、财力等资源消耗的度量,要求人们在设计和实现系统时,要对相应的因素给予强烈的关注。演化:变更的实施和它的意义。变更时对整个系统的各个层次所造成的影响,以及面对变更的事实,抽象、技术和系统的适应性及充分性。抽象层次:计算中抽象的本质和使用。在处理复杂事物、构造系统、隐藏细节和获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象,能够表达一个实体和系统。按空间排序:在计算机科学与技术学科中局部性和近邻性的概念。除物理上的定位外(如在网络和存储中),还包括组织方式的定位(如:处理机进程、类型定义和有关操作的定位),即概念上的定位(如:软件的辖域、耦合、内聚)。按时间排序:事件排序的时间概念。包括在形式概念中把时间作为参数,把时间作为分布于空间的进程同步的手段,作为算法执行的基本要素。重用:在新的情况或环境下,特定的技术概念和系统成分可被再次使用的能力。安全性:软件和硬件系统对合适的请求给予响应,并抗拒不合适的、非预期的请求以保护自己的能力;系统承受灾难事件的能力。折衷与决策:计算中折衷的现实和这种折衷的处理意见。选择一种设计来代替另一种设计所产生的技术、经济、文化及方面的影响。折衷是存在于所有知识领域各层次上的基本事实。例如:算法研究中时间和空间的折衷,对于矛盾的设计目标的折衷,硬件设计折衷,在各种制约下优化计算能力所蕴含的折衷。(3)典型的学科方法典型的学科方法是计算机科学与技术学科方法论的第三部分。包括数学方法和系统科学方法。1)数学方法数学方法是指以数学为工具进行科学研究的方法,该方法用数学语言表达事物的状态、关系和过程,经推导形成解释和判断。包括问题的描述、变换。如:公理化方法、构造性方法(以递归、归纳和迭代为代表)、内涵与外延方法、模型化与具体化方法等。其基本特征是:高度抽象、高精确、具有普遍意义。它是科学技术研究简洁精确的形式化语言、数量分析和计算方法、逻辑推理工具。2)系统科学方法系统科学方法的核心是将研究的对象看成一个整体,以使思维对应于适当的抽象级别上,并力争系统的整体优化。一般遵循如下原则:整体性、动态、最优化、模型化。具体方法有:系统分析法(如:结构化方法、原型法、面向对象的方法等)、黑箱方法、功能模拟方法、整体优化方法、信息分析方法等。我们在系统设计中常用的具体方法还有:自底向上、自顶向下、分治法、模块化、逐步求精等。对不同类型的学生,在教学中可以突出不同的方法要求。一般地,要求掌握系统设计中的典型设计方法。3.相关学科及影响本专业教育的因素计算机科学与技术学科正在成为基础技术学科,它正在加速向其他学科渗透,不仅成为信息科学的基础,而且还在同其他学科的结合中形成新的研究领域。因此,一方面,计算机科学与技术学科在其他学科的改造中扮演着重要的角色,另一方面,不断增长的应用需求和学科本身研究的进展推动着计算机科学与技术学科迅速地发展和延伸,以至于人们认为计算机科学已经难以涵盖所有的内容,因此开始将扩展后的学科称为计算学科(ComputingDiscipline),其他经过扩展和发展形成的新学科被称为计算学科的分支学科。(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)保密与密码学11)应用领域这些变化迫使我们以不断进步的、系统的观点去调整教学计划,在保持基本内容稳定的前提下,用新的内容去取代一些相对比较陈旧的内容。(2)文化的变化计算机科学与技术的教育还受到文化与社会发展的影响。尤其是下面所列的各种变化对教育的影响更大。1)新技术带来的教学法的改变。2)全世界计算机数量和用户直接可用的计算功能增加。随着人们使用计算机获取信息和处理事务的机会增多,使得人们对计算机技术有了更多更新的认识。在学生对计算机及其应用的熟悉程度普遍提高的同时,我们不仅需要考虑到学生的起步基础,还要考虑到发展的不平衡问题。3)计算机技术增长的经济影响。高技术产业的良好发展势头,社会的极大需求所导致的极具吸引力的高待遇的良好就业前景,吸引了一大批人热切地希望走入计算机领域。同时,企业界与大多教学机构之间的人才竞争更加激烈。4)学科的拓宽。这些年以来,计算机科学与技术学科已变得更宽广、内容更丰富,计算机科学与技术学科的教育必须对此有所体现。(4)教育观念的变化教育观念也在不断地发生变化。哲学家费希特曾经指出:教育必须培养人的自我决定能力,而不是培养人们去适应传统世界;教育重要的不是着眼于实用性、传播知识和技能,而是要唤醒学生的力量,培养其自我性、主动性、抽象的归纳力和理解力。目前,教育正在摆脱单一的知识传授功能,联合国教科文组织给出的教育定义已经从“有组织有目的的知识传授活动”变化为“是能够导致学习的交流活动”。在本学科的教育中,首先需要加强基础理论的教育,强化学生“计算思维能力”的培养;其次是选择最佳的知识载体,循序渐进地向学生传授包括基本问题求解过程和基本思路在内的学科方法学的内容,而将一些流行系统和工具作为学生学习过程中的实践环境和学生自我扩展的内容来处理;第三,在强调基础的同时,也要注意随着学科的发展,适时、适当地提升教学中的一些基础内容,以满足学科发展的要求。二、培养目标和规格1.人才培养目标培养德、智、体、美全面发展,掌握自然科学基础知识,系统地掌握计算机科学理论、计算机软硬件系统及应用知识,基本具备本领域分析问题解决问题的能力,具备实践技能,并具备良好外语运用能力的计算机专业高级专门人才。2.人才培养规格计算机科学专业方向的学制一般为四年,授予工学学士学位。(1)素质结构要求思想道德素质:热爱祖国,拥护中国共产党的领导,树立科学的世界观、人生观和价值观;具有责任心和社会责任感;具有法律意识,自觉遵纪守法;热爱本专业、注重职业道德修养;具有诚信意识和团队精神。文化素质:具有一定的文学艺术修养、人际沟通修养和现代意识。专业素质:掌握科学思维方法和科学研究方法;具备求实创新意识和严谨的科学素养;具有一定的工程意识和效益意识。身心素质:具有较好的身体素质和心理素质。(2)能力结构要求获取知识的能力:自学能力、信息获取与表达能力等。应用知识能力:系统级的认知能力和理论与实践能力,掌握自底向上和自顶向下的问题分析方法,既能把握系统各层次的细节,又能认识系统总体;既掌握本学科的基础理论知识,又能利用理论指导实践。创新能力:创造性思维能力、创新实验能力、科技开发能力、科学研究能力以及对新知识、新技术的敏锐性。(3)知识结构要求工具性知识:外语、文献检索、科技写作等。人文社会科学知识:文学、哲学、政治学、社会学、法学、心理学、思想道德、职业道德、艺术等。自然科学知识:数学、物理学等。专业技术基础知识:电工电子学、离散数学、程序设计等。专业知识:算法与复杂性、计算机组织与体系结构、操作系统、网络及其计算、程序设计语言、人机交互、图形学与可视化计算、智能系统、信息系统、软件工程和数值计算科学等。经济管理知识:经济学、管理学等。三、教育内容和知识体系1.人才培养的教育内容及知识结构的总体框架(1)理论依据“计算机科学”是一门研究计算机和可计算系统的学科,包括它们的理论、设计、开发和应用技术。主要的领域包括算法与复杂性、程序设计语言、软件设计与理论、数据库系统、人工智能、计算机系统、网络、人机交互、计算科学等。涉及数学、概率、逻辑、心理学等方面。着重于理论知识的教学和分析问题、解决问题能力的培养。本规范重视知识单元的设计和课程体系建设。通过具体定义一个较小的核心课程体系及典型课程,为各高等学校专业教学计划的制定提供个性化发展的空间,以适应不同学校的学生来源、教育资源,以及培养目标上的差异。(2)总体框架理工科本科专业教育内容的总体框架由普通教育(通识教育)、专业教育和综合教育三大部分构成:普通教育:①人文社会科学,②自然科学,③经济管理,④外语,⑤体育,⑥实践训练等。专业教育:①本学科基础,②本学科专业,③专业实践训练等。综合教育:①思想教育,②学术与科技活动,③文艺活动,④体育活动,⑤自选活动等知识体系。对于以上三部分内容,本规范侧重说明第二部分的专业教育的内容:它由专业知识体系与对应的课程设置两部分组成,下面分别介绍。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-CN数值计算科学(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虚拟机(2)PL3语言翻译简介(6)PL4声明和类型(6)PL5抽象机制(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自然语言处理技术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运筹学CN3建模与仿真CN4高性能计算本规范给出的课程建议规定了每门课程的最小核心,包括的这些单元是要获得学位必须具备的相应知识。对于以上建议,规范强调以下两点:1)核心单元不是课程的全部。因为核心单元是课程最小的部分,所以它不能构成完整的本科课程,每门课程应当包括来自知识体系中的附加选修单元。2)核心单元不能仅仅安排在本科阶段的入门性课程中。许多核心单元属于入门的导论性知识,但这不意味着它们必须安排在低年级的入门性课程中,因为有些导论性的知识,只有当学生具有必需的基础知识后才能接受。另外,引论性课程也可以包括选修单元。所以核心这一说法只是意味着必须具备的含义,而并没有限制它必须安排在那些课程里。表1使用学时作为课时单位,表示以传统方式在课堂上授课的时间,应注意以下三点:1)不限定授课方式。除了传统的课堂授课方式,还有其他更好的方式,特别是近年来教育技术与手段的进步为我们提供了很多这样的方式。对这些教学方式来说,也许难以用小时来衡量。但为了便于统一与比较,规范仍然采用学时作为单位。从这个意义上说,学时与教学方式无关。2)课时数不包含课外的时间,即不包含教师的准备时间和学生花在课堂外的时间。通常,课堂外花费的时间约为课内时间的3倍。3)规范中列出的每个单元的课时数为最小课时数。即要达到教学目标可能花费的最小课时数,教学单位可以根据需要适当调整。3.课程体系知识体系给出了计算机科学专业方向的知识框架,但这些知识要通过课程教学来传授给学生。规范以举例或推荐的方式描述它们,各个学校可以此作为参照,构建具有本校特色的课程与课程体系。课程教学包括理论教学和实验教学。课程可以按知识领域进行设置,也可以由若干知识领域构成一门课程,还可以从各知识领域中抽取相关的知识单元组成课程。计算机科学专业方向课程体系由核心课程和选修课程组成,核心课程应该覆盖知识体系中的全部核心单元及部分选修知识单元。同时,各高校可选择一些选修知识单元、反映学科前沿和反映学校特色的知识单元放入选修课程中。(1)课程设置为了便于教学计划的排定,我们把课程分为基础课程、主干课程、高级课程三个层次。基础课程用以奠定专业基础,主干课程涵盖知识体系中的大部分核心知识单元,高级课程超出核心知识单元的范围,包括一些特色或先进的专业知识。基础课程在一、二年级开设;主干课程在二、三年级开设。基础课程和主干课程应该覆盖知识体系中的全部核心单元,也可以包括一些选修内容。如果某个核心单元未能包括在前两层的课程中,则应将其加入到高级课程中。下面给出这样一种安排的示例。基础课程:程序设计基础、面向对象程序设计、计算机导论、离散结构、数据结构、计算机组成等。主干课程:算法设计与分析、计算机体系结构、操作系统、网络计算、编译原理、人机交互、计算机图形学、人工智能、数据库、社会与职业问题、软件开发等。高级课程:可以选择编码与信息理论、数值分析、计算生物学、并行算法、高等计算机系统结构、VLSI开发、网络安全、机器学习、数据挖掘、软件设计等,也可以是旨在培养学生动手能力和团队合作能力的实践性课程。以上示例不是唯一的选择,各校可以在每个层次选择不同知识领域的知识单元组成课程,采用不同的策略安排教学计划。提倡这种课程选择与安排的灵活性是为了使各高校的专业教育办出特色,避免千人一面、过于雷同的弊病。(2)核心课程根据知识单元的分布,以及我们学制的学时,选取其中部分知识单元,组成如下15门核心课程。这些课程主要涉及到基础课程、专业课程这两个层次,所列学时包括理论学习和实践两部分,表2列出了这些课程及所含的知识单元,建议的学时数等,附录2给出了这些课程的详细描述供各校制定本校的教学计划时参考。表2计算机科学专业方向的核心课程序号课程名称理论学习学时实践学时涵盖知识单元非核心知识单元1计算机导论248SP1,PL1,SE3,PL3,HC1,SE7,NC22程序设计基础4816PL1,PF1,PF2,PF5,AL2,AL3,PL63离散结构720DS1,DS2,DS3,DS4,DS54算法与数据结构4816AL1,AL2,AL3,AL4,AL5,PF2,PF3,PF45计算机组成基础4816AR2,AR3,AR4,AR56计算机体系结构328AR5,AR6,AR7AR8,AR9,7操作系统3216AL4,OS1,OS2,OS3,OS4,OS5OS6,OS7,OS8,OS118数据库系统原理3216IM1,IM2,IM3,IM4,IM5,IM6IM7,IM8,IM9,IM10,IM11,IM13,IM149编译原理4016PL1,PL2,PL3,PL4,PL5,PL6PL7,PL810软件工程3216SE1,SE2,SE3,SE4,SE5,SE6,SE7,SE8SE9,SE1011计算机图形学248HC1,HC2,GV1,GV2HC5,GV3,GV4,GV5,GV6,GV7,GV8,GV912计算机网络3216NC1,NC2,NC3,NC4NC5,NC6,NC8,NC9,AR913人工智能328IS1,IS2,IS3IS4,IS5,IS6,IS714数字逻辑3216AR1,AR2,AR315社会与职业道德248SP1,SP2,SP3,SP4,SP5,SP6,SP7SP8,SP9,SP104.实践教学内容及体系计算机科学专业方向培养的学生应具有扎实的计算机基础理论知识,良好的科学素质和实践能力,具备从事计算机系统的分析、设计、应用和集成能力,能从事软件的开发和研究。实践教学包括课程实验、综合设计、教学实习、社会实践、毕业设计等,是实现这一培养目标的重要保证。(1)课程实验课程实验和课堂理论教学相辅相成。课程实验是实现教师和学生不断交流过程的桥梁,可以弥补课堂教学的不足,加深对理论知识的理解,启发学生深入思考,敢于创新,达到理论联系实际的教学效果。应开放性实验,以进一步培养学生实验技能与创新能力。在实验教学中,一方面向学生传授实验基础理论知识,包括仪器仪表的原理、测量方法、误差分析、设计原理和相关理论等,另一方面要训练学生的基本实验技能。包括仪器设备的操作使用、维护,仪器设备的连接与组合,实验环境和条件的设计,实验过程中一般故障的排除,实验结果的分析和解释。可以根据性质将实验分为观察性实验、验证性实验、设计性实验、研究性实验。应该包括以下典型实验(其中所列内容可根据情况进行选择):1)公共基础系列实验:主要包括物理实验、化学实验、计算机基本操作实验等。2)基础理论系列实验:主要包括数值分析实验、离散数学实验、算法设计与分析实验等。3)软件技术系列实验:主要包括汇编语言程序设计实验、高级语言程序设计实验、人工智能语言实验、数据结构实验、编译原理实验、操作系统实验、数据库原理及应用实验、软件工程实验、图形学实验等。还可以包括人机界面实验、多媒体技术实验等。4)硬件技术系列实验:主要包括电路分析实验、计算机原理实验、计算机网络实验等。(2)综合性课程设计除与课程相结合的基本实验外,从提高综合能力出发,还应该作为单独课程开设综合性课程设计。考虑到综合课程设计对学生实践教学能力培养的重要性,下面作为范例给出6个综合课程设计(每个本科学生可以选修其中3~4个)。1)数字系统综合设计:使学生基本掌握数字系统设计和调试的方法,增加集成电路知识。要求学生独立完成选题的设计,完成系统的装配及调试。2)计算机原理课程设计:加深对计算机原理和相关课程的理解,实践和锻炼计算机硬件的设计能力、工程实现和调试能力。要求了解HDL语言的设计过程与方法,用HDL语言进行逻辑设计和实现CPU。通过逻辑模拟和综合,将CPU硬核下载到FPGA中并运行。3)微机控制系统设计:使学生掌握有关微机接口、微机通讯的基础知识、使用嵌入式微处理器构成控制系统的实际知识,培养学生硬件方面的综合设计能力和动手能力。4)程序设计综合设计:使学生能更进一步地理解程序设计方法,熟练掌握常用的数据结构和算法,培养学生的实际设计能力和分析解决问题的能力,保持良好的程序设计风格。5)操作系统课程设计:要求学生掌握Linux系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,运用内核开发环境实现对内核源代码的分析与修改。6)软件工程课程设计:使学生系统地掌握软件工程及软件管理的过程、方法和工具,针对一个适度的软件开发课题,完成需求分析、软件设计、软件测试和软件维护,要求学生在开发小组中以分工协作的方式完成指定的任务。(3)特别课程在实践教学环节上,特别要设立一些帮助学生增强交流能力、解决问题能力和技术技能,以及有关道德规范教育的课程。例如:1)大作业:这些课程需要持续一到两个学期。通常学生必须成立一个小组,共同设计并实现几个大的作业。2)专业道德规范和法律:这些课程让学生清楚计算机所涉及到的道德规范和法律上的有关问题,并知道应该采取什么样的正确对策。3)团队开发:涉及的项目应该覆盖软件开发过程、软件管理、经济、风险管理、需求工程、设计、实现、维护、软件退役回收、软件质量保证、软件标准以及协同工作等。很多计算机科学专业方向以外的课程同样也可以帮助学生进行更高层次的实践教学,这些课程包括哲学、心理学、商业管理、经济学以及技术交流等。(4)毕业设计及毕业设计是一个科研和教学结合最为密切的实践环节。毕业设计可以从科研任务中选择规模适当、相对独立的题目,还可以通过与企业紧密合作的实践教学活动来进行。优秀的学生可以在大学三年级或更早就参与到教师的科研工作中,以获得更多的实践机会。鼓励有能力和有精力的学生积极参与数模竞赛、电子设计大赛等重要的科技竞赛活动。教师应该通过评估体制对实践教学提供合理的评估,从而起到有效的促进作用。四、办学条件1.师资力量师资指学校中在编的具有教师专业技术职务的全部工作人员和长期外聘的教师。师资队伍是学科、专业发展和教学工作的核心资源。师资队伍的质量对学科、专业的长远发展和教学质量的提高有直接影响。根据高等院校理工科本科专业人才培养模式,专业人才的培养要体现知识、能力、素质协调发展的原则。这就要求构建一支整体素质高、结构合理、业务过硬、具有创新精神的师资队伍,以适应专业人才培养及自身发展的需要。学校应有师资队伍建设长远规划和近期目标,有吸引人才、培养人才、稳定人才的良性机制,以学科建设和课程建设推动师资队伍建设,以提高教学质量和科研水平为中心,以改善教师知识、能力、素质结构为原则,通过科学规划,制定激励措施,促进师资队伍整体水平的提高。(1)师资队伍的数量与结构①生师比适宜,满足本专业本科教学工作的需要,一般不高于16∶1。生师比=本科学生总数/教师总数。其中,教师总数=专任教师数+聘请校外教师数/2。②师资队伍整体结构合理,发展趋势良好,符合专业目标定位要求,适应学科、专业长远发展的需要和教学需要。③年龄结构合理。年龄在50岁以下的教授及35岁以下的副教授分别占教授总数和副教授总数的比例适宜,中青年骨干教师所占比例较高。④学历(学位)和职称结构合理。具有硕士以上学历(学位)和讲师以上职称的教师占专职教师的比例不低于85%。(2)对教师队伍的知识、能力、素质结构的要求思想政治素质:坚持四项基本原则,用唯物主义的立场、观点和方法观察事物、分析问题,具有良好的道德修养,为人师表、教书育人,善于团结合作,谦虚谨慎、严谨治学,对国家和社会具有强烈责任感和使命感。学术水平:根据专业建设、课程建设和学科发展的需要,教师队伍尤其是专任教师应加速知识更新,拓宽相关学科知识,具有较高的教学、科研和技术开发能力。外语能力:具有较强的外语能力,基本具备国际学术交流能力。现代教学手段应用能力:教师能够熟练地运用现代教学手段,并与传统教学方法相结合,提高课堂教学效果;重视对教学法的研究,提高授课水平。(3)助教岗位的设置建立健全助教制度,根据课程特点和学生人数配备适量的助教,协助主讲教师指导实验、批改作业、进行答疑,以获得更好的教学效果。(4)设置教学质量保证和监控体系,促进教学管理的科学化和规范化。2.教材教材选用应注重三基(基础理论、基本知识、基本技能)、五性(思想性、科学性、启发性、先进性、适用性),充分考虑宽口径人才培养原则,使教材符合不同层次人才培养目标和培养模式,体现三个特定(特定对象、特定要求、特定限制)的要求。有计划、有选择地使用有影响、有特色的高质量中、英文教材。包括获省部级以上奖励或水平较高的教材,鼓励有条件的学校选用适用的的英文原版教材等。加快教材的更新换代,缩短使用周期。考虑到计算机和相关学科知识更新周期短的特点,使用近三年出版新教材的比例应不低于50%。应有科学的教材评介和选用制度,定期进行审核和评测。对于首次使用的教材,尤其是新编教材,任课教师应进行质量追踪调查,收集反映,作为今后教材修订、补充、评介的参考。有条件的学校应该积极组织高水平教师编写教材。教材编写要适应计算机专业发展和社会经济发展的需求,研究新思路、新机制和新方法,注重质量,发挥学科优势,搞好重点规划。在重视和加强文字教材建设的同时,加强声像教材及电子教材的建设。鼓励教师自主开发与文字教材相配套的多媒体教材。3.图书资料根据专业建设、课程建设和学科发展的需要,加强图书馆服务设施建设。注重制度建设和规范管理,保证图书资料采购经费的投入,使之更好地为教学科研工作服务。图书资料应包括文字、光盘、声像等各种载体的中外文献资料。(1)图书馆应具有的软硬件条件应具备一定数量的与专业有关的图书资料,种类齐全,满足教学和科研工作的需要。生均面积和阅览座位数应满足有关规定。充分利用计算机网络,加强图书馆的信息化建设,为读者提供网络环境下多种多样的信息服务。(2)图书资料采集经费应保证一定数额的年度图书资料采集经费,使图书资料每年能保持一定的更新比例。4.实验室实验室建设须有长远建设规划和近期工作计划,既要注重专业基础实验,又要注重新方向、新技术的发展,还要结合本专业特长和地方经济发展需求,建设专业实验室。实验室应提供开放服务以提高设备利用率。(1)实验室设备和经费计算机是基本实验设备,在校本科生总数与实验室计算机总数比不应低于4∶1。有满足实践教学的网络设备、实验箱、辅助设备等实验室设备。现有仪器设备完好率不低于95%,处于维修状态一个月以上的仪器设备不超过本实验室仪器设备总数的3%。仪器设备的更新率达到以下标准:G=×100%>80%(2)实验室管理应具备教学大纲、教学计划、任务书、教学日志、课表、实验指导书等规范材料,基础课实验室的教学任务要达到每台每周30小时以上,专业课实验室承担的教学任务要达到每周20小时以上。为提高学生的独立思考及独立操作能力,基础课实验室应提倡单人单机,特殊情况下每组实验人数不超过2人。5.实习基地建设作为实践教学环节的重要组成部分,实习基地的建设起着重要的作用。实习基地的建设应本着服务地方经济,发挥本专业特长的原则,使学生在实践过程中既能达到提高个人能力的目的,同时满足服务社会的要求。社会实践的形式可以多种多样,包括到实践单位解决科研和开发中的技术或管理问题,结合经济建设和社会发展开展专题调查,深入实习基地参与实际课题或项目的开发等。学校应定期对实习基地进行评估,包括接收学生的数量、提供实习题目的质量、管理学生实践过程的情况、学生的实践效果等。(1)校内实习基地建设校内实习基地应能为参加实践教学环节的学生提供平均每人每周30小时以上的独立设备使用时间,并设有专门的指导教师对学生的实践内容、实践过程等进行全面跟踪和控制。(2)校外实习基地建设有条件的学校应本着“就地就近、互惠互利、专业对口、相对稳定”的原则,在有关部门的协调下,积极与相关单位建立校外实习基地。学校应指定有实践经验、责任心强的教师担任实习指导教师,并聘请实习基地中政治思想好、业务水平高、责任心强的人员,担任校外指导教师。6.教学经费对于新建专业,教学经费应包括实验室建设经费、图书资料经费和人员工资费用等。应保证较充足的专业开办经费(不包括固定资产)。对于已建专业,每年正常的教学经费应包含师资队伍建设经费、人员工资费用、实验室维护更新费用、图书资料经费、实习基地建设经费等。五、主要参考指标1.培养方案(1)本科学制:学制四年,实行学分制的学校采用弹性学制,一般为3~8年。(2)每学年学习时间(学生在校时间,含集中实践环节)不低于40周。(3)学生需修的总学分应不低于150学分,一般在180学分以内。总学分包括普通教育、专业教育和综合教育等不同类型的学分。(4)普通教育(通识教育)类的学分占总学分的30%左右。主要包括:①政治思想教育和人文社会科学,②经济管理,③自然科学,④外语,⑤体育,⑥实践训练等。计算机科学专业方向的学生不进行计算机信息技术类知识体系的普通教育。普通教育类学分为必修学分。(5)专业教育类的学分占总学分的60%左右。包括:①计算机科学学科基础,②计算机科学方向的专业内容,③专业实践训练等。(6)综合教育类的学分占总学分的10%左右。主要包括:①思想品德教育,②学术与科技活动,③文体活动,④跨专业选修课,⑤社会实践及自选活动等。(7)学时与学分的折算办法:未实行学分制的学校,学时与学分的折算由各校根据学校实际情况自行决定。本规范建议课程教学16学时折算1学分,集中实践性环节每周折算为1学分。在特殊情况下,某些课程的学时学分折算办法可自行调整(例如,体育课)。2.师资队伍(1)教师数量:生师比不高于16:1。(2)35岁以下的青年教师中博士、硕士比例应在50%以上。(3)主讲教师中具有硕士以上学位或讲师以上职称,并通过岗前培训取得合格证的教师应占85%以上。3.教学条件(1)计算机数量不少于每4人1台,具有技术先进的网络环境并同Internet连接。(2)具有满足教学需要的教学仪器设备,生均教学仪器设备值不低于6000元。(3)具有满足教学需要的图书资料(含校图书馆和院、系资料室的文字、光盘、声像等各种文献资料)和多媒体教学环境。4.实践教学(1)实践教学学分约占30学分,占总学分的比例不低于20%。(2)有开放的机房,学生在校期间上机时数不低于600小时。(3)毕业论文(设计)环节不低于12周,选题应结合科学研究或应用需求。附录1计算机科学专业方向知识体系1.离散结构(CS-DS)(72核心学时)CS-DS1函数、关系与集合(核心)CS-DS2基本逻辑(核心)CS-DS3证明技巧(核心)CS-DS4计数基础(核心)CS-DS5图与树(核心)CS-DS6离散概率(这部分内容由基础课“概率统计”完成)离散结构是计算机科学的基础内容,可以为计算机系统提供其处理对象的状态及其变换的有效描述。所以,计算机科学与技术有关的许多领域都要用到离散结构中的概念。离散结构包括集合论、逻辑学、图论和组合学等重要内容。数据结构和算法分析与设计中含有大量离散结构的内容。例如:在形式证明、验证、密码学的研究与学习中要有理解形式证明的能力。图论中的概念被用于计算机网络、操作系统和编译系统等领域。集合论的概念被用在软件工程和数据库中。随着计算机科学与技术的日益成熟,越来越完善的分析技术被用于实践,为了理解将来的计算机科学技术,学生需要对离散结构有深入的理解。CS-DS1函数、关系与集合(核心)最少时间:12学时知识点函数(满射,到内的映射,逆函数,复合函数)关系(自反,对称,传递,等价关系)集合(文氏图,补集,笛卡儿集,幂集)鸽笼原理基数性和可数性学习目标(1)举例解释集合、关系和函数的基本术语;(2)举例说明集合、关系和函数的有关运算;(3)将实例与合适的集合、函数和关系模型关联,并解释有关的运算和术语;(4)举例说明:基本计数原理,包括对角线原理和鸽笼原理的用法。CS-DS2基本逻辑(核心)最少时间:18学时知识点命题逻辑逻辑连接词真值表范式(合取式和析取式)永真性谓词逻辑全称量词和存在量词假言推理、否定式推理谓词逻辑的局限性学习目标(1)使用命题逻辑与谓词逻辑的形式化方法;(2)说明符号逻辑的形式化工具如何给算法和实际问题建模;(3)用形式逻辑证明和逻辑推理法解决问题;(4)说明谓词逻辑的重要性和局限性。CS-DS3证明技巧(核心)最少时间:24学时知识点蕴涵、逆、逆反、置换、非、永假等概念形式证明结构直接证明反例证法逆反式证明法反证法数学归纳法强归纳法递归数学定义良序学习目标(1)以实例给出本单元所列的每种证明技巧的基本结构;(2)论述对给定的问题哪一种证明是最好的;(3)将数学归纳法思想与递归及递归定义结构联系起来;(4)指出数学归纳法与强归纳法的差异,并给出相应的应用实例。CS-DS4计数基础(核心)最少时间:12学时知识点计数变元求和与相乘的规则包含排斥算术和几何级数斐波那契(Fibonacci)数列排列组合基本定义恒等式二项式定理递归关系实例Master原理学习目标(1)计算一个集合的排列和组合,并解释在特定应用中的意义;(2)叙述Master原理的定义;(3)给出各种递归方程的解法;(4)分析问题以建立相关的递归方程,或指出重要的计数问题。CS-DS5图与树(核心)最少时间:6学时知识点树无向图有向图生成树遍历策略学习目标(1)用实例解释图论基本术语、特性和每种特殊情况;(2)用实例说明树和图遍历方法的差异;(3)用图和树给计算机科学中的问题建模;(4)图和树与数据结构、算法和计数之间的关系。CS-DS6离散概率(这部分内容由基础课“概率统计”完成,为使学习具有针对性,此处仍列出其知识点和学习目标)知识点有限概率空间、概率度量、事件条件概率、独立性、贝叶斯规则整型随机变量、期望学习目标(1)对于如偶然性游戏的基本问题计算事件概率和随机变量的期望值;(2)依赖事件与独立事件的差异;(3)二项式定理应用于独立事件和贝叶斯规则应用于依赖事件;(4)将概率工具应用于问题的求解,包括如MonteCarlo随机方法、算法平均情况分析和散列法。2.程序设计基础(CS-PF)(69核心学时)CS-PF1程序设计基本结构(核心)CS-PF2算法与问题求解(核心)CS-PF3基本数据结构(核心)CS-PF4递归(核心)CS-PF5事件驱动程序设计(核心)熟练掌握程序设计语言是学习计算机科学大多数内容的前提,教学大纲应要求学生掌握如何使用一种程序设计语言。建议学生至少应熟练掌握两种程序设计范例。程序设计基础领域的知识由程序设计基本概念和程序设计技巧组成,这些概念和技巧对于独立于基本范例的程序设计实践十分重要。这一领域包括的知识单元有程序设计基本概念、基本数据结构和算法等,它们很好地覆盖了计算机科学专业本科生必须了解和掌握的整个程序设计的知识范围。其他知识领域如程序设计语言(PL)和软件工程(SE)——也包含有和程序设计相关的知识单元,这些知识单元也是本专业本科教学大纲中的核心课程。一般来说,这些知识单元可以划归程序设计基础,也可以划归其他的知识领域。CS-PF1程序设计基本结构(核心)最少时间:15学时知识点变量、类型、表达式和语句高级语言的基本语法和语义输入和输出基础顺序、条件和循环控制结构函数定义、函数调用和参数传递程序结构分解基础学习目标(1)分析解释由基本程序结构组成的简单程序(含基本计算、简单输入输出、条件与重复结构和函数);(2)修改和扩充简单程序;(3)设计、实现、测试和查错;(4)按给定的程序设计任务,选择相应的条件和重复结构;(5)应用结构化技术分解程序;(6)掌握参数的传递过程。CS-PF2算法与问题求解(核心)最少时间:8学时知识点问题求解策略问题求解算法算法实现策略调试策略算法的概念和特性学习目标(1)了解算法在问题求解中的重要性;(2)了解一个好算法的必要特性;(3)给简单问题设计算法;(4)解决简单问题,能用伪代码或程序设计语言实现算法,并对该算法作测试和查错;(5)掌握查错策略。CS-PF3基本数据结构(核心)最少时间:30学时知识点基本类型数组记录字符串和字符串处理数据在存储器中的表示静态分配、栈式分配和堆式分配运行时的存储器管理指针和引用链式结构栈、队列和哈希表的实现策略树和图的实现策略数据结构的应用和选择策略学习目标(1)了解基本数据和复合数据的表示和用法;(2)了解数据结构在存储器中的分配和使用;(3)掌握各种数据结构的常见应用;(4)掌握高级语言实现用户定义数据结构的方法;(5)了解数据结构实现方法的差异;(6)能用数组、记录、字符串、链表、栈、队列和哈希表等数据结构编写程序;(7)了解动态数据结构和静态数据结构实现的差异;(8)数据结构在问题建模中的应用。CS-PF4递归(核心)最少时间:10学时知识点递归的概念递归数学函数递归过程分治法回溯法递归的实现学习目标(1)解释递归的概念和递归应用实例;(2)识别递归定义问题的基本情况和一般情况;(3)以类似阶乘问题为例,比较循环和递归求解方法的差异;(4)解释分治法;(5)编写、测试、调试简单的递归函数和递归过程;(6)解释如何利用栈实现递归;(7)通过实例解释回溯法的求解过程;(8)能确定何时用递归求解。CS-PF5事件驱动程序设计(核心)最少时间:6学时知识点事件处理方法事件传播异常处理学习目标(1)解释事件驱动程序设计与命令行程序设计的差异;(2)设计、测试、调试简单的响应用户事件的事件驱动程序;(3)编写能响应执行中异常情况的代码。3.算法与复杂性(CS-AL)(54核心学时)CS-AL1算法分析基础(核心)CS-AL2算法策略(核心)CS-AL3基本算法(核心)CS-AL4分布式算法(核心)CS-AL5可计算性理论基础(核心)CS-AL6复杂性类:P类和NP类(选修)CS-AL7自动机理论(选修)CS-AL8高级算法分析(选修)CS-AL9加密算法(选修)CS-AL10几何算法(选修)CS-AL11并行算法(选修)CS-AL1算法分析基础(核心)最少时间:6学时知识点复杂性上界和平均复杂性的渐近分析最佳、最差和平均情况下的复杂性差异大O,小o,Ω和θ符号标准复杂性类性能的经验度量算法时间、空间复杂性的权衡用递归关系分析递归算法学习目标(1)解释记号大O、小o、Ω和θ的用法,以描述算法所做的工作量;(2)用大O、Ω和θ记号表示算法的时间和空间复杂性的渐近上界、下界和严格界;(3)确定简单算法的时间和空间复杂性;(4)推导递归关系以描述由递归定义的算法的时间复杂性;(5)解决简单的递归关系。CS-AL2算法策略(核心)最少时间:12学时知识点穷举算法贪心算法分治算法回溯法分支界限法试探法模式匹配和字符串/文本匹配算法数值逼近算法学习目标(1)描述穷举法的缺点;(2)用人们日常行为中的例子对各种算法(穷举算法,贪心算法,分治算法,回溯法,分支界限法和试探法)加以说明;(3)实现解决一个合适问题的贪心算法;(4)实现解决一个合适问题的分治算法;(5)用回溯法解决诸如走迷宫这样的问题;(6)描述各种试探法的解题方法;(7)用模式匹配算法分析子字符串;(8)用数值逼近方法解决如求解多项式根这样的数学问题。CS-AL3基本算法(核心)最少时间:24学时知识点简单数值算法顺序查找算法和折半查找算法二次排序算法(选择排序,插入排序)复杂度为O(NlogN)排序算法(快速排序,堆排序,归并排序)Hash表,包括冲突消解策略二叉查找树图的表示(邻接表,邻接矩阵)深度优先遍历、广度优先遍历最短路径算法(Dijkstra和Floyd算法)传递闭包(Floyd算法)最小生成树(Prim算法和Kruskal算法)拓扑排序学习目标(1)实现最常用的二次排序和O(NlogN)算法;(2)对一个应用问题设计一个合适的Hash函数并加以实现;(3)对Hash表设计一个解决冲突的算法并加以实现;(4)讨论排序、搜索和Hash的主要算法的计算效率;(5)讨论那些与计算效率不同的影响算法选择的其他因素,如编程时间、维护和输入数据中的特殊应用模式;(6)用基本的图算法解决问题,包括深度优先遍历和广度优先遍历,单源最短路径和所有的最近点对间路径,传递闭包,拓扑排序和至少一种最小生成树算法;(7)具有算法评价、选择合适的算法且给出理由,以及在指定程序设计环境下实现算法的能力。CS-AL4分布式算法(核心)最少时间:4学时知识点一致性和选择终止探测容错稳定性学习目标(1)解释分布式范例;(2)解释一个简单分布式算法;(3)确定何时使用一致性算法或选择算法;(4)区分逻辑时钟和物理时钟;(5)描述分布式算法中的事件相对顺序。CS-AL5可计算性理论基础(核心)最少时间:8学时知识点有限状态自动机上下文无关文法易解问题和难解问题不可计算函数停机问题不可计算性的含义学习目标(1)讨论有限自动机概念;(2)解释上下文无关文法;(3)设计一个确定的有限状态自动机接受指定语言;(4)解释什么叫“一些问题算法不可解”;(5)举例说明不可计算性的概念。CS-AL6复杂性类:P类和NP类(选修)知识点P类和NP类的定义NP完全性基本的NP完全问题归约技术学习目标(1)定义P类,NP类;(2)解释NP完全性的意义;(3)通过把已知的NP完全问题归约成要研究的问题来证明要研究的问题是NP完全的。CS-AL7自动机理论(选修)知识点确定的有限自动机(DFA)非确定的有限自动机(NFA)DFA和NFA的等价性正则表达式正则表达式的泵引理下推自动机(PDA)PDA和上下文无关文法的关系上下文无关文法的特性图灵机非确定的图灵机集合和语言Chomsky文法分类ChurchTuring论题学习目标(1)确定一个语言Chomsky分类(正则集,上下文无关语言、上下文有关语言和递归可列枚举语言);(2)证明一个语言在一个特定的类中并且不能在低层的类中;(3)语言的转换,包括在DFA、NFA和正则表达式间以及PDA和CFG之间的相互转换;(4)解释自顶向下分析和自底向上分析算法(至少各解释一种);(5)解释ChurchTuring论题及其重要性。CS-AL8高级算法分析(选修)知识点退火算法分析联机算法和脱机算法随机算法动态程序设计组合优化学习目标(1)为未定数据结构的退火分析算法提供一种方法及其相应的函数;(2)解释为何竞争分析是联机算法的合适度量标准;(3)解释随机算法在难以用确定算法或确定的算法更难的设计问题中的作用;(4)用动态程序设计方法实现问题求解。CS-AL9加密算法(选修)知识点密码学史回顾私钥密码和密钥交换问题公钥密码数字签名安全协议应用(零知识证明,认证系统等等)学习目标(1)描述有效的基本数论算法,包括最大公约数算法,模n的乘法逆元算法和数的幂次算法;(2)描述至少一种公钥密码系统,包括对安全必需的复杂性理论的假设;(3)使用现有的协议和密码原语,作密码协议的简单扩充。CS-AL10几何算法(选修)知识点线段的性质和线段相交性求凸包算法学习目标(1)描述和给出至少两个求凸包算法的时间分析;(2)验证求凸包算法的复杂度下界是Ω(NlogN);(3)描述至少一种其他的有效几何算法,如找最近点对算法,求凸层算法,求最大层算法。CS-AL11并行算法(选修)知识点PRAM模型互斥读写与并发读写指针跳转Brent定理和工作效率学习目标(1)描述PRAM上链表的实现;(2)用前置并行操作进行简单的有效并行计算;(3)解释Brent定理和有关方面。4.计算机体系结构与组织(CS-AR)(82核心学时)CS-AR1数字逻辑与数字系统(核心)CS-AR2数据的机器级表示(核心)CS-AR3汇编级机器组织(核心)CS-AR4存储系统组织和结构(核心)CS-AR5接口和通信(核心)CS-AR6功能组织(核心)CS-AR7多处理和其他系统结构(核心)CS-AR8性能提高技术(选修)CS-AR9网络与分布式系统结构(选修)本课程介绍计算机系统的组织结构,以冯·诺依曼模型作为教学起点,进而介绍较新的计算机组织结构体系。作为本专业的本科生,应当对计算机的内部结构、功能部件、功能特征、性能以及交互方式有所了解,而不应当把它看作一个执行程序的黑盒子。学生还应当了解计算机的系统结构,以便在编写程序时能根据计算机的特征编写出更加高效的程序。在选择计算机产品方面,应当能够理解各种部件选择之间的权衡,如CPU、时钟频率和存储器容量等。CS-AR1数字逻辑与数字系统(核心)最少时间:16学时知识点计算机发展历史回顾基本的组成元件(逻辑门,触发器,计数器,寄存器,PLA)逻辑表达式,最小化,寄存器传输的表示,物理特性(门延迟,扇入,扇出)计算机的基本组成,硬件结构,软件的概念,计算机语言及其编译计算机系统结构的概念,性能评价学习目标(1)描述计算机系统结构从电子管到超大规模集成电路的发展过程;(2)展示计算机基本模块的工作原理及其在计算机系统发展中的历史作用;(3)使用数学表达式描述简单的组合电路和时序电路的功能;(4)解释典型的冯·诺依曼机器的结构及其主要功能模块;(5)用功能模块设计一个简单的电路。CS-AR2数据的机器级表示(核心)最少时间:6学时知识点数值表示和数制定点数和浮点数系统有符号数的表示方法和基本运算方法非数值数据的表示(如字符代码和图像数据)系统可靠性与纠错码数据运算器的结构学习目标(1)解释使用不同数据表示方式的理由;(2)解释原码和补码是如何表示负数的;(3)数制及其转换的原理;(4)讨论定长数据表示如何影响数据表示的精度;(5)描述非数值数据在计算机内部的表示方法;(6)描述字符、字符串、记录和数组在计算机内部的表示方法。CS-AR3汇编级机器组织(核心)最少时间:18学时知识点指令格式数据的存储方式与寻址方式指令集及其分类(数据操作,控制,输入输出)子程序调用和返回机制汇编语言和机器语言编程基础学习目标(1)概述机器指令和汇编指令的表示方式;(2)解释不同的指令格式,如不同的地址码数量和不同的指令长度;(3)编写简单的汇编语言程序段;(4)解释高级语言的结构如何在机器语言层次上表示;(5)解释在汇编层次上如何实现子程序的调用。CS-AR4存储系统组织和结构(核心)最少时间:10学时知识点存储器件类型及其工作原理主存储器的组织和操作存储器的延迟,工作周期,带宽提高和交叉存储技术层次化存储系统高速缓冲存储器(地址映射,块大小,替换和更新机制)虚拟存储器(页表,TLB快表)学习目标(1)识别存储技术的主要类型;(2)解释访问存储的时间延迟效应;(3)解释层次化存储器在减少实际访存延迟上的应用;(4)描述存储管理的原理;(5)描述cache和虚拟存储器的作用;(6)解释具有虚拟存储器管理的系统的工作原理。CS-AR5接口和通信(核心)最少时间:12学时知识点输入输出基本原理,信号交换,缓冲存储程序控制I/O,中断驱动I/O,DMA中断结构,向量化和优先级化,中断识别外部存储器的物理组织及驱动总线和总线协议,仲裁机构和直接存储器存取(DMA)多媒体支持RAID系统结构学习目标(1)解释中断是如何用于实现I/O控制和数据传输的;(2)认识计算机系统中各种类型的总线;(3)描述从磁盘上进行数据访问的过程;(4)描述RAID系统结构的优点及其实现方法;(5)描述接口中如何支持多媒体数据的传输。CS-AR6功能组织(核心)最少时间:14学时知识点简单的数据通路实现控制单元,硬连线实现和微程序实现指令读取、解码和执行异常与中断指令流水技术,指令级并行(ILP)技术与循环级并行技术学习目标(1)解释指令在典型的冯·诺依曼计算机上的指令过程;(2)解释中断的基本概念;(3)比较各种数据通路的构成;(4)讨论控制点的概念,以及用硬连线和微程序生成控制信号的方法;(5)解释基本的指令级并行性,及其数据相关性。CS-AR7多处理和其他系统结构(核心)最少时间:6学时知识点SIMD,MIMD,VLIW和EPIC网络互联(超立方体,混洗交换,网格结构,交叉开关结构)共享存储系统cache一致性存储模型和存储一致性学习目标(1)讨论在典型的冯·诺依曼机上进行并行处理的概念;(2)描述其他系统结构,如SIMD、MIMD和超长指令字;(3)解释互连网络的概念以及各种互连网络结构的特点;(4)讨论多处理机系统的特殊问题,包括存储器管理,描述如何解决这些问题。CS-AR8性能提高技术(选修)知识点超标量系统结构分支预测指令预取推测执行多线程学习目标(1)描述超标量系统结构及其优点;(2)解释分支预测的概念及其效果;(3)描述指令预取的代价及其好处;(4)解释推测执行的原理;(5)讨论多线程系统结构的性能优势及其实现上的困难。CS-AR9网络与分布式系统结构(选修)知识点LAN与WAN网络的分层协议分布式算法对系统结构的影响网络计算分布式多媒体学习目标(1)解释基本的网络构成原理,以及LAN与WAN的区别;(2)讨论网络层次化协议的设计问题;(3)解释网络系统与分布式系统的区别;(4)讨论与网络计算和分布式多媒体有关的问题。5.操作系统(CS-OS)(40核心学时)CS-OS1操作系统概述(核心)CS-OS2操作系统原理(核心)CS-OS3并发性(核心)CS-OS4调度与分派(核心)CS-OS5内存管理(核心)CS-OS6设备管理(核心)CS-OS7安全与保护(核心)CS-OS8文件系统(核心)CS-OS9实时和嵌入式系统(选修)CS-OS10容错(选修)CS-OS11系统性能评价(选修)CS-OS12脚本(选修)操作系统是硬件性能的抽象,进行计算机用户间的资源分配工作,人们通过它来控制硬件。这门课主要讲述影响现代操作系统设计的各种因素及实际操作。近些年来操作系统和其抽象机制相对于应用软件变得更加复杂,这就要求学生在系统学习内部算法实现和数据结构之前对操作系统有比较深入的理解。因而课程设置不仅强调了操作系统的使用(外部特性),更强调它的设计和实现(内部特性)。操作系统中的许多思想也可用于计算机的其他领域,如并发程序设计、算法设计和实现、虚拟环境的创建、安全系统的创建及网络管理等。CS-OS1操作系统概述(核心)最少时间:2学时知识点操作系统的作用和目的操作系统的发展历史操作系统的特征和功能支持客户/服务器模型和手提设备的机制有关有效性、健壮性、灵活性、可移植性、安全性、兼容性的设计问题安全性、网络化、多媒体、视窗所带来的影响学习目标(1)阐述现代操作系统的目标和功能;(2)介绍操作系统如何从最早的批处理系统发展成为复杂的多用户系统;(3)分析操作系统设计中存在的平衡问题;(4)介绍最新操作系统在使用方便、运算效率、演化能力方面的功能;(5)分析讨论网络操作系统、客户/服务器操作系统、分布式操作系统及它们与单用户操作系统的不同之处;(6)充分认识操作系统的潜在威胁,以及所需采取的安全防范措施;(7)介绍公开源程序和Internet的广泛使用等方面对操作系统设计带来的影响。CS-OS2操作系统原理(核心)最少时间:4学时知识点结构化方法(整体的、分层的、模块化的、微内核模型)抽象、进程、资源应用程序接口(API)的基本概念应用的需求以及软、硬件技术的发展设备的组织中断的方法和实现用户/系统状态及其保护,以及用户/系统状态转换到核心态的原理学习目标(1)阐述逻辑层的概念;(2)阐述在分层模式下建立抽象层的好处;(3)说明应用程序接口(API)和中间件的需求;(4)解释计算机资源是如何被应用软件使用,被系统软件管理的;(5)比较操作系统中的用户态和核心态;(6)论述使用中断处理的优缺点;(7)比较几种构造操作系统结构的方法,如:面向对象、模块化、微内核、分层;(8)论述设备队列和输入输出驱动队列的用途。CS-OS3并发性(核心)最少时间:12学时知识点状态和状态图就绪队

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论