计算机科学究竟应该学些什么--美国CC2001关于计算机科学的教学大纲 科学研究 lib 发表于 2005-6-8 11:03:36 因为感" name="description" />

CC2001关于计算机科学的教学大纲

发表于:2007-07-04来源:作者:点击数: 标签:
美国 CC 2001关于计算机科学的教学大纲 java script:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">计算机科学究竟应该学些什么--美国CC2001关于计算机科学的教学大纲 科学研究 lib 发表于 2005-6-8 11:03:36 因为感
美国CC2001关于计算机科学的教学大纲

javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">计算机科学究竟应该学些什么--美国CC2001关于计算机科学的教学大纲
科学研究

lib 发表于 2005-6-8 11:03:36

因为感觉到人们对计算机科学有着太多的误区,在这里给出美国CC2001(关于计算机科学的教学大纲),看看计算机科学究竟应该学些什么.
  CC2001把计算学科分成14个主要领域:
  
  
  一.DS. Discrete Structures
  
  DS1. Functions, relations, and sets
  DS2. Basic logic
  DS3. Proof techniques
  DS4. Basics of counting
  DS5. Graphs and trees
  DS6. Discrete probability
  
  介绍:
  
  主要内容包括集合论,数理逻辑,近世代数,图论以及组合数学等.
  
  该领域与计算学科各主领域有着紧密的联系,CC2001为了强调它的重要性,特意将它列为计算学科
  的第一个主领域.该主领域以"抽象"和"理论"两个学科形态出现在计算学科中,它为计算学科各分
  支领域解决其基本问题提供了强有力的数学工具.
  
  
  二.PF. Programming Fundamentals
  
  PF1. Fundamental programming constructs
  PF2. Algorithms and problem-solving
  PF3. Object-oriented programming
  PF4. Fundamental data structures
  PF5. Recursion
  PF6. Event-driven and concurrent programming
  PF7. Using APIs
  
  介绍:
  
  主要内容包括程序设计结构,算法,问题求解和数据结构等.
  它考虑的是如何对问题进行抽象.它属于学科抽象形态方面的内容,
  并为计算学科各分支领域基本问题的感性认识(抽象)提供方法.
  
  基本问题主要包括:
  1.对给定的问题如何进行有效的描述并给出算法?
  2.如何正确选择数据结构?
  3.如何进行设计,编码,测试和调试程序?
  
  三.AL. Algorithms and Complexity
  
  AL1. Basic algorithmic analysis
  AL2. Algorithmic strategies
  AL3. Fundamental computing algorithms
  AL4. Distributed algorithms
  AL5. Basic computability theory
  AL6. The complexity classes P and NP
  AL7. Automata theory
  AL8. Advanced algorithmic analysis
  AL9. Cryptographic algorithms
  AL10. Geometric algorithms
  AL11. Parallel algorithms
  
  
  介绍:
  
  主要内容包括算法的复杂度分析,典型的算法策略,分布式算法,并行算法,可计算理论,
  P类和NP类问题,自动机理论,密码算法以及几何算法等.
  
  1.抽象形态的主要内容:包括算法分析,算法策略(如蛮干算法,贪婪算法,启发式算法,分治法等),
   并行和分布式算法等.
  2.理论形态的主要内容:包括可计算性理论,计算复杂性理论,P和NP类问题,并行计算理论,密码学等.
  3.设计形态的主要内容:包括对重要问题类的算法的选择,实现和测试,对通用算法的实现和测试,
   (如哈希表,图和树的实现与测试),对并行和分布式算法的实现和测试,对组合问题启发式算法的
   大量实验测试,密码协议等.
  
  基本问题主要包括:
  1.对于给定的问题类,最好的算法是什么?要求的存储空间和计算时间有多少?空间和时间如何折衷?
  2.访问数据的最好方法是什么?
  3.算法最好和最坏的情况是什么?
  4.算法的平均性能如何?
  5.算法的通用性如何?
  
  
  四.PL. Programming Languages
  
  PL1. Overview of programming languages
  PL2. Fundamental issues in language design
  PL3. Virtual machines
  PL4. Introduction to language translation
  PL5. Language translation systems
  PL6. Type systems
  PL7. Models of execution control
  PL8. Declaration, modularity, and storage management
  PL9. Programming language semantics
  PL10. Programming paradigms
  PL11. Language-based constructs for parallelism
  
  介绍:
  
  主要内容包括程序设计模式,虚拟机,类型系统,执行控制模型,语言翻译系统,程序设计语言的语义学,
  基于语言的并行构件等.
  
  抽象形态的主要内容:包括基于语法和动态语义模型的语言分类(如静态型,动态型,函数式,
  过程式,面向对象的,逻辑,规格说明,报文传递和数据流),按照目标应用领域的语言分类(如商业数据处理,
  仿真,表处理和图形),程序结构的主要语法和语义模型的分类(如过程分层,函数合成,抽象数据类型和
  通信的并行处理),语言的每一种主要类型的抽象实现模型,词法分析,编译,解释和代码优化的方法,
  词法分析器,扫描器,编译器组件和编译器的自动生成方法等.
  
  理论形态的主要内容:包括形式语言和自动机,图灵机(过程式语言的基础),POST系统(字符串处理语言的基础),
  lamda-演算(函数式语言的基础),形式语义学,谓词逻辑,时态逻辑,近世代数等.
  
  设计形态的主要内容:包括把一个特殊的抽象机器(语法)和语义结合在一起形成的统一的可实现的整体特定语言
  (如过程式的(COBOL,FORTURN,ALGOL,Pascal,Ada,C),函数式的(LISP),数据流的(SISAL,VAL),面向对象的(Smalltalk,CLU,C++),逻辑的(Prolog),字符串(SNOBOL)和并发(CSP,ConcurrentPascal,Modula 2)),特定类型
  语言的指定实现方法,程序设计环境,词法分析器和扫描器的产生器(如YACC,LEX),编译器产生器,语法和语义
  检查,成型,调试和追踪程序,程序设计语言方法在文件处理方面的应用(如制表,图,化学公式),统计处理等.
  
  基本问题主要包括:
  1.语言(数据类型,操作,控制结构,引进新类型和操作的机制)表示的虚拟机的可能组织结构是什么?
  2.语言如何定义机器?机器如何定义语言?
  3.什么样的表示法(语义)可以有效地用于描述计算机应该做什么?
  
  五.AR. Architecture and Organization
  
  AR1. Digital logic and digital systems
  AR2. Machine level representation of data
  AR3. Assembly level machine organization
  AR4. Memory system organization and architecture
  AR5. Interfacing and communication
  AR6. Functional organization
  AR7. Multiprocessing and alternative architectures
  AR8. Performance enhancements
  AR9. Architecture for networks and distributed systems
  
  介绍:
  
  主要内容包括数字逻辑,数据的机器表示,汇编级机器组织,存储技术,接口和通信,
  多道处理和预备体系结构,性能优化,网络和分布式系统的体系结构等.
  
  抽象形态的主要内容:包括布尔代数模型,基本组件合成系统的通用方法,电路模型
  和在有限领域内计算算术函数的有限状态机,数据路径和控制结构模型,不同的模型
  和工作负载的优化指令集,硬件可靠性(如冗余,错误检测,恢复与测试),VLSI装置设计
  中的空间,时间和组织的折衷,不同的计算模型的机器组织(如时序的,数据流,表处理,
  阵列处理,向量处理和报文传递),分级设计的确定,即系统级,程序级,指令级,寄存器级
  和门级等.
  
  理论形态的主要内容:包括布尔代数,开关理论,编码理论,有限自动机理论等.
  
  设计形态的主要内容:包括快速计算的硬件单元(如算术功能单元,高速缓冲存储器),
  冯·诺依曼机(单指令顺序存储程序式计算机),RISC和CISC的实现,存储和记录信息,
  以及检测与纠正错误的有效方法,对差错处理的具体方法(如恢复,诊断,重构和备份过程),
  为VLSI电路设计的计算机辅助设计(CAD)系统和逻辑模拟,故障诊断,硅编译器等,在不同
  计算模型上的机器实现(如数据流,树,LISP,超立方结构,向量和多处理器),超级计算机等.
  
  基本问题主要包括:
  1.实现处理器内存和机内通信的方法是什么?
  2.如何设计和控制大型计算系统,而且使其令人相信,尽管存在错误和失败,但它仍然是按照我们的意图工作的?
  3.哪种类型的体系结构能够有效地包含许多在一个计算中能够并行工作的处理元素?
  4.如何度量性能?
  
  六.OS. Operating Systems
  
  OS1. Overview of operating systems
  OS2. Operating system principles
  OS3. Concurrency
  OS4. Scheduling and dispatch
  OS5. Memory management
  OS6. Device management
  OS7. Security and protection
  OS8. File systems
  OS9. Real-time and embedded systems
  OS10. Fault tolerance
  OS11. System performance evaluation
  OS12. Scripting
  
  介绍:
  
  主要内容包括操作系统的逻辑结构,并发处理,资源分配与调度,存储管理,设备管理,文件系统等 .
  
  抽象形态的主要内容:包括不考虑物理细节(如面向进程而不是处理器,面向文件而不是磁盘)而对
  同一类资源上进行操作的抽象原则,用户接口可以察觉的对象与内部计算机结构的绑定(Binding),
  重要的子问题模型(如进程管理,内存管理,作业调度,两级存储管理,和性能分析),安全计算模型
  (如访问控制和验证)等.
  
  理论形态的主要内容:包括并发理论,调度理论(特别是处理机调度),程序行为和存储管理的理论,
  (如存储分配的优化策略),性能模型化与分析等
  
  设计形态的主要内容:包括分时系统,自动存储分配器,多级调度器,内存管理器,分层文件系统和
  其他作为商业系统基础的重要系统组件,构建操作系统(如UNIX,DOS,Windows)的技术,建立实用程
  序库的技术(如编辑器,文件形式程序,编译器,连接器和设备驱动器),文件和文件系统等内容.
  
  
  基本问题主要包括:
  1.在计算机系统操作的每一个级别上,可见的对象和允许进行的操作各是什么?
  2.对于每一类资源,能够对其进行有效利用的最小操作集是什么?
  3.如何组织接口才能使得用户只需与抽象的资源而非硬件的物理细节打交道?
  4.作业调度,内存管理,通信,软件资源访问,并发任务间的通信以及可靠性与安全的控制策略是什么?
  5.通过少数构造规则的重复使用进行系统功能扩展的原则是什么?
  
  七.NC. Net-Centric Computing
  
  NC1. Introduction to net-centric computing
  NC2. Communication and networking
  NC3. Network security
  NC4. The web as an example of client-server computing
  NC5. Building web applications
  NC6. Network management
  NC7. Compression and decompression
  NC8. Multimedia data technologies
  NC9. Wireless and mobile computing
  
  介绍:
  
  主要内容包括计算机网络的体系结构,网络安全,网络管理,无线和移动计算以及多媒体数据技术等.
  
  抽象形态的主要内容:包括分布式计算模型(如C/S模式,合作时序进程,消息传递和远方过程调用),
  组网(分层协议.命名.远程资源利用,帮助服务和局域网协议),网络安全模型(如通信,访问控制和验证)等.
  
  理论形态的主要内容:包括数据通信理论,排队理论,密码学,协议的形式化验证等.
  
  设计形态的主要内容:包括排队网络建模和实际系统性能评估的模拟程序包,网络体系结构
  (如以太网.FDDI.令牌网),包含在TCP/IP中的协议技术,虚拟电路协议,Internet,实时会议等.
  
  基本问题主要包括:
  1.网络中的数据如何进行交换?
  2.网络协议如何验证?
  3.如何保证网络的安全?
  4.分布式计算的性能如何评价?
  5.分布式计算如何组织才能够使通过通信网连接在一起的自主计算机参加到一项计算中,而网络协议,
   主机地址,带宽和资源则具有透明性?
  
  
  八.HC. Human-Computer Interaction
  
  HC1. Foundations of human-computer interaction
  HC2. Human-centered software evaluation
  HC3. Human-centered software development
  HC4. Graphical user-interface design
  HC5. Graphical user-interface programming
  HC6. HCI aspects of multimedia systems
  HC7. HCI aspects of collaboration and communication
  
  介绍:
  
  主要内容包括以人为中心的软件开发和评价,图形用户接口设计,多媒体系统的人机接口等.
  
  抽象形态的主要内容:包括人的表现模型(如理解,运动,认知,文件,通信和组织),原型化,
  交互对象的描述,人机通信(含减少人为错误和提高人的生产力的交互模式心理学研究)等.
  
  理论形态的主要内容:包括认知心理学,社会交互科学等.
  
  设计形态的主要内容:交互设备(如键盘,语音识别器),有关人机交互的常用子程序库,
  图形专用语言,原形工具,用户接口的主要形式(如子程序库,专用语言和交互命令),
  交互技术(如选择,定位,定向,拖动等技术),图形拾取技术,以"人为中心"的人机交互软件的评价标准等.
  
  基本问题主要包括:
  1.表示物体和自动产生供阅览的照片的有效方法是什么?
  2.接受输入和给出输出的有效方法是什么?
  3.怎样才能减小产生误解和由此产生的人为错误的风险?
  4.图表和其他工具怎样才能通过存储在数据集中的信息去理解物理现象?
  
  八.GV. Graphics and Visual Computing
  
  GV1. Fundamental techniques in graphics
  GV2. Graphic systems
  GV3. Graphic communication
  GV4. Geometric modeling
  GV5. Basic rendering
  GV6. Advanced rendering
  GV7. Advanced techniques
  GV8. Computer animation
  GV9. Visualization
  GV10. Virtual reality
  GV11. Computer vision
  
  介绍:
  
  主要内容包括计算机图形学,可视化,虚拟现实,计算机视觉等4个学科子领域的研究内容.
  
  抽象形态的主要内容:包括显示图像的算法,计算机辅助设计(CAD)模型,实体对象的计算机表示,
  图像处理和加强的方法.
  
  理论形态的主要内容:包括二维和高维几何(包括解析,投影,仿射和计算几何),颜色理论,认知心理学,
  傅立叶分析,线性代数,图论等
  
  设计形态的主要内容:包括不同的图形设备上图形算法的实现,不断增多的模型和现象的实验性图形算法
  的设计与实现,在显示中彩色图的恰当使用,在显示器和硬拷贝设备上彩色的精确再现,图形标准图形语言
  和特殊的图形包,不同用户接口技术的实现(含位图设备上的直接操作和字符设备的屏幕技术),用于不同的
  系统和机器之间信息转换的各种标准文件互换格式的实现,CAD系统,图像增强系统等.
  
  基本问题主要包括:
  1.支撑图像产生以及信息浏览的更好模型?
  2.如何提取科学的(计算和医学)和更抽象的相关数据?
  3.图像形成过程的解释和分析方法?
  
  十.IS. Intelligent Systems
  
  IS1. Fundamental issues in intelligent systems
  IS2. Search and constraint satisfaction
  IS3. Knowledge representation and reasoning
  IS4. Advanced search
  IS5. Advanced knowledge representation and reasoning
  IS6. Agents
  IS7. Natural language processing
  IS8. Machine learning and neural networks
  IS9. AI planning systems
  IS10. Robotics
  
  介绍:
  
  主要内容包括约束可满足性问题,知识表示和推理,Agent,自然语言处理,机器学习和神经网络,
  人工智能规划系统和机器人学等.
  
  抽象形态的主要内容:包括知识表示(如规则,框架和逻辑)以及处理知识的方法(如演绎,推理),
  自然语言理解和自然语言表示的模型(包括音素表示和机器翻译),语音识别与合成,从文本到
  语音的翻译,推理与学习模型(如不确定,非单调逻辑,Bayesian推理),启发式搜索方法,分支界
  限法,控制搜索,模仿生物系统的机器体系结构(如神经网络),人类的记忆模型以及自动学习和
  机器人系统的其他元素等.
  
  理论形态的主要内容:包括逻辑(如单调,非单调和模糊逻辑),概念依赖性,认知,自然语言理解
  的语法和语义模型,机器人动作和机器人使用的外部世界模型的运动学和力学原理,以及相关支
  持领域(如结构力学,图论,形式语法,语言学哲学与心理学)等.
  
  设计形态的主要内容:包括逻辑程序设计软件系统的设计技巧,定理证明,规则评估,在小范围领
  域中使用专家系统的技术,专家系统外壳程序,逻辑程序设计的实现(如PROLOG),自然语言理解
  系统,神经网络的实现,国际象棋和其他策略性游戏的程序,语音合成器,识别器,机器人等.
  
  基本问题主要有:
  1.基本的行为模型是什么?如何建造模拟它们的机器?
  2.规则评估,推理,演绎和模式计算在多大程度上描述了智能?
  3.通过这些方法模拟行为的机器的最终性能如何?
  4.传感数据如何编码才使得相似的模式有相似的代码?
  5.电机编码如何与传感编码相关联?
  6.学习系统的体系结构怎样?
  7.这些系统是如何表示它们对这个世界的理解的?
  
  十一.IM. Information Management
  
  IM1. Information models and systems
  IM2. Database systems
  IM3. Data modeling
  IM4. Relational databases
  IM5. Database query languages
  IM6. Relational database design
  IM7. Transaction processing
  IM8. Distributed databases
  IM9. Physical database design
  IM10. Data mining
  IM11. Information storage and retrieval
  IM12. Hypertext and hypermedia
  IM13. Multimedia information and systems
  IM14. Digital libraries
  
  介绍:
  
  主要内容包括信息模型与信息系统,数据库系统,数据建模,关系数据库,数据库查询语言,
  关系数据库设计,事务处理,分布式数据库,数据挖掘,信息存储与检索,超文本和超媒体,
  多媒体信息与多媒体系统,数字图书馆等.
  
  抽象形态的主要内容:包括表示数据的逻辑结构和数据元素之间关系的模型(如E-R模型,
  关系模型,面向对象的模型),为快速检索的文件表示(如索引),保证更新时数据库完整性
  (一致性)的方法,防止非授权泄露或更改数据的方法,对不同类信息检索系统和数据库(如
  超文本,文本,空间的,图像,规则集)进行查询的语言,允许文档在多个层次上包含文本,视频,
  图像和声音的模型(如超文本),人的因素和接口问题等 .
  
  理论形态的主要内容:包括关系代数,关系演算,数据依赖理论,并发理论,统计推理,排序与搜索,
  性能分析以及支持理论的密码学.
  
  设计形态的主要内容:包括关系,层次,网络,分布式和并行数据库的设计技术,信息检索系统的设计技术,
  安全数据库系统的设计技术,超文本系统的设计技术,把大型数据库映射到磁盘存储器的技术,
  把大型的只读数据库映射到光存储介质上的技术等.
  
  基本问题主要包括:
  1.使用什么样的建模概念来表示数据元素及其相互关系?
  2.怎样把基本操作(如存储,定位,匹配和恢复)组合成有效的事务?
  3.这些事务怎样才能与用户有效地进行交互?
  4.高级查询如何翻译成高质量的程序?
  5.哪种机器体系结构能够进行有效的恢复和更新?
  6.怎样保护数据,以避免非授权访问,泄露和破坏?
  7.如何保护大型的数据库,以避免由于同时更新引起的不一致性?
  8.当数据分布在许多机器上时如何保护数据,保证性能?
  9.文本如何索引和分类才能够进行有效的恢复?
  
  十二.SE. Software Engineering
  
  SE1. Software processes
  SE2. Software requirements and specifications
  SE3. Software design
  SE4. Software validation
  SE5. Software evolution
  SE6. Software project management
  SE7. Software tools and environments
  SE8. Component-based computing
  SE9. Formal methods
  SE10. Software reliability
  SE11. Specialized systems development
  
  介绍:
  
  主要内容包括软件过程,软件需求与规格说明,软件设计,软件验证,软件演化,软件项目管理,
  软件开发工具与环境,基于构件的计算,形式化方法,软件可靠性,专用系统开发等.
  
  
  抽象形态的主要内容:包括规约方法(如谓词转换器,程序设计演算,抽象数据类型和Floyd-Hoare 公理化思想),
  方法学(如逐步求精法,模块化设计),程序开发自动化方法(如文本编辑器,面向语法的编辑器和屏幕编辑器),
  可靠计算的方法学(如容错,安全,可靠性,恢复,多路冗余),软件工具与程序设计环境,程序和系统的测度与评价,
  软件系统到特定机器的相匹配问题域,软件研制的生命周期模型等.
  
  理论形态的主要内容:包括程序验证与证明,时态逻辑,可靠性理论以及支持领域:谓词演算,公理语义学和认知心理学等.
  
  
  设计形态的主要内容:包括归约语言,配置管理系统,版本修改系统,面向语法的编辑器,行编辑器,屏幕编辑器和字处理系统,实际使用并受到支持的特定软件开发方法(如HDM,Dijkstra,Jockson,Mills和Yourdon倡导的方法),测试的过程与实践(如遍历,手工仿真,模块间接口的检查),质量保证与工程管理,程序开发和调试,成型,文本格式化和数据库操作的软件工具,安全计算系统的标准等级与确认过程的描述,用户接口设计,可靠容错的大型系统的设计方法,以"公众利益为中心的"软件从业人员认证体系.
  
  基本问题主要包括:
  
  1.程序和程序设计系统发展背后的原理是什么?
  2.如何证明一个程序或系统满足其规格说明?
  3.如何编写不忽略重要情况且能用于安全分析的规格说明?
  4.软件系统是如何历经不同的各代进行演化的?
  5.如何从可理解性和易修改性着手设计软件?
  
  十三.SP. Social and Professional Issues
  
  SP1. History of computing
  SP2. Social context of computing
  SP3. Methods and tools of analysis
  SP4. Professional and ethical responsibilities
  SP5. Risks and liabilities of computer-based systems
  SP6. Intellectual property
  SP7. Privacy and civil liberties
  SP8. Computer crime
  SP9. Economic issues in computing
  SP10. Philosophical frameworks
  
  
  介绍:
  
  主要内容包括计算的历史,计算的社会背景,分析方法和工具,专业和道德责任,基于计算机系统的风险与责任,
  知识产权,隐私与公民的自由,计算机犯罪,与计算有关的经济问题,哲学框架等.
  
  该主领域属于学科设计形态方面的内容.根据一般科学技术方法论的划分,该领域中的价值观,
  道德观属于设计形态中技术评估方面的内容.知识产权属于设计形态中技术保护方面的内容.
  而CC1991报告提到的美学问题则属于设计形态中技术美学方面的内容.
  
  基本问题主要包括:
  1.计算学科本身的文化,社会法律和道德的问题.
  2.有关计算的社会影响问题,以及如何评价可能的一些答案的问题.
  3.哲学问题.
  4.技术问题以及美学问题.
  
  十四.CN. Computational Science
  
  CN1. Numerical analysis
  CN2. Operations research
  CN3. Modeling and simulation
  CN4. High-performance computing
  
  介绍:
  
  主要内容包括数值分析,运筹学,模拟和仿真,高性能计算.
  
  抽象形态的主要内容:包括物理问题的数学模型(连续或离散)的形式化表示,连续问题的离散化技术,
  有限元模型等.
  
  理论形态的主要内容:数论,线性代数,数值分析,以及支持领域,包括微积分,实数分析,复数分析和代数等.
  
  设计形态的主要内容:用于线性代数的函数库与函数包,常微分方程,统计,
  非线性方程和优化的函数库与函数包,把有限元算法映射到特定结构上的方法等.
  
  基本问题主要包括:
  
  1.如何精确地以有限的离散过程近似表示连续和无限的离散过程?
  2.如何处理这种近似产生的错误?
  3.给定某一类方程在某精确度水平上能以多快的速度求解?
  4.如何实现方程的符号操作,如积分,微分以及到最小项的归约?
  5.如何把这些问题的答案包含到一个有效的,可靠的,高质量的数学软件包中?
  ==================================================
  其实计算机科学是非常博大精深的,随便找个领域都够你学一辈子啦.

原文转自:http://www.ltesting.net