




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机科学各主领域及其基本问题本节综合CC2013和CC2001报告,给出计算机科学各领域的简介,以及计算机科学中各领域的基本问题。以下学科领域按字母先后顺序排列,不分轻重。1. 算法与复杂性(Algorithms and Complexity,AL)算法是计算机科学和软件工程的基础。现实世界中任何软件系统的性能仅依赖于两个 方面:一方面是所选择的算法;另一方面是在各不同层次实现的效率。 对所有软件系统的性能而言,好的算法设计都是至关重要的。此外,算法研究能够深刻理解问题的本质和可能的求解技术,而不依赖于具体的程序设计语言、程序设计模式、计算机硬件或其他任何与实现有关的内容。计算的一个重要内容
2、就是根据特定目的选择适当的算法并加以运用,同时认识到可能存在不合适的算法。这依赖于对那些具有良好定义的重要问题求解算法的理解,以及认识到这些算法的优缺点和它们在特定环境中的适宜性。效率是贯穿该领域的一个核心概念。下面,给出算法与复杂性领域的基本问题。(1)对于给定的问题类,最好的算法是什么?要求的存储空间和计算时间有多少?空间和时间如何折中?(2)访问数据的最好方法是什么?(3)算法最好和最坏的情况是什么?(4)算法的平均性能如何?(5)算法的通用性如何?2体系结构(Architecture and Organization,AR)计算机在计算技术中处于核心地位。如果没有计算机,计算学科将只是
3、理论数学的一个 分支。作为计算专业的学生,都应该对计算机系统的功能部件、功能特点、性能和相互作用有一定的理解,而不应该只将计算机看作是一个执行程序的黑盒子。了解计算机体系结构和组织还有一定的实际意义。为了构造程序,需要理解计算机体系结构,从而使该程序在一台真正的机器上能更有效地运行。在选择用于应用的系统时,应该理解各种部件之间的折中,如CPU、时钟频率与内存大小的折中。下面,给出体系结构领域的基本问题。(1)实现处理器、内存和机内通信的方法是什么?(2)如何设计和控制大型计算系统,而且使其令人相信,尽管存在错误和失败,但它仍然是按照我们的意图工作的?(3)哪种类型的体系结构能有效地包含许多在一
4、个计算中能并行工作的处理元素?(4)如何度量性能?3计算科学(Computational Science,CN)从该学科诞生之日起,科学计算的数值方法和技术就构成了计算机科学研究的一个主要领域。随着计算机问题求解能力的增强,该领域(正如该学科一样)已经在广度和深度两方面得到了发展。现在,科学计算本身就代表了一个学科,一个与计算机科学密切相关的学科。为此,CC2001任务组只是将它划为计算机科学的一个主领域,但不确定任何核心知识单元,也就是说,尽管它是计算机科学的一个组成部分,但不要求每个教学大纲都必须包含这些内容。对于希望学习这部分知识的人,该领域提供了许多有价值的思想和技术,包括数值表示的精
5、度、误差分析、数值技术、建模和仿真。 同时,学习过该领域课程的学生有机会在宽阔的应用领域中应用这些技术,例如下面这些领域:(1)分子力学。(2)流体力学。(3)天体力学。(4)经济预测。(5)优化问题。(6)材料的结构化分析。(7)生物信息学。(8)计算生物学。(9)地质建模。(10)X断层摄影术的计算机化。下面,给出科学计算领域的基本问题。(1)如何精确地以有限的离散过程近似表示连续和无限的离散过程?(2)如何处理这种近似所产生的错误?(3)给定某一类方程在某精确度水平上能以多快的速度求解?(4)如何实现方程的符号操作,如积分、微分以及到最小项的归约?(5)如何把这些问题的答案包含到一个有效
6、的、可靠的、高质量的数学软件包中?4离散结构(Discrete Structures,DS)离散结构是计算机科学的基础内容。尽管很少有计算机科学家专门从事离散结构的研究,但计算机科学许多领域的工作都要用到离散结构的概念。离散结构包括集合论、数理逻辑、代数系统、图论和组合数学等重要内容。离散结构的内容在数据结构、算法以及其他计算机科学领域都有广泛的运用。例如,在形式规格、验证以及密码学的研究和学习中,需要有生成并理解形式证明的能力;在计算机网络、操作系统、编译系统等领域要用到图论的概念;在软件工程和数据库等领域需要使用集合论的概念。随着计算机科学与技术的日益成熟,越来越完美的分析技术被用于解决实
7、际问题。为理解将来的计算技术,需要有坚实的离散结构基础。计算学科的根本问题是“能行性”的问题。而凡是与“能行性”有关的讨论,都是处理离散对象的。因为非离散对象,即所谓的连续对象,是很难进行能行处理的。因此,“能行性”这个计算学科的根本问题决定了计算机本身的结构和它处理的对象都是离散型的,甚至许多连续型的问题也必须在转化为离散型问题以后才能被计算机处理。例如,计算定积分就是把它变成离散量,再用分段求和的方法来处理的。正是源于计算学科的根本问题,以离散型变量为研究对象的离散数学对计算技术的发展起着十分重要的作用。同时,又因为计算技术的迅猛发展,离散数学越来越受到重视。为此,CC2001特意将它从C
8、C1991的预备知识中抽取出来,列为计算机科学知识体的第一个主领域,命名为“离散结构”,以强调它的重要性。CS2013继续强调该领域的重要作用,在新增了4个领域,在总的核心学时基本保持不变的情况下,仅该领域的核心学时减少了2个,维持在较高的41个核心学时上。5图形学与可视化(Graphics and Visualization,GV)图形学与可视化领域可以划分成以下4个相互关联的子领域。(1)计算机图形学计算机图形学是研究怎样用计算机生成、处理和显示图形的一个学科分支领域。在计算机图形学的研究过程中,有以下具体要求: 要求表示信息和构造应有助于图像的产生和观察。 要求方便用户,使之能够通过精心
9、设计的设备和技术与模型进行交互。 要求提供绘制模型的技术。 要求设计有助于图像保存的技术。计算机图形学的目标是对人的视觉中心及其他认知中心有进一步深入的了解。(2)可视化可视化是指使用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示,并进行交互处理的理论、方法和技术。当前的可视化技术主要是探索人类的视觉能力以及声音和触觉(触摸)。其目的在于通过它们进一步发现人类信息的处理过程。(3)虚拟现实虚拟现实是综合利用计算机三维图形技术、仿真技术、传感技术、显示技术、网络技术等合成的一种虚拟环境,这种环境是计算机生成的一个以视觉感受为主,也包括视觉、触觉的综合可感知的人工环境,是计算机与用
10、户之间的一种更为理想化的人机界面形式。(4)计算机视觉计算机视觉是研究怎样利用计算机实现人的视觉功能(包括对客观世界的三维场景的感知、识别和理解)的一个分支领域。对计算机视觉的理解和实践取决于计算学科中的核心概念,但也和物理、数学和心理学等密切相关。下面,给出图形学和可视化计算领域的基本问题。(1)如何选择支撑图像产生以及信息浏览的更好模型?(2)如何提取科学的(计算和医学)和更抽象的相关数据?(3)图像形成过程的解释和分析方法。6人机交互(Human-Computer Interaction,HC)人机交互的重点在于理解作为交互式对象的人的行为,知道怎样使用以人为中心的方法来开发和评价交互式
11、软件系统。单元HC1(人机交互基础)和单元HC2(建立简单的图形用户界面)是最基本的内容,需要学生掌握。剩余单元的内容可作为高年级的选修课程。下面,给出人机交互领域的基本问题。(1)表示物体和自动产生供阅览的照片的有效方法是什么?(2)接收输入和给出输出的有效方法是什么?(3)怎样才能减小产生误解和由此产生的人为错误的风险?(4)图表和其他工具怎样才能通过存储在数据集中的信息去理解物理现象?7信息保障与安全(Information Assurance and Security,IAS)信息保障与安全是CS2013划分的一个新领域,是世界公认的信息技术与计算的重要依靠,也是信息控制与处理过程的集
12、合,该集合即包括技术方面的内容也包括政策方面的内容,其目的在于通过保证其可用性、完整性、可认证性与机密性,用不可否认性来保护和定义信息和信息系统。保障包括了认证,使得当前的与过去的过程和数据都是有效的,保障与安全的共同作用使信息变得更加可靠和完整。下面,给出信息保障与安全领域的基本问题。(1)如何定义信息的不可否认性?(2)如何保证信息的可用性、完整性、可认证性与机密性?(3)安全规则与监管的有效策略是什么,如何评估?8信息管理(Information Management,IM)信息管理几乎在所有使用计算机的场合都发挥着重要的作用。它包括信息获取、信息数字化、信息表示、组织、转化和信息的表现
13、;有效地访问和更新存储信息的算法、数据建模和数据抽象以及物理文件的存储技术、共享数据的信息安全、隐私性、完备性和保护。要求学生能够建立概念和物理上的数据模型,对于给定的问题,能够选择和实现合适的信息管理解决方案。下面,给出信息管理领域的基本问题。(1)使用什么样的建模概念来表示数据元素及其相互关系?(2)怎样把基本操作(如存储、定位、匹配和恢复)组合成有效的事务?(3)这些事务怎样才能与用户有效地进行交互?(4)高级查询如何翻译成高质量的程序?(5)哪种机器体系结构能够进行有效的恢复和更新?(6)怎样保护数据,以避免非授权访问、泄露和破坏?(7)如何保护大型的数据库,以避免由于同时更新引起的不
14、一致性?(8)当数据分布在许多机器上时如何保护数据、保证性能?(9)文本如何索引和分类才能够进行有效的恢复?9智能系统(Intelligent Systems,IS)人工智能关注的是自主系统的设计和分析。这些系统有些是软件系统,而有些系统还配有传感器和传送器(如机器人或航天器),一个智能系统要有感知环境、执行既定任务以及与其他代理进行交流的能力。这些能力包括计算机视觉、规划和动作、机器人学、多代理系统、语音识别和自然语言理解等。智能系统依赖于一整套关于问题求解、搜索算法以及机器学习技术的专门知识表示机制和推理机制。人工智能为求解其他方法难以解决或者不太现实的问题提供了一些技术,包括启发式搜索和
15、规划算法、知识表示的形式化机制、机器学习技术以及语言理解、计算机视觉、机器人学等领域中所包含的感知和动作问题的方法。要求学生能够针对特定的问题选择合适的方法解决问题。下面,给出智能系统领域的基本问题。(1)基本的行为模型是什么?如何建造模拟它们的机器?(2)规则评估、推理、演绎和模式计算在多大程度上描述了智能?(3)通过这些方法模拟行为的机器的最终性能如何?(4)传感数据如何编码才使得相似的模式有相似的代码?(5)电机编码如何与传感编码相关联?(6)怎样学习系统的体系结构?(7)这些系统是如何表示它们对这个世界的理解的?10网络与通信(Networking and Communication,
16、NC)计算机与通信网络的发展,尤其是基于TCP/IP的网络的发展,使得网络技术在计算学科中变得更为重要。在CC2001报告中,该领域包括有计算机通信网络的基本概念和协议、多媒体系统、Web标准和技术、网络安全、移动计算以及分布式系统等传统网络的内容。CS2013认为,这些内容已得到发展和分化,因此对该领域进行了重组,将主要的关注放在该领域的网络与通信方面,将网站应用和移动设备开发的内容放在基于平台的开发(PBD)领域中,将安全部分的内容放入新的信息保障和安全(IAS)领域中。该领域的知识单元包括:网络应用;可靠数据传输;路由与转发;局域网;资源分配;移动网络;社会网络等。CC2001特别强调了
17、在该领域进行实践教学的重要性,认为实践教学能够大大地加强学生对该领域基本概念的理解。在CC2001的基础上,CS2013继续强调了该领域的重要性,报告认为,现在许多计算的应用脱离网络是无法继续工作的,这些应用对底层网络的依赖在未来将会得到加强,报告认为,网络的设计依赖实际的约束条件,要求通过使用网络工具、编写网络软件等方式,向学生展示这些实际的约束条件。网络课程有很多不同的组织方式。一些教育者倾向于“自顶向下”的教学方式:课程起始于应用程序,然后讲授可靠数据传输、路由和转发等。另外一些倾向于“自底向上”的教学方式:课程起始于网络体系底层,然后讲授数据传输、应用层等概念。无论那种方式,实验都是该
18、领域课程教学中最重要的内容,包括数据收集和综合、建模、源代码级的协议分析、网络数据包的监控、软件构造以及对备选设计模型的评估等。下面,给出网络与通信领域的基本问题。(1)网络中的数据如何进行交换?(2)网络性能如何评估?(3)网络协议如何验证?(4)网络安全如何保证?(5)网络构建与操作背后的网络行为和关键原则是什么?11操作系统(Operating Systems,OS)操作系统是对计算机硬件行为的抽象,程序员用它来对硬件进行控制。操作系统还负责管理计算机用户间的共享资源(如文件等)。本领域的主题解释了影响现代操作系统设计的各种问题。相应的课程还应该包括一个实验部分。近年来,操作系统及其抽象
19、机制相对于应用软件变得更加复杂,这就要求在系统学习操作系统内部算法实现和数据结构之前,对操作系统有深入的理解。因此操作系统的课程不仅要强调操作系统的使用(外部特性),还要强调它的设计和实现(内部特性)。操作系统中的许多思想在其他计算机科学领域也有相当广泛的应用,例如并行程序设计、算法设计与实现、虚拟环境的创建、网络高速缓存、安全系统的创建、网络管理等。下面,给出操作系统领域的基本问题。(1)在计算机系统操作的每一个级别上,可见的对象和允许进行的操作各是什么?(2)对于每一类资源,能够对其进行有效利用的最小操作集是什么?(3)如何组织接口才能使得用户只需与抽象的资源而非硬件的物理细节打交道?(4
20、)作业调度、内存管理、通信、软件资源访问、并发任务间的通信以及可靠性与安全的控制策略是什么?(5)通过少数构造规则的重复使用进行系统功能扩展的原则是什么?12基于平台的开发(Platform-based Development,PBD)该部分的内容不构成严格意义上的学科分支,它的划分是为了教学上的需要,将软件开发基础(SDF)分支领域中基于指定平台的内容抽取出来,对它进行强调而划分的,其基本的知识单元已在第一章中列出。它的基本问题与软件开发基础分支领域的基本问题相同,本书不再重新给出。13并行与分布式计算(Parallel and Distributed Computing,PD)CC2001
21、将并行性的内容作为选修内容分别穿插在不同的学科领域。CS2013考虑到并行与分布式计算越来越突出的作用,划分了这个新的领域。该领域包括程序设计模板,编程语言,算法,性能,体系结构和分布式系统等内容。并行和分布式计算建立在学科许多分支领域的基础上,包括对基础系统概念的理解,如并发和并行执行、一致性状态、内存操作和延迟。由于进程间的通信和协作根植于消息传递和共享内存模型的计算中,也存在于算法之中,如原子性、一致性以及条件等。因此,要想在实践中提高对该领域的把握,需要先对并发算法、问题分解策略、系统架构、实施策略与性能分析等内容有一个较深入的认知。下面,给出并行和分布式计算领域的基本问题。(1)机器
22、的结构如何保证大量处理单元能够有效协同工作最终实现一个计算的并行?(2)任务如何划分到不同的处理器上执行?(3)并行算法与分布式算法的性能如何评价?(4)分布式计算如何组织才能使通过通信网连接在一起的自主计算机参加到一项特定的计算中,如何在计算的过程中保持网络协议、主机地址、带宽和其他使用资源的透明性?14程序设计语言(Programming Languages,PL)程序设计语言是程序员与计算机交流的主要工具。一个程序员不仅要至少掌握一种程序设计语言,更要了解各种程序设计语言的不同风格。在工作中,程序员会使用不同风格的语言,也会遇到许多不同的语言。为了迅速掌握一门新语言,程序员必须理解程序设
23、计语言的语义以及在不同的程序设计范式之间设计上的折中。为了理解程序设计语言实用的一面,还要求具有程序设计语言翻译和诸如存储分配等方面的基础知识。下面给出程序设计语言领域的基本问题。(1)语言(数据类型、操作、控制结构、引进新类型和操作的机制)表示的虚拟机的可能组织结构是什么?(2)语言如何定义机器?机器如何定义语言?(3)什么样的表示法(语义)可以有效地描述计算机应该做什么?15软件开发基础(Software Development Fundamentals,SDF)CS2013报告在CC2001的基础上,对原报告划分的程序设计基础(PF)领域进行了重组,将关注的内容进一步扩展到整个软件的开发
24、过程中,要求学生在大学一年级就系统地掌握软件开发的基本概念和技巧,包括算法的设计和简单分析、基本程序设计的概念、数据结构和基本的软件开发方法和工具等。CS2013报告认为,该领域课程的设计可以相当灵活,报告要求在基本的编程中只强调那些在所有编程范例都常见的基础概念。报告认为,可以综合程序设计语言,算法与复杂性,以及软件工程等多个领域的内容,选择一个或多个编程范例(例如面向对象编程、函数式编程或脚本编程)来说明这些概念。报告建议,将形式化的分析(例如大O、可计算性)与设计方法(如团队项目、软件生命周期)融入到系列课程中,以形成一个完整的、连贯一致的第一学年的系列课程。下面,给出软件开发基础领域的
25、基本问题。(1)对给定的问题,如何进行有效的描述并给出算法?(2)如何确定算法的复杂度?(3)如何正确选择数据结构?(4)如何进行设计、编码、测试和调试程序?16软件工程(Software Engineering,SE)软件工程是一门关于如何有效构建满足用户需求的软件系统所需的理论、知识和实践的学科。软件工程适应各种软件开发,它包含需求分析和规格、设计、构建、测试、运行和维护等软件系统生存周期的所有阶段。软件工程使用工程化的方法、过程、技术和度量标准。它使用的工具有管理软件开发的工具,软件产品的分析和建模、质量评估和控制工具,确保有条不紊且有控制实施软件进化和复用的工具。软件可由一个开发者或者一组开发者进行开发,他们需要选择最适合已知开发环境的工具和方法。质量、进度、成本等软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织品设计中的共享经济理念试题及答案
- 垃圾合同协议书
- 村庄保洁合同协议书
- 院子继承合同协议书
- 合同书股份协议书
- 水库合同协议书
- 供货协议书合同范本
- 雇佣送货司机合同协议书
- 图书代销合同协议书
- 储蓄合同协议书
- 走进重高-培优讲义-数学-八年级-上册-(浙教版)
- 初中物理竞赛练习题集(共14讲)含答案
- 2024年江苏省南京市联合体中考三模英语试题(解析版)
- 四年级数学脱式计算练习题100道
- 创新与发明-按图索骥、循章创新智慧树知到期末考试答案章节答案2024年广州大学
- 《24时计时法》素养课件
- 2024年山东高考化学真题试题(原卷版+含解析)
- 3.1.4 禁止编入列车的机车车辆课件讲解
- 30题仪表工程师岗位常见面试问题含HR问题考察点及参考回答
- 电力安全工作规程发电厂和变电站电气部分
- 数字贸易学 课件 第5章 数字服务贸易
评论
0/150
提交评论