发新话题
打印

[转载]CS(计算机科学)知识体

[转载]CS(计算机科学)知识体

信息来源:邪恶八进制信息安全团队(www.eviloctal.com

计算教程2001报告的这篇附录定义了计算机科学本科教学计划中可能讲授的知识领域。该分类方案的依据及其历史、结构和应用的其它细节包含在完整的任务组报告中。由于我们希望附录比完整的报告有更多的读者,所以任务组认为在每一篇附录中概述理解该推荐所必须的基本概念是重要的。在下面几节中我们列出了最重要的几个概念。

知识体的结构
计算机科学知识体分层组织成三个层次。最高一层是领域(area),代表一个特定的学科子领域。每个领域由一个两个字母的缩写词表示,比如OS代表操作系统,PL代表程序设计语言,领域之下又被分割成更小的单元(units),代表领域中单独的主题模块。每个单元都用一个领域名加一个数字后缀表示,比如OS3是关于并发的单元。各个单元由被细分成主题(topics),这是CS知识体层次结构的最底层。

离散结构(DS)
DS1. 函数,关系,集合[核心]
DS2. 基本逻辑[核心]
DS3. 证明技术[核心]
DS4. 计算基础[核心]
DS5. 图和树[核心]
DS6. 离散概率[核心]

DS1.函数、关系、集合论[核心]
主题:
函数 (满射、入射、逆、复合)
关系 (自反、对称、传递、等价关系)
集合 (文氏图、补集、笛卡尔积、幂集)
鸽洞原理
基数和可数性

学习目标:
1.  举例说明基本术语:函数、关系和集合。
2.  执行与函数、关系和集合相关的运算。
3.  把实例与适当的集合、函数或关系模型相联系,并在上下文中解释相关的操作和术语。
4.  解释基本的计算原理,包括对角化和鸽洞原理的应用。

DS2. 基本逻辑 (核心)
主题:
命题逻辑
逻辑联结词
真值表
范式(合取与析取范式)
永真性
谓词逻辑
全称量词和存在量词
假言推理和否定后件推理(modus tallens)
谓词逻辑的局限性

学习目标:
1.  应用符号命题逻辑和谓词逻辑的形式化方法。
2.  描述如何使用符号逻辑的形式化工具为算法和真实情形建模。
3.  使用形式逻辑证明和逻辑推理来解决诸如迷宫等问题。
4.  描述谓词逻辑的重要性和局限性。

DS3. 证明技术 (核心)
主题:
蕴含、逆、补、逆否、否定、矛盾
形式证明的结构
直接证法
反例证法
通过逆否命题证明
归谬证法
数学归纳
完全归纳
递归数学定义
良序

学习目标:
1.  概述本单元中给出的每一种证明技术的基本结构并给出相应的实例。
2.  讨论对于指定的问题哪种类型的证明是最优的。
3.  把数学归纳思想与递归和递归定义的结构联系起来。
4.  说明数学归纳和完全归纳的差别并举例说明如何合理地使用它们。

DS4.计算基础 (核心)
主题:
计数理论(counting arguments)
——和积规则(sum and production rules)
——包含排斥原理
——算术和几何级数
——斐波纳契(Fibonacci)数列
鸽洞原理
排列和组合
——基本定义
——Pascal 恒等式
——二项式定理
求解递推关系式
——常见实例
——Master定理

学习目标:
1.  计算一个集合的排列和组合,并解释在特定应用环境中的意义。
2.  阐述Master定理的定义。
3.  计算各种不同的递推式。
4.  分析问题,产生相应的递推式或识别重要的计算问题

DS5. 图和树 (核心)
主题:

无向图
有向图
生成树
遍历策略

学习目标:
1.  通过例子说明图论的基本术语,各自的性质和特殊情况。
2.  说明树和图的不同遍历方法。
3.  使用图和树为计算机科学中的问题建模。
4.  把图和树与数据结构、算法和计算相联系。

DS6.离散概率[核心]  
主题:
有限概率空间、概率的度量、事件
条件概率、独立性、贝叶斯定律
整型随机变量、期望

学习目标:
1.  对基本问题,如机会游戏(games of chance)计算事件概率和随机变量的期望。
2.  区别独立事件和非独立事件。
3.  对非独立事件应用二项式定理,对独立事件应用Bayes定理。
4.  应用概率工具如Monte Carlo方法、算法的平均情况分析和散列法来解决问题。

程序设计基础(PF)
PF1.基本程序设计结构[核心]
PF2.算法和问题求解[核心]
PF3. 基本的数据结构[核心]
PF4. 递归[核心]
PF5. 事件驱动的程序设计[核心]

PF1.基本程序设计结构[核心]
主题:
高级语言的基本语法和语义
变量、类型、表达式和赋值
简单I/O
条件和循环控制结构
函数和参数传递
结构化分解

学习目标:
1.   分析并解释具有本单元所涉及基本程序结构的简单程序的行为。
2.  修改和扩展使用了标准条件和循环控制结构和函数的小程序。
3.   设计、实现、测试和调试一个使用下面每一种基本程序设计结构的程序: 基本计算、简单的输入/输出、标准的条件和循环结构以及函数定义。
4.  对于指定的程序设计任务,选择适当的条件和循环结构。
5.  运用结构化(功能)分解技术把一个程序分解成一些小的程序块。
6.  描述参数传递的机制。

PF2.算法和问题求解[核心]
主题:
问题求解策略
算法在问题求解过程中的作用
算法的实现策略
调试策略
算法的概念和性质

学习目标:
1.  讨论算法在问题求解过程中的重要性。
2.  指出好的算法所必备的性质。
3.  开发求解简单问题的算法。
4.  使用伪代码或程序设计语言实现、测试和调试求解简单问题的算法。
5.  描述调试中的实用策略。

PF3.基本的数据结构[核心]
主题:
原语类型
数组
记录
字符串和字符串处理
数据在内存中的表示
静态、栈和堆分配
运行时间存储管理
指针和引用
链接结构
栈、队列和哈希表的实现策略
图和树的实现策略
选择正确数据结构的策略

学习目标:
1.  讨论简单(primitive)数据类型和内置数据结构的表示和使用。
2.  描述主题列表中的数据结构在内存中是如何分配和使用的。
3.  描述主题列表中各数据结构常见的应用。
4.  用高级语言实现用户自定义的数据结构。
5.  比较数据结构的不同实现的性能。
6.  编写使用以下各种数据结构的程序:数组、记录、字符串、链表、栈、队列和哈希表。
7.  比较并说明动态和静态数据结构实现的代价和收益的不同。
8.  为指定问题的建模选择适当的数据结构。

PF4.递归[核心]
主题:
递归的概念
递归数学函数
简单的递归过程
分而治之策略
递归回溯
递归的实现

学习目标:
1.  描述递归的概念并举例说明其应用。
2.  鉴别递归定义问题的基本情况和一般情况。
3.  比较基本问题如阶乘的迭代和递归求解方案。
4.  描述分而治之方法的方法。
5.  实现、测试和调试简单的递归函数和过程。
6.  描述怎么能够使用栈实现递归。
7.  讨论适合用回溯方法求解的问题。
8.  对于一个问题确定什么时候用递归方法求解是合适的。

PF5.事件驱动程序设计[核心]
主题:
事件处理方法
事件传播
异常处理

学习目标:
1.  解释事件驱动程序设计和命令行程序设计的不同。
2.  设计、编码、测试和调试简单的响应用户事件的事件驱动程序。
3. 编写响应执行期间异常情况的代码。

算法和复杂性(AL)
AL1.基本算法分析[核心]
AL2.算法策略[核心]
AL3.基本的计算算法[核心]
AL4.分布式算法[核心]
AL5.基本可计算行[核心]
AL6. P和NP复杂类 [选修]
AL7.自动机理论[选修]
AL8.高级算法的分析[选修]
AL9.密码算法[选修]
AL10.几何算法[选修]
AL11.并行算法[选修]

AL1.基本算法的分析[核心]
主题:
复杂度的上界和平均值近似分析
区分最好、平均和最坏情况下行为的不同
大 “O”、小 “o”、 、和 表示法
标准复杂类
性能的实验测量
算法的时间和空间折衷
使用循环关系分析递归算法

学习目标:
1.   解释如何使用大“O”、 、和 描述算法的工作量。
2.  使用大“O”、 、和 表示法给出算法时间和空间复杂度的近似上界、下界和精确界限。
3.  确定简单算法的时间复杂度。
4.  推导描述递归定义算法时间复杂度的递归关系式。
5.  解决简单的递归关系式。

AL2.算法策略[核心]
主题:
蛮力算法
贪婪算法
分而治之
回溯
分支界限
启发式
模式匹配和字符串/文本算法
数值逼近算法

学习目标:
1.  明蛮力算法的缺点。
2.  对下面的每一种算法(蛮力、贪婪、分而治之、回溯、分支有界和启发),举出一个人们的日常行为实例解释该基本概念。
3.  实现一个贪婪算法,求解适当的问题。
4.  实现一个分而治之算法,求解适当的问题。
5.  使用回溯解决问题,比如迷宫。
6.  描述各种不同的启发式问题求解方法。
7.  使用模式匹配分析子串。
8.  使用数值逼近解决数学问题,如寻找多项式的根。

AL3.基本的计算算法[核心]
主题:
简单的数值处理算法
顺序和二分查找算法
二次排序算法 (选择, 插入)
O(N log N) 排序算法 (快速排序, 堆分类排序, 归并排序)
哈希表, 包括避免冲突的策略
二分查找树
图的表示 (邻接表,邻接矩阵)
深度和广度优先遍历
最短路径算法 (Dijkstra算法和Floyd算法)
传递闭包 (Floyd算法)
最小生成树 (Prim算法和Kruskal算法)
拓扑排序

学习目标:
1.  实现一个最常见的二次排序算法和O(N log N) 排序算法。
2.  为应用设计并实现一个适当的哈希函数。
3.  设计并实现一个哈希表的冲突消解算法。
4.  讨论主要的排序、搜索和哈希算法的计算效率。
5.  讨论除计算效率之外影响算法选择的因素,如程序设计时间、可维护性以及在输入数据中使用某应用特定的模式。
6.  使用基本的图算法解决问题,这些算法包括:深度和广度优先搜索算法、单源(single-source)和每一对顶点间的(all-pairs)最短路径算法、传递闭包算法、拓扑排序算法和至少一种最小生成树算法。
7.  具有以下能力:评价算法、从可能的选项中选择可能的算法、给出做出选择的原因并在某程序设计环境中实现该算法。

AL4.分布式算法[核心]
主题:
一致性与选择
终结检测
容错
稳定性

学习目标:
1.  解释分布式模式(paradigm)。
2.  解释一个简单的分布式算法。
3.  确定何时使用一致性与选择算法。
2.区别逻辑和物理时钟。
3.描述事件的相对次序。

AL5.基本可计算性理论[核心]
主题:
有限状态机
上下文无关语法
易处理和不易处理的问题
不可计算函数
停机问题
不可计算性的意义

学习目标:
1.  讨论有限状态机的概念。
2.  解释上下文无关文法。
3.  设计一个接受指定语言的确定型有限状态机。
4.  解释一些问题是如何没有算法解决方案的。
5.  举例说明不可计算性的概念。

AL6. P和NP复杂类[选修]
主题:
P 和 NP类的定义
NP-完备性 (库克定理)
标准的NP-完备问题
归约技术

学习目标:
1.定义P和NP类。
2.解释NP-完备性的意义。
3.通过把已知的典型NP-完备问题简化成另一个问题来证明后者是NP-完备的。

AL7.自动机理论[选修]
主题:
确定有限自动机 (DFA)
非确定有限自动机 (NFA)
DFA 和 NFA 的等价
正则表达式
正则表达式的缩胀定理
下推自动机 (PDA)
PDA和上下文无关文法的关系
上下文无关文法的性质
图灵机
非确定图灵机
集合和语言
乔姆斯基层次结构
丘奇——图灵论题

学习目标:
1.  确定语言在乔姆斯基(Chomsky)层次结构(正则集, 上下文无关, 上下文有关, 和 递归可列举语言)中的位置。
2.  证明一种语言在指定的类而不在该类之下的类中。
3.  在能力等价的语言符号表示之间进行转换,包括DFA、NFA、和正规表达式之间以及PDA和CFG之间的转换。
4.  解释至少一种自顶向下和自底向上的语法分析算法。
5.  解释丘奇——图灵论题及其意义。

AL8.高级算法分析[选修]
主题:
缓冲分析
在线(on-line)和离线(off-line)算法
随机算法
动态程序设计
组合优化

学习目标:
1. 给定势函数,使用势方法给出先前不可见的数据结构的缓冲分析。
2. 解释为什么竞争分析适合于衡量联机(on-line)算法。
3. 解释随机化在设计不知道是否具有确定算法或算法难度很大的问题的算法中的使用。
4. 设计并实现某问题的动态程序设计求解方案。

AL9.密码算法[选修]
主题:
密码学的历史概述
密钥密码学和密钥交换问题
公钥密码学
数字签名
安全协议
应用 (零知识证明、认证等等)

学习目标:
1.描述有效的基本数论算法,包括最大公约数、模n的乘法逆元算法和数的幂次算法。
2.描述至少一个公钥密码系统,包括其安全性所必要的复杂性理论假设。
3.使用已知协议和加密原语建立简单的扩展密码协议。

AL10.几何算法[选修]
主题:
线段: 性质、交点
凸包查找算法
学习目标:
1.描述至少两种凸包查找算法并给出它们的时间分析。
2.证明凸包查找的 复杂度下界(N log N)是正确的。
3.描述至少一种其它有效的计算几何算法,如查找最近的点对、凸面的层或最大层。

AL11.并行算法[选修]
主题:
PRAM模型
互斥和并行读写
指针跳转
Brent定理和运行效率

学习目标:
1.描述链表在PRAM上的实现。
2.使用并行前缀操作有效地并行执行简单的计算。
3.解释Brent定理及其相关性(relevance).

体系结构和组织(AR)
AR1.数字逻辑和数字系统[核心]
AR2.数据的机器表示[核心]
AR3.汇编级机器组织[核心]
AR4.存储系统组织和体系结构[核心]
AR5.接口和通信[核心]
AR6.功能的组织[核心]
AR7.多道处理和预备体系结构[核心]
AR8.性能提高[选修]
AR9.网络和分布式系统体系结构[选修]

AR1.数字逻辑和数字系统[核心]
主题:
计算机体系结构的概况和历史
基本构件(逻辑门、触发器、计数器、寄存器、可编程逻辑阵列)
逻辑表达式、化简、与或式(sum of product forms)
寄存器传输符号表示(Register transfer notation)
物理事项的考虑 (门延迟,扇入,扇出)

学习目标:
1.  描述计算机体系结构从真空管到VLSI的发展历程。
2.  理解基本building-block,及其在计算机体系结构发展历史中的作用。
3.  使用数学表达式描述简单组合和顺序电路的功能。
4.  使用基本building-block设计简单电路。

AR2.数据的机器表示[核心]
主题:
位、字节、和字
数值数据表示和数字基础
定点和浮点系统
有符号和双补码表示
非数值数据的表示(字符代码、图形数据)
记录和数组的表示

学习目标:
1.  解释使用不同格式表示数值数据的原因。
2.  解释负整数是如何以有符号和双补码方式存储的。
3.  把数值数据从一种格式转化成另一种格式。
4.  讨论固定长度数值表示对准确性和精度的影响。
5.  讨论非数值数据的内部表示。
6.  描述字符,字符串,记录,和数组的内部表示。

AR3.汇编级机器组织[核心]
主题:
冯.诺依曼机器的基本组织
控制单元、指令的获取、解码和执行
指令集和类型(数据操纵、控制、I/O)
汇编/机器语言程序设计
指令格式
寻址方式
子程序调用和返回机制
I/O和中断

学习目标:
1.解释冯.诺依曼机器的组织构成及其主要功能单元。
2.解释在传统的冯.诺依曼机器上指令是如何执行的。
3.总结指令在机器和符号汇编程序语言环境中是如何表示的。
4.解释不同的指令格式,如一条指令多条地址,变长和定长格式。
5.  编写简单的汇编语言程序段。
6.  基本的高级程序设计构件在机器语言级是如何实现的。
7.  解释子程序调用在汇编级是如何处理的。
8.  解释中断和输入/输出操作的基本概念。

AR4.存储系统组织和体系结构[核心]
主题:
存储系统及其技术
编码、数据压缩和数据完整性
存储器的层次
主存储器的组织和操作
延迟、周期时间、带宽和交叉存取
高速缓存(地址映射、块的大小、替换和存储策略)
虚拟存储(页表,TLB)
故障处理和可靠性

学习目标:
1.  说明主要的存储技术。
2.  解释存储器延迟对运行时间的影响。
3.  解释如何利用存储器层次降低有效存储延迟(effective memory latency)。
4.  描述存储器管理的原理。
5.  描述高速缓存和虚拟内存的作用。
6.  解释具有虚拟存储管理的系统的工作方式。

AR5.接口和通信[核心]
主题:
I/O基础: 握手、缓冲、程序化I/O,中断驱动的I/O
中断结构:向量结构和优先级结构中断的确认
外部存储,物理的组织和驱动器
总线: 总线协议、仲裁、直接存储器存取(DMA)
网络导引
多媒体支持
RAID体系结构

学习目标:
1.解释中断是如何用来实现输入/输出控制和数据传输的。
2.识别计算机系统中各种类型的总线。
3.描述磁盘驱动器数据访问过程。
4.  比较常见的网络配置。
5.  识别多媒体支持所需的接口。
6.  描述RAID体系结构的优点和局限性。

AR6.功能的组织[核心]
主题:
简单数据通路的实现
控制单元: 硬布线实现和微程序实现
指令流水线
指令级并行(ILP)导引

学习目标:
1.比较数据通路的不同实现。
2.讨论控制点的概念以及使用硬布线或微程序实现产生控制信号。
3.通过流水线和可能发生的主要危险,解释基本的指令级并行机制。

AR7.多道处理和预备体系结构[核心]
主题:
SIMD,MIMD,VLIW,EPIC导引
脉动体系结构
互联网络(超级立方体结构、混洗互联、平面网格结构、纵横结构)
共享存储器系统
高速缓存的一致性
存储器模型和存储器的一致性

学习目标:
1. 脱离传统的冯.诺依曼模型,讨论并行处理的概念。
2.  描述预备体系结构,如SIMD、MIMD和VLIW。
3.  解释互连网络的概念并说明不同方法的特点。
4.  就存储管理讨论多处理系统中存在的特殊问题,说明这些问题是如何解决的。

AR8.性能提高[选修]
主题:
超级标量体系结构
分支预测
预取
预测执行(speculative execution)
多线程
可伸缩性(scalability)

学习目标:
1.  描述超级标量体系结构及其优点。
2.  解释分支预测的概念及其应用。
3.  说明预取的代价和收益。
4.  解释预测执行并说明其合理应用的条件。
5.  讨论在体系结构中使用多线程所获得的性能的提高,以及导致难以使用该方法获得最大收益的因素。
6.  描述可伸缩性与性能的联系。

AR9.网络和分布式系统的体系结构[选修]
主题:
局域网和广域网导引
层次协议设计,ISO/OSI,IEEE 802
体系结构问题对分布式算法的影响
网络计算
分布式多媒体

学习目标:
1.  解释网络系统的基本构件,并区别LAN和WAN。
2.  讨论层次网络协议设计中的体系结构问题。
3.  解释网络和分布式系统中体系结构的差别。
4.  讨论与网络计算和分布多媒体相关的体系结构问题。

操作系统(OS)
OS1.操作系统概述[核心]
OS2.操作系统原理[核心]
OS3.并发[核心]
OS4.调度与分派[核心]
OS5.存储管理[核心]
OS6.设备管理[选修]
OS7.安全和保护[选修]
OS8.文件系统[选修]
OS9.实时和嵌入式系统[选修]
OS10.容错[选修]
OS11.系统性能评价[选修]
OS12.脚本[选修]

OS1.操作系统概述[核心]
主题:
操作系统的作用和目的
操作系统发展的历史
典型操作系统的功能
支持客户——服务器模型的机制,握手设备
设计问题(效率、健壮性、灵活性、可移植性、安全性、兼容性)
安全,组网,多媒体、windows的影响

学习目标:
1. 解释现代操作系统的目标和功能。
2.描述操作系统是如何随着时间从最初的批处理系统到复杂的多用户系统演化的。
3.  分析操作系统设计中的折衷。
4.  从方便性、效率和演化升级能力方面,描述一种现代操作系统的功能。
5.  讨论网络、客户—服务器和分布式操作系统,及其与单用户操作系统的区别。
6.  识别操作系统面临的潜在威胁以及应对这些威胁的安全特征的设计。
7.  描述诸如开放源代码软件和Internet的使用等问题是如何影响操作系统的设计的。

OS2.操作系统原理[核心]
主题:
构造方法(整体式的、分层的、模块化的、微内核模型)
抽象、进程和资源
应用程序接口(API)的概念
应用的需要和硬件与软件技术的演化
设备组织
中断:方法和实现
用户/系统态的概念以及核心态的保护和转入

学习目标:
1. 解释逻辑层次的概念。
2. 解释以分层方式构造抽象层次的好处。
3. 给出需要API和中间件的理由。
5.  描述计算机资源是如何由应用软件使用和由系统软件管理的。
6.  比较操作系统中核心态和用户态的不同。
7.  比较各种构造操作系统的方法,如面向对象方法、模块化方法、微内核和层次方法的不同。
8.  解释设备列表的使用和驱动器I/O队列。

OS3.并发[核心]
主题:
状态与状态图
结构(就绪表、进程控制块等)
分派和上下文交换
中断的作用
并发执行: 优点和缺点
“互斥”问题和一些解决方案
死锁: 原因、条件和预防
模型和机制(信号量、监控程序、条件变量、会合点)
生产者—消费者问题和同步
多处理器问题(旋转锁、重入)

学习目标:
1.   在操作系统的框架内描述对并发的需  求。
2. 演示由于多个独立任务的并发操作所引起的潜在的运行时间问题。
3. 总结能够在操作系统级实现并发系统的机制,并描述各自优点。
4. 解释一个任务可能经历的不同状态以及支持对多个任务进行管理的数据结构。
5.  总结在操作系统中解决互斥问题的不同方法。
6.  描述在操作系统中使用中断、分派和上下文切换支持并发的原因。
7.  对简单的问题域生成其状态和转移图。
8.  讨论数据结构如栈和队列在管理并发中的应用。
9.  解释造成死锁的条件。

OS4.调度与分派[核心]
主题:
抢占非抢占调度
调度器和(调度)策略
进程和线程
时限和实时问题

学习目标:
1.比较和区别操作系统中常见的抢占非抢占任务调度算法,比如优先权、性能比较和公平——共享模式。
2.  描述调度算法和应用领域之间的关系。
3.  讨论处理器调度的类型,如短期、中期、长期(short-term, medium-term, long-term)调度 和I/O调度。
4.  描述进程和线程之间的区别。
5.  比较和区别实时调度的静态和动态方法。
6.  讨论对抢占和时限(deadline)调度的需求。
7.  理解蕴涵在调度算法中的逻辑(思想)是如何应用于其他领域,如磁盘I/O、网络调度、项目调度和其他与计算相关的问题的。

OS5.存储器管理[核心]
主题:
物理存储器和存储管理硬件的回顾
覆盖、交换和分区
分页和段
换入和换出策略
工作区和系统颠簸
高速缓存

学习目标:
1. 介绍存储器层次与性能和价格的折衷。
2. 解释什么是虚拟存储,以及如何用硬件和软件实现。
3. 总结应用于高速缓存、分页和分段的虚拟存储原理。
4. 评价存储器规模(主存,高速缓存,辅助存储器)和处理器速度之间的折衷。
5.  解释各种把内存分配到任务的方法的理由,并说明各自的优点。
6.  解释使用高速缓存的原因。
7.  比较和区别分页和分段技术。
8.  从颠簸产生的原因和用于识别和管理该问题的技术两方面讨论颠簸的概念。
9.  分析各种不同的存储器分区技术,包括覆盖、交换、换入和换出策略。

OS6.设备管理[选修]
主题:
并行和串行设备的特点
设备差异的抽象
缓冲策略
直接存储器存取
故障恢复

学习目标:
1.解释并行和串行设备的区别,并说明各自适用的条件。
2.认识物理硬件和操作系统维护的虚拟设备之间的关系。
3.解释缓冲并描述其实施策略。
4.区别用于设备(包括握手设备、多媒体、网络) 和计算机接口的机制,解释它们对操作系统设计的意义。
5.描述直接内存访问的优缺点并讨论在何种情况下其使用能够得到保证。说明对故障恢复的需求。

OS7.安全和保护[选修]
主题:
系统安全概述
策略和机制的分离
安全方法和设备
保护、存取和认证
保护模型
存储保护
加密
恢复管理

学习目标:
1.论证对保护和安全的需要,以及计算机使用中道德方面考虑的作用。
2.总结用于提供保护和安全的操作系统的特性和局限性。
3.对比当前用于实现安全的方法。
4.就安全性对比两个或者更多目前流行的操作系统的优缺点。
5.就恢复管理对比两个或者更多目前流行的操作系统的优缺点。

OS8.文件系统[选修]
主题:
文件: 数据、元数据、操作、组织、缓冲、顺序、非顺序
目录: 内容和结构
文件系统: 分区、安装/卸载、虚拟文件系统
标准实现技术
存储映像文件
专用文件系统
命名、搜索、访问、备份

学习目标:
1.总结支持文件系统所要考虑的全部事项。
2.比较文件组织的不同方法,认识各自的优缺点。
3.总结硬件的发展是如何导致我们在文件系统的设计和管理上重心的改变的。

OS9.实时和嵌入系统[选修]
主题:
进程和任务调度
实时环境中的存储/磁盘管理要求
失败、风险和恢复
实时系统中的特别需要关注的问题

学习目标:
1.描述什么样的系统是实时系统。
2.解释实时系统中延迟的存在及其特点。
3.总结实时系统中的特殊问题并说明这些问题是如何解决的。

OS10.容错[选修]
主题:
基本概念: 可靠和可用的系统
空间和时间冗余
实现容错的方法
可靠系统的例子

学习目标:
1.解释术语:容错,可靠性,和可用性之间的联系。
2.概述操作系统中实现容错的方法。
3.解释故障发生之后,操作系统如何继续发挥作用。

OS11.系统性能评价[选修]
主题:
为什么系统性能需要评价
评价什么
高速缓存、分页、调度、存储管理和安全等策略
评价模型: 确定模型、分析模型、仿真模型或特定于具体实现的模型
收集评估数据的方法(剖析和追踪机制)

学习目标:
1.描述用于确定一个系统运行情况的性能指标。
2.解释用于评价一个系统的主要的评价模型。

OS12.脚本[选修]
主题:
脚本和脚本语言的作用
基本的系统命令
建立脚本,参数传递
执行脚本
脚本对程序设计的影响
脚本对程序设计的影响

学习目标:
1.总结操作系统提供的典型系统命令集。
2.显示脚本语言的典型功能,解释其对程序设计的意义。
3.解释执行脚本的机制以及脚本对系统执行和集成的作用。
4.实现一个展示了参数传递过程的简单脚本。

网络计算(NC)

NC1. 网络计算导引 [核心]
NC2. 通信和组网 [核心]
NC3. 网络安全 [核心]
NC4. 客户-服务器计算的一个实例:Web [核心]
NC5. 建立Web应用 [选修]
NC6. 网络管理 [选修]
NC7. 压缩和解压 [选修]
NC8. 多媒体数据技术 [选修]
NC9. 无线和移动计算 [选修]

NC1. 网络计算导引 [核心]
主题:
网络产生的背景、历史,以及Internet
网络体系结构
网络计算的范围
——网络和协议
——网络和多媒体系统
——分布式计算
——移动和无线计算

学习目标:
1.  讨论早期网络和Internet的演化过程。
2.  能够使用一些常见的网络应用,包括e-mail、telnet、FTP、新闻组、web浏览器、在线web 课程和即时消息传递。
3.  解释典型网络体系结构的层次结构。
4.  描述网络计算领域中的新兴技术并对其目前的性能、局限和近期内的发展潜力进行评价。

NC2. 通信和组网 [核心]
主题:
网络标准和标准体系
ISO 7层参考模型及其在TCP/IP 中的实例化
电路交换和包交换
流和数据包
物理层的网络概念(理论基础、传输介质、标准)
数据链路层概念(成帧、出错控制、流量控制、协议)
网络互连和路由(路由算法、网络互连、拥塞控制)
传输层服务(建立连接、性能问题)

学习目标:
1.  在具体的历史环境中讨论重要的网络标准。
2.  描述ISO参考模型前4层的责任。
3.  讨论电路交换和包交换的区别以及各自的优缺点。
4.  解释网络是如何探测和纠正传输错误的。
5.  演示(数据)包是如何在Internet上寻找路由的。
6.  建立一个简单网络,包括两个客户和一个使用标准主机配置软件工具,如DHCP的服务器

NC3. 网络安全 [核心]
主题:
密码学基础
密钥算法
公开密钥算法
认证协议
数字签名
实例

学习目标:
1.  讨论公开密钥密码术基本思想。
2.  描述公开密钥密码术是如何起作用的。
3.  区别密钥和公开密钥算法。
4.  总结各种常见的身份认证协议。
5.  产生并发送一个PGP密码对,使用该PGP包发送加密的e-mail信息。
6.  总结各种公众能够方便地使用的加密方法的性能和局限性。

NC4. 客户-服务器计算的一个实例:Web [核心]
主题:
Web技术
——服务器端程序
——常见的网关接口(CGI)程序
——客户端脚本
——(Java)小程序的概念
Web服务器的特点
——处理请求
——文件管理
——通常的服务器体系结构的功能
客户机的角色
客户—服务器关系的本质
Web协议
Web站点创建和Web管理的支持工具
开发Internet信息服务器
发布信息和应用

学习目标:
1.  解释客户机和服务器在一些可能应用中的不同作用和责任。
2.  选择一些能够保证为不同的客户-服务器实现方案提供有效途径的工具。
3.  设计并实现一个简单的基于Web的交互式应用(例如:一个简单的Web表格,它从客户机上收集信息并存放在服务器上的某个文件中)。

NC5. 建立Web应用 [选修]
主题:
应用层协议
Web工程原则
数据库驱动的Web网站
远程调用(RPC)
轻量(light-weighted)分布式对象
中间件的作用
支持工具
分布式对象系统的安全问题
企业中基于Web的应用

学习目标:
1.  解释如何使用不同类型的Web技术建立中等规模的交互式客户-服务器Web应用。
2.  说明如何实现一个数据库驱动的Web网站,解释体系结构每一层中的相关技术和随之而来的性能折衷。
3.  使用两种分布式对象框架实现一个分布式系统,并对它们的性能和安全问题进行比较。
4.  讨论企业范围内基于Web应用的安全问题及安全策略。

NC6. 网络管理 [选修]
主题:
网络管理问题概述
密码的使用和访问控制机制
域名和名字服务
因特网服务提供者(ISP) 的相关事项
安全问题和防火墙
服务质量问题:性能、错误恢复

学习目标:
1.  解释由一系列的安全威胁,包括病毒、蠕虫、欺骗程序和拒绝服务攻击引发的网络管理问题。
2.  总结不同安全方法的优缺点。
3.  制订一个保证专用系统具有适当的安全等级的策略。
4.  实现网络防火墙。

NC7. 压缩和解压 [选修]
主题:
模拟和数字表示
编码与解码算法
无损耗和有损耗压缩
数据压缩: Huffman和 Ziv-Lempel 算法
音频压缩和解压
图像压缩和解压
视频压缩和解压
性能问题:同步、压缩比、用于实时应用时的适用性

学习目标:
1.  概括数字表示中采样和量化的基本特点。
2.  根据特定的应用和环境,为文本、音频、图像和视频信息选择最适合的压缩技术。
3.  解释压缩和解压算法的不对称性。
4.  说明游程长度(run-length)编码的概念。
5.  解释压缩工具,如使用Huffman编码和Ziv-Lempel算法的UNIX compress 是如何压缩典型的文本文件的。

NC8. 多媒体数据技术 [选修]
主题:
声音和音频、图像和图形、动画和视频
多媒体标准(音频、音乐、图形、图像、电话、视频、电视)
容量规划和性能问题
输入和输出设备(扫描仪、数码相机、触摸式屏幕、声控设备)
MIDI键盘、合成器
存储标准(磁光盘、CD-ROM、DVD)
多媒体服务器和文件系统
支持多媒体开发的工具

学习目标:
1.  对若干媒体或多媒体标准,用非技术语言描述每种标准的要求,并解释人的理解对这些标准局限性的敏感程度。
2.  评价一个计算机系统容纳一系列可能多媒体应用的潜力,包括多媒体系统对底层网络技术需求的评估。
3.  描述必须实现一个可能的多媒体应用的计算机系统的特点(包括支持工具的识别和恰当的标准)。
4.  实现一个具有相当规模的多媒体应用。

NC9. 无线和移动计算 [选修]
主题:
无线标准的历史、演化和兼容性概述
无线和移动计算的特殊问题
无线局域网和卫星网
无线本地环路
移动因特网协议
移动感知适应(aware adaptation)
扩展客户-服务器模型以适用于移动计算
移动数据访问:服务器数据传播和客户高速缓存管理
支持无线和移动计算的软件包
中间件和支持工具的作用
性能问题
正在出现的技术

学习目标:
1.  描述移动IP的主要特点并解释它与IP在移动管理、位置管理以及性能上的差别。
2.  (使用本地和外地代理)说明e-mail和其它数据流是如何使用移动IP选择路由的。
3.  实现一个简单的依赖移动和无线数据通信的应用。
4.  了解该领域内的大量的热点领域,包括网络互连、多媒体、无线和移动计算和分布计算。

设计语言(PL)
PL1. 程序设计语言概述[核心]
PL2. 虚拟机[核心]
PL3. 语言翻译导引[核心]
PL4. 声明和类型[核心]
PL5. 抽象机制[核心]
PL6. 面向对象程序设计[核心]
PL7. 函数式程序设计[选修]
PL8. 语言翻译系统[选修]
PL9. 类型系统[选修]
PL10.程序设计语言的语义[选修]
PL11.程序设计语言的设计[选修]


PL1.程序设计语言概述[核心]
主题:
程序设计语言的历史
程序设计模式概述
--过程式语言
--面向对象语言
--函数语言
—说明性、非算法语言
—脚本语言
规模对程序设计方法的影响

学习目标:
1.总结程序设计语言的演化过程,解释今天使用的各种程序设计模式是怎样由此发展而来的。
2.对于本单元中的每一种程序设计模式,至少识别其一个特点。
3.评价不同程序设计模式之间的折中,考虑的问题包括空间效率和(计算机和程序设计人员的)时间效率、安全性和表达能力。
4.区别小型和大型程序设计的不同。

PL2.虚拟机[核心]
主题:
虚拟机的概念
虚拟机的层次
中间语言
在不同的机器上运行代码引发的安全问题

学习目标:
1. 描述虚拟机环境下抽象的重要性和能力。
2. 解释编译过程中使用中间语言的好处。
3. 评价性能和可移植性之间的折衷。
4.  解释可执行程序是如何通过访问磁盘文件和内存损害计算机的安全性的。

PL3.语言翻译导引[核心]
主题:
解释器和编译器的比较
语言翻译阶段(词法分析、语法分析、代码生成和优化)
翻译中依赖和不依赖于机器的方面

学习目标:
1. 比较和区别编译与解释执行模型,阐述各自的优点。
2.描述从源代码到生成可执行代码之间的程序翻译的各个阶段,以及在这些阶段产生的文件。
3.解释依赖于机器和不依赖于机器的翻译的区别,以及它们分别表现在翻译过程中哪些方面。

PL4.声明和类型[核心]
主题:
作为具有一系列操作的数值集合的类型的概念
声明模型(绑定、可见性、范围和生命期)
类型检查概述
无用存储单元的收集

学习目标:
1.  解释声明模型的价值,尤其是对大型程序设计来说。
2.  确定并描述变量的性质,如关联地址、值、范围、持续性和大小。
3.  讨论类型的不兼容性。
4.  解释不同形式的绑定、可见性、范围和生命期管理。
5.  说明类型和类型检查在提供抽象和安全性过程中的重要性。
6.  评价生命期管理中的折中(引用记数和无用单元收集)。

PL5.抽象机制[核心]
主题:
作为抽象机制的过程、函数和迭代器
参数化机制(引用和值)
活动记录和存储管理
类型参数和参数化类型
程序设计语言中的模块

学习目标:
1.  解释抽象机制是如何支持可重用软件部件的生成的。
2.  解释值调用(call-by-value)和参照调用(call-by-reference)参数传递上的区别。
3.  说明抽象的重要性,特别是对大型程序设计来说。
4.  描述计算机系统是如何使用激活记录来管理程序模块及其数据的。

PL6.面向对象的程序设计[核心]
主题:
面向对象的设计
封装和信息隐藏
行为和实现的分离
类和子类
继承(重载、动态分派)
多态(子类型多态和继承)
类的层次
集合类和迭带协议
对象的内部表示和方法表

学习目标:
1.  说明采用面向对象设计的原因以及封装、抽象、继承和多态的概念。
2.  使用面向对象的程序设计语言设计、实现、测试和调试简单的程序。
3.  描述类机制是如何支持封装和信息隐藏的。
4.  使用类层次结构和继承设计、实现和调试一个对象之间具有“is-a”关系的实现。
5.  比较并区别面向对象程序设计语言中超载概念与重载方法的不同。
6.  解释类的静态结构和类实例的动态结构之间的关系。
7.  描述iteraor是如何访问container中的元素的。

PL7.函数式程序设计[选修]
主题:
—函数式语言产生的动因及其概述
—表、自然数、树以及其它递归定义数据上的递归
--语用学 (用分而治之的策略调试,数据结构的持续性(persistency))
--函数数据结构的缓冲效率(amortized efficiency)
--闭包和函数作为数据的使用 (无限集、流)

学习目标:
1.  概括函数式程序设计模式的优缺点。
2.  使用函数式程序设计模式设计、实现、测试和调试程序。
3.  解释函数如何作为数据使用,包括闭包的概念。

PL8.语言翻译系统[选修]
主题:
正则表达式在扫描器中的应用
语法分析 (具体和抽象语法、抽象语法树)
上下文无关文法(CFG) 在表驱动和递归下降分析法中的应用
符号表管理
攀树式代码生成
和特定体系结构相关的操作:指令选择和寄存器分配
优化技术
支持翻译过程的工具的使用,以及使用工具的好处
程序库和独立编译
建立语法制导工具

学习目标:
1. 描述语言翻译器的翻译步骤和使用的算法。
2.了解作为基础的形式模型,如有限自动机、下推自动机及其与通过正规表达式和文法所做的语言定义之间的联系。
3.讨论优化的效果。
4.  解释独立编译工具和程序库对编译过程的影响。

PL9.类型系统[选修]
主题:
作为具有一组操作的数值集合的数据类型
数据类型
—基本类型
—积、余积类型
—代数类型
—递归类型
—向量(函数)类型
—参数化类型
类型检查模型
用户自定义类型的语义模型
—类型缩写
—抽象数据类型
—类型等价
参数多态
子类型多态
类型检查算法

学习目标:
1. 使类型表示形式化。
2.描述各种基本数据类型。
3.解释抽象数据类型的概念。
4. 认识类型(typing)对抽象和安全的重要性。
5. 认识静态和动态类型(typing)之间的区别。
6. 区别类型声明和类型推理。
7. 从类型方面评价语言。

PL10.程序设计语言语义学[选修]
主题:
非形式语义学
形式语义学概述
指称语义学
公理语义学
操作语义学

学习目标:
1. 认识形式语义学的重要性。
2. 区别形式和非形式语义学。
3. 描述各种不同的形式语义学方法。
4.评价各种不同的形式语义学方法。

PL11.程序设计语言的设计[选修]
主题:
语言设计的一般原则
设计目标
类型体系
数据结构模型
控制结构模型
抽象机制

学习目标:
1. 评价不同类型体制(typing regimes)对语言设计、语言使用和翻译过程的影响。
2. 解释不同的抽象机制在生成用户定义设施过程中的作用。

人机交互(HC)
HC1. 人机交互基础[核心]
HC2. 建立简单的图形用户接口[核心]
HC3. 以人为中心的软件评价[选修]
HC4. 以人为中心的软件开发[选修]
HC5. 图形用户接口设计[选修]
HC6. 图形用户接口程序设计[选修]
HC7. 多媒体系统的人机接口[选修]
HC8. 协同和通信的人机接口[选修]

HC1.人机交互基础[核心]
主题:
动机: 为什么要关心人?
人机接口环境(工具,网络超媒体,通信)
以人为中心的开发和评价
人的表现模型: 理解、运动和认知
人的表现模型: 文化、通信和组织
适应人的多样性
好的设计和优秀设计者的原则;工程折衷
可用性测试导引

学习目标:
1.讨论以人为中心进行软件开发的原因。
2.总结研究心理和社会交互的基础科学。
3.区别假设和实验结果的不同作用,以及相互关联。
4.制订一个概念词汇表来分析人与软件的交互:如可伺服性(affordance)、概念模型、 反馈等。
5.  区别给定的图标、符号、单词或颜色在(a)两种不同的人类文化以及(b)一种文化和它的一种亚文化中的不同解释。
6.  就尊重人的多样性而言,计算机系统或应用的设计怎样才是成功的,怎样是失败的。
7.  对现有的软件应用生成并进行简单的可用性测试。

HC2. 建立简单的图形用户接口[核心]
主题:
图形用户接口(GUI)的原理
GUI工具箱

学习目标:
1.  确定进行有效GUI设计的若干基本原则。
2.  使用GUI工具箱生成支持图形用户接口的简单应用。
3.  说明基本设计原则对图形用户接口结构的影响。
4.  对每一个实例进行简单的可用性测试并比较其结果。

HC3.以人为中心的软件评价[选修]
主题:
确立评价目标
没有用户参与的评价:走查、KLM、方针和标准
用户评价:可用性测试、协商、考察、实验

学习目标:
1.讨论评价标准: 学习、任务时间和任务结束、可接受性。
2.实施走查和 Keystroke Level Model (KLM)分析。
3.总结主要的指导方针和标准。
4.进行可用性测试,协商和调查。
5.把可用性测试与对照实验进行比较。
6.用以人为中心的标准和可用性测试,评价一个现有的交互式系统。

HC4.以人为中心软件开发[选修]
主题:
方法、特点和过程概述
功能和可用性: 任务分析、协商、调查
交互和表示方式规格
原型技术和工具
--文件情节串联图版
--继承和动态分派
--原型语言和GUI生成器

学习目标:
1.解释以人为中心的开发的基本的类型和特点。
2.比较以人为中心的开发与传统软件工程方法的异同。
3.说明三项功能要求和三项可用性要求。
4.利用变迁网络,面向对象设计或者脚本描述确切地说明一个交互式对象。
5.讨论使用文件和软件原型开发软件的优缺点(pros and cons)。

HC5.图形用户接口设计[选修]
主题:
选择交互风格和交互技术
普通窗口小配件的人机接口
屏幕设计的人机接口:布局、颜色、字体、标签
处理人为失败
简单屏幕设计以外的内容:可视化、表达、比喻
多模式交互: 图形、声音和触觉
3D交互和虚拟现实

学习目标:
1.总结常见的交互方式。
2.解释普通窗口小配件(widgets)、序列化屏幕表示、 简单的差错陷入对话框和用户手册设计中好的设计原则。
3.设计、原型化实现和评价一个简单的2D GUI,并对其进行评价,解释HC3和HC4中所讲的概念。
4.讨论从2D到3D交互转化过程中存在的 挑战。

HC6.图形用户接口程序设计[选修]
主题:
UIMS,对话独立性和分析的层次
窗口小配件类
事件管理和用户交互
几何管理
GUI 生成器和UI程序设计环境
跨平台设计

学习目标:
1. 区别UIMS责任和应用的责任(respinsibilities of UIMS and  application)。
2.认识UI的基于核心模型和顾客—服务器模型之间的区别。
3.比较事件驱动模式和传统的UI过程控制。
4.描述窗口小配件的聚合和基于约束的几何管理。
5. 解释回调及其在GUI生成器中的作用。
6.阐述跨平台UI设计中常见的至少三点区别。
7.尽可能多地认识在不同平台上进行UI设计时的共同点。

HC7.多媒体系统的人机接口(HCI)[选修]
主题:
信息的分类和结构: 层次、超媒体
信息检索和人的表现
--网络搜索
--数据库查询语言的可用性
--图形学
--声音
多媒体信息系统的HCI设计
语言识别和自然语言处理
信息设备和移动计算

学习目标:
1.讨论信息检索与事务处理的差别。
2.说明信息组织是如何支持检索的。
3.描述数据库查询语言的主要可用性问题。
4.说明语音识别技术特别是自然语言处理的现状。
5.设计并原型化实现一个简单的多媒体信息系统,并对其进行评价,解释HC4、HC5和HC7中所讲的概念。

HC8.协同和通信的人机接口[选修]
主题:
支持专门任务的群件:文档准备,多个玩家的游戏
异步组通信: 电子邮件、公告牌
同步组通信: 聊天室、召开会议
联机社区: MUD与MOO
软件特征和智能代理

学习目标:
1. 比较个人交互和组交互中的HCI问题。
2. 讨论协同软件引起的几个社会问题。
3. 讨论体现人类意图的软件中的HCI问题。
4. 描述同步和异步通信之间的区别。
5. 设计并原型化实现一个简单的组软件或组通信应用,并对其进行评价,解释HC4、HC5和HC8中所讲的概念。
6.参加一个项目队伍,其中一些交互是面对面的,另外一些是通过中介软件环境进行的。
7.说明面对面和以软件为中介进行协同的相似和不同之处。

图形学和可视化计算(GV)
GV1.图形学的基本技术[核心]
GV2.图形系统[核心]
GV3.图形通信[选修]
GV4.几何建模[选修]
GV5.基本绘制[选修]
GV6.高级绘制[选修]
GV7.高级技术[选修]
GV8.计算机动画[选修]
GV9.可视化[选修]
GV10.虚拟现实[选修]
GV11.计算机视觉[选修]

GV1.图形学的基本的技术[核心]
主题:
图形学软件的层次
使用图形应用程序接口(API)
简单的颜色模型(RGB、HSB、CMYK)
齐次坐标系
仿射转换(比例放缩、旋转、平移)
取景变换
裁剪

学习目标:
1.区别不同层次图形软件的性能并描述各自的适宜性。
2.使用标准的图形应用程序接口(API)产生图像。
3.使用标准应用程序接口(API)提供的设 施来表达基本转换,如比例放缩、旋转和平移。
4.实现一个简单的过程,完成简单二维图像上的平移和裁剪操作。
5.讨论三维坐标系统以及把二维转换操作扩展用于三维变换需要什么变动。

GV2.图形系统[核心]
主题:
光栅和向量图形系统
视频显示设备
物理和逻辑输入设备
图形系统开发者面临的问题

学习目标:
1.  给定的应用,描述图形体系结构的适宜性。
2.  解释不同输入设备的功能。
3.  比较和区别光栅和向量图形技术的不同。
4.  使用现有的硬件和软件生成和显示图形。
5.  讨论新型硬件和软件在生成和显示图形上的扩展性能。

GV3.图形通信[选修]
主题:
颜色心理动力学和颜色的相互作用
为视力缺陷修正颜色
不同颜色在文化上的意义
对服务特定观众的图像使用有效的伪色彩调色板
为有效理解而构造视图
为有效视频而进行的图像修正和硬拷贝
在颜色或者其它可视数据的关键信息中使用图例
在表示上下文和背景信息的图像中使用正文
图形操作的可视化用户反馈

学习目标:
1. 解释使用色彩和伪色彩的价值。
2. 具有生成有效视频和硬拷贝图像能力。
3. 识别有效和无效图形通信的例子。
4.生成有效图形通信的例子, 恰当地使用颜色、图例、文本和/或视频。

GV4.几何学的模型[选修]
主题:
3D对象的多边形表示
参数化多项式曲线和面
构造立体几何(CSG)表示
曲线和面的绝对表示
空间分割技术
过程模型
可变形模型
细分表面
多解模拟
重构

学习目标:
1.通过表面棋盘型铺嵌建立简单的多面模型。
2.从简单原语如立方体和二次曲面构造CSG模型。
3.从隐含表面产生格网表示。
4.使用过程方法产生分数维造型或者地形。
5.从用激光扫描仪获取的数据点中产生格网。

GV5.基本绘制(rendering) [选修]
主题:
线产生算法(Bresenham)
字体的产生:轮廓和位图
光源和材料性质
环境、散射、和镜面反射
Phong反射模型
多边形表面绘制、 平直消隐、Gouraud 消隐和 Phong 消隐
文本影射、凸起文本、环境图
光线跟踪介绍
图像合成、采样技术和图形保真

学习目标:
1.解释以象素显示为基础绘制线段的Bresenham算法操作。
2.解释这些技术各自的概念和应用。
3.使用标准应用程序接口(API)产生一幅图像,从而演示这些技术。
4.认识图像如何生成的。

GV6.高级绘制(rendering,网上该词的翻译有:渲染、影像描绘、影像计算、着色、绘制等,甚至有翻译成图腾的)[选修]
主题:
迁移方程
光线跟踪算法
光子跟踪
全局照明计算的辐射度、表格因素
全局照明的有效方法
全局照明的蒙特卡洛(Monte Carlo)方法
基于图像的绘制、全景浏览、视觉功能建模
复杂自然现象的描绘
非逼真绘制(Non-photorealistic rendering,网上译为:非真实感绘制、反真实渲染)

学习目标:
1.详细描述几个迁移方程,注意所有综合效果。
2.描述计算辐射度的有效算法并解释准确性和算法性能的折衷。
3.描述建网方案(meshing scheme)的影响。
4.解释基于图像的绘制技术、光区域和相关主题。

GV7.高级技术[选修]
主题:
颜色的量化
2D原语扫描变换、正向差分
曲面的棋盘形布局
隐藏表面的消除方法
Z-缓冲和框架缓冲、颜色通道(暗通道)
高级几何建模技术

学习目标:
1.描述在该部分中出现的技术。
2.说明如何认识用于产生特殊图像的图形技术。
3.使用简单的图形系统在单个象素层次上实现任何指定的图形技术。
4.使用一般的动画软件构造使用元球和框架的简单有机体。

GV8.计算机动画[选修]
主题:
关键帧动画
摄影动画
脚本系统
分级结构动画:正向和逆向运动
动作捕捉
过程动画
变形

学习目标:
1.解释用于产生中间位置和走向的样条内插方法。
2. 比较几种运动捕捉技术的不同。
3. 使用常见动画软件中的粒子函数产生简单动画,如烟火。
4. 使用自发变形技术产生各种各样的变形。

GV9.可视化[选修]
主题:
基本的可视化查看和询问功能
矢量域、张量和流数据的可视化
标量域或高度域可视化: 步进立方体法等值面(isosurface)
直接实体数据绘制:射线造型法、 转换函数、分段、硬件
信息可视化:工程和并行协同方法

学习目标:
1. 描述标量和矢量可视化的基本算法。
2. 描述算法在准确性和性能上的折衷。
3. 使用适当的信号处理和数值分析理论解释可视化操作的影响。
4. 描述表示和用户交互对探测的影响。

GV10.虚拟现实[选修]
主题:
立体显示
强制反馈仿真、 触觉设备
浏览跟踪
冲突检测
可见性计算
有严格时间要求的绘制、多层细节 (LOD)
基于图像的虚拟现实系统
分布式虚拟现实、计算机网络协作
交互式建模
用户接口问题
在医学、仿真和训练中的应用

学习目标:
1.描述由计算机图形学系统实现的光学模型,合成立体图象(stereoscopic view)。
2.描述不同浏览器跟踪技术原理。
3.解释凸多面体的有效冲突检测算法原理。
4.描述基于几何和基于图像的虚拟现实之间的区别。
5.描述网络环境中用户行为的同步和数据一致问题。
6.确定特定应用的虚拟现实系统对接口,硬件和软件配置的基本要求。

GV11.计算机视觉[选修]
主题:
图像获取
数字图像及其性质
图像预处理
分段(阈值处理、基于边界和区域的分段)
轮廓表示和对象识别
运动分析
实例研究(对象识别、对象跟踪)

学习目标:
1.解释图像形成过程。
2.解释两个和多个摄象机、立体视觉的优点。
3.解释各种不同的分割方法,以及它们的特点、区别和优缺点。
4.描述基于形状和区域表示的对象识别。
5.解释不同的运动分析方法。
6.描述对象跟踪方法的区别。

智能系统(IS)
IS1.智能系统的基本问题 [核心]
IS2.搜索和约束满足[核心]
IS3.知识表示与推理[核心]
IS4.高级搜索[选修]
IS5.高级知识表示与推理[选修]
IS6.代理[选修]
IS7.自然语言处理[选修]
IS8.机器学习与神经网络[选修]
IS9.人工智能规划系统[选修]
IS10.机器人学[选修]

IS1.智能系统的基本问题 [核心]
主题:
人工智能的历史
哲学问题
--图灵(Turing)检验
--西尔勒(Searle)的“中文屋子”思维实验
--人工智能中的道德问题
基本定义
--最优vs.类人推理(optimal vs. human-like reasoning)
--最优vs.类人行为(optimal vs. human-like behavior)
哲学的问题
现实世界建模
启发式方法的作用

学习目标:
1. 描述Turing测试和“中文屋子”思维实验。
2. 区别最优推理和类人推理的概念。
3.区别最优行为和类人行为的概念。
4. 列举依赖于现实模型的智能系统实例。
5. 描述启发式方法的作用和对最优化和效率折衷的需求。

IS2.搜索和约束满足[核心]
主题:
问题空间
蛮力搜索 (广度优先、深度优先、 迭代深入的深度优先)
最佳优先搜索(普通最佳优先, Dijkstra算法, A*, A*的可采纳性)
二人游戏(极大极小搜索,α~β剪枝法)
约束满足 (回溯和局部搜索方法)

学习目标:
1.  以状态、操作、初始状态、目标状态描述的形式表述问题空间,并利用该方法为用英文描述的问题构造一个有效的问题空间。
2.描述组合爆炸问题及其后果。
3.为某一问题选择一个适当的蛮力搜索算法,实现并刻画其时间和空间复杂性。
4.为某一问题选择一种适当启发式搜索算法,并设计必要的启发评价函数实现它。
5.描述在什么条件下启发式算法能保证最优解。
6.使用α-β剪枝法实现一些二人游戏的极大极小搜索。
7.  英文表述阐明一个约束满足问题,并使用时序回溯算法实现它。

IS3.知识表示和推理[核心]
主题:
命题和谓词逻辑回顾
归结和定理证明
非单调推理
概率推理
贝叶斯(Bayes)定理

学习目标:
1. 解释用于定理证明的归结技术的操作。
2. 解释单调和非单调推理之间的差异。
3.讨论概率推理的优缺点。
4. 运用贝叶斯定理确定条件概率。

IS4.高级搜索[选修]
主题:
基因算法
模拟退火
局部搜索

学习目标:
1.  解释什么是基因算法,并比较它们与传统的问题求解和搜索技术的有效性。
2.  解释怎么使用模拟退火降低搜索的复杂性,并把其操作与传统的搜索技术相比较。
3.  在传统领域中使用局部搜索技术。

IS5.高级知识表示和推理[选修]
主题:
结构化表示
--框架和对象
--描述逻辑
--继承系统
非单调的推理
--非经典逻辑
--缺省推理
--信念修正
--优先逻辑(preference logics)
--知识源的综合
--冲突信念聚合
按行动和变化情况进行的推理(reasoning on act and change)
--情形演算
--事件演算
--分支问题
时态和空间推理
不确定性
--概率推理
--贝叶斯网络
--模糊装置和概率论
--决策理论
诊断知识表示,定性表示

学习目标:
1.  比较大多数常见的用于结构化知识表示的模型,着重指出其优点和不足。
2.  说明非单调推理构件的特点及其作为信任系统(belief systems)表示机制时的有用性。
3.  在具有动作和变化的问题中应用情况和事件演算。
4.  阐述时间和空间推理的区别,解释其相互关系。
5.  说明并比较表示非确定性的基本技术。
6.  说明并比较诊断和质量表示的基本技术。

IS6.代理 [选修]
主题:
代理的定义
成功的应用和基于代理的系统现状
代理体系结构
--简单的交互代理
--交互规划器
--层次体系结构
--实例结构和应用
代理理论
--承诺
--意图
--决策理论代理
--马尔可夫决策过程(MDP)
软件代理、个人助手和信息访问
--协同代理
--信息收集代理
可信赖代理(合成字符、在代理中模拟情感)
学习代理
多代理系统
--经济激励(economically inspired)多代理系统
--协同代理
--代理组
--代理模型
--多代理学习
机器人代理导引
移动代理

学习目标:
1.  解释代理与其他类型智能系统的差别。
2.  说明和比较标准代理体系结构。
3.  描述代理理论在诸如软件代理、个人助手和可信任代理等领域的应用。
4.  说明会学习的代理和不会学习的代理的区别。
5.  用恰当的实例说明多代理系统是如何支持代理的交互的。
6.  说明什么是机器人和移动代理并进行比较。

IS7.自然语言处理[选修]
主题:
确定和随机文法
语法分析算法
基于语料库的方法
信息检索
语言翻译
语音识别

学习目标:
1.  定义并比较确定和随机文法,并举例说明它们是足够的。
2.  识别用于自然语言语法分析的传统语法分析算法。
3.  说明需要建立语料库的原因。
4.  给出分类实例,并使用基于语料库的方法查找过程。
5.  说明信息检索、语言翻译和语音识别技术之间的差别。

IS8.机器学习和神经网络[选修]
主题:
机器学习的定义和实例
监督式学习
学习决策树
学习神经网络
学习信念网络
最近邻居算法
学习理论
过份适合的问题
非监督学问
加强式学习

学习目标:
1.  解释三种主要学习类型:监督学习、加强式学习和非监督学习的区别。
2.  实现简单的:监督学习、加强式学习和非监督学习算法。
3.  对特定的问题确定三种学习类型中哪种是合适的。
4.  比较下列技术的区别,举例说明每一种技术在何种情况下更优:决定树、神经网络和信念网络。
5.  利用决定树、神经网络和信念网络实现一个简单的学习系统。
6.  说明目前学习理论的特点,包括已取得的成就和不足。
7.  解释什么是最近邻居算法及其在学习理论中的位置。
8.  解释什么是过分适合问题,同时说明检测和管理该问题的技术。

IS9.人工智能规划系统[选修]
主题:
规划系统的定义和实例
作为搜索的规划
基于算符的规划
命题规划
扩展规划系统(基于事实的(case-based),学习和概率系统)
静态世界规划系统
规划与执行
规划和机器人学

学习目标:
1.  定义规划系统的概念。
2.  解释规划系统和传统的搜索技术有何不同。
3.  说明作为搜索的规划、基于算子的规划和建议规划(propositional planning)之间的区别,举例说明每一种规划在什么领域中最为合适。
4.  定义并举例说明下列每一种技术:基于事实规划、学习规划和概率规划。
5.  比较静态世界规划系统和需要动态执行的系统的区别。
6.  解释动态规划对机器人学的影响。

IS10.机器人学[选修]
主题:
概述
--机器人系统现状
--规划和交互控制
--控制中的不确定性
--检测
--(现实)世界模型
配置空间
规划
检测
机器人程序设计
导航和控制

学习目标:
1.概述当今机器人系统的潜力和局限。
2.实现二维机器人和复杂多边形的配置空间算法。
3.实现简单的运动规划算法。
4.解释与传感器有关的不确定性以及如何处理那些不确定性。
5.设计一种简单的控制结构。
7.  描述未知环境下的各种导航策略,包括各自的优点和不足。
8.  借助于界标描述各种不同的导航策略,包括各自的优点和不足。

信息系统(IM)
IM1信息模型与信息系统(核心)
IM2数据库系统(核心)
IM3数据建模(核心)
IM4关系数据库(选修)
IM5数据库查询语言(选修)
IM6关系数据库设计(选修)
IM7事务处理(选修)
IM8分布式数据库(选修)
IM9物理数据库设计(选修)
IM10数据挖掘(选修)
IM11信息存储与检索(选修)
IM12超文本和超媒体(选修)
IM13多媒体信息与多媒体系统(选修)
IM14数字图书馆(选修)

IM1信息模型与信息系统(核心)
主题:
信息系统的历史和发展动力
信息存储和检索(IS&R)
信息管理应用
信息获取和表示
分析和索引
搜索、恢复、连接、导航
信息隐私、完备、安全和表示可缩放性、效率和有效性

学习目标:
1.  比较并区别信息与数据和知识的不同。
2.  总结信息系统从早期到现代的演化过程,区别各自的能力和将来的潜力。
3.  对一个小型或中型的信息系统就其满足实际用户信息需求的情况进行评论/辩护。
4.  描述几个与信息保密、完备性、安全和保护相关的问题的技术解决方案。
5.  解释如何度量效率(吞吐量,反应时间)和有效性(检索,精度)。
6.  描述保证信息系统能够从个体扩展到全体的方法。

IM2数据库系统(核心)
主题:
数据库系统的历史和起因。
数据库系统组成
数据库管理系统(DBMS)功能
数据库结构和数据独立性
数据库查询语言的使用

学习目标:
1.  说明把数据库方法与传统的使用数据文件的程序设计方法区别开的特性。
2.  说明数据库系统的基本目标、功能、模型、构件、应用和社会影响。
3.  描述数据库系统的组成,给出其应用实例。
4.  明确数据库管理系统的功能,描述他们在数据库系统中的作用。
5.  解释数据独立性的概念及其在数据库系统中的重要性。
6.  使用查询语言从数据库中得到信息。

IM3数据建模(核心)
主题:
   数据建模
概念模型(包括实体-关系模型和UML)
面向对象模型
关系数据模型

学习目标:
1.  根据数据模型提供的用于描述数据库结构的概念类型为数据模型分类——即:概念数据模型、物理数据模型和数据表示模型。
2.  描述建模的概念以及实体——关系模型和UML的符号表示,演示其在数据建模中的应用。
3.  描述面向对象模型的主要概念,如对象标示符、类型构造器、封装、继承、多态和版本进化。
4.  描述关系数据模型的基本原理,定义重要的关系模型术语。
5.  描述关系数据模型的基本原理。
6.  解释建模的概念和关系型数据模型符号表示。

IM4关系数据库(选修)
主题:
把概念模式映象成关系模式
实体和参照完整性
关系代数和关系演算

学习目标:
1.  为使用实体——关系模型开发的概念模型,准备一个关系方案。
2.  解释并演示实体完整性约束和参照完整性约束(包括外码的定义)。
3.  说明来自数学集合论(并、交、差、笛卡尔积)的关系代数操作以及专用于关系数据库的关系代数操作(选择、乘、连接、除)的使用。
4.  使用关系代数进行查询。
5.  使用元组关系演算进行查询。

IM5数据库查询语言(选修)
主题:
数据库语言简介
SQL (数据定义、查询公式、更新子语言、约束、完整性)
查询优化
仿效实例查询(QBE)和第四代环境
过程语言中的嵌入式非过程查询
对象查询语言导引

学习目标:
1.  使用SQL建立一个包含关键字、实体完整性和参照完整性约束的关系型数据库模式。
2.  使用SQL定义数据并使用SQL中的select语句检索数据库信息。
3.  对查询处理策略进行评价并选择最优策略。
4.  通过填充关系模板建立一个非过程查询,从而构造具有所期望的查询结果的实例。
5.  把面向对象的查询嵌入独立语言,如C++或Java( 如SELECT Col.Method() From Object)。

IM6关系数据库设计(选修)
主题:
数据库设计
函数依赖
范式 (1NF, 2NF, 3NF, BCNF)
多值依赖(4NF)
连接依赖(PJNF,5NF)
表示理论

学习目标:
1.  确定两个或多个属性(它们是关系的子集)之间的函数依赖。
2.  描述1NF,2NF,3NF,和BCNF的含义
3.  识别一个关系是否属于1NF,2NF,3NF,和BCNF 。
4.  通过规范化把一个1NF关系转换成为3NF(或BCNF)关系的集合,并反向规格化(denormalize)一个关系模式。
5.  解释规范化对数据库操作效率,尤其是查询优化的影响。
6.  描述什么是多值依赖以及它所规定的约束类型。
7.  解释为什么4NF在方案设计中是有用的。

IM7事务处理(选修)
建议时数:3小时
主题:
事务
失败与恢复
并发控制

学习目标:
1.  通过把SQL嵌入到应用程序中的方式,建立一个事务。
2.  解释隐含提交(implict commits)的概念。
3.  描述高效事务执行的特定问题。
4.  解释什么时候、为什么需要“回滚”以及日志记录是如何保证恰当的“回滚”的。
5.  解释不同的隔离粒度对并发控制机制的影响
6.  选择恰当的隔离粒度实现特定的事务协议。

IM8分布式数据库(选修)
主题:
分布式数据存储
分布式查询处理
分布式事务模型
并发控制
同构和异构方案
客户-服务器

学习目标:
1.  解释分布式数据库设计过程中数据的分段、备份和分配技术。
2.  评价执行分布式查询的简单策略,从中选择数据传输量最小的策略。
3.  解释两段提交协议是如何处理访问了存储在多个结点上数据库的事务的提交的。
4.  描述基于不同拷贝技术和投票表决法的分布式并发控制。
5.  描述客户——服务器模型中的三个软件层次。

IM9物理数据库设计(选修)
主题:
存储与文件结构
索引文件
哈希文件
签名文件
B-树
密集索引文件
变长记录文件
数据库效率和协调

学习目标:
1.  解释记录、记录类型、文件的概念以及把文件记录存入磁盘的不同技术。
2.  举例说明主索引、二级索引和聚簇索引的应用。
3.  区别密集和非密集索引。
4.  使用B-树实现动态多级索引。
5.  解释内部和外部散列技术理论及其应用。
6.  使用散列法简化动态文件扩展。
7.  描述散列法、压缩和高效数据库搜索之间的关系。
8.  评价不同散列模式的代价和收益。
9.  解释物理数据库设计是如何影响事务效率的。

IM10数据挖掘(选修)
主题:
数据挖掘的有用性
关联和顺序模式
数据分簇
购物篮分析(market basket analysis)
数据清洗
数据可视化

学习目标:
1.  对比在研究和应用实践中数据挖掘概念的不同。
2.  解释在商场篮子数据中寻找相互关联的的作用。
3.  描述由关联规则挖掘发现的各类模式的特点。
4.  描述如何扩展关系系统,从而使用关联规则寻找模式。
5.  对有效数据挖掘的方法论问题进行评价。
6.  识别所给数据中噪声源、冗余和异常(outliers)并说明其特点。
7.  确定数据挖掘过程中结束循环的机制(在线聚合、任意时间行为、交互可视化)。
8.  阐述为什么不同的结束循环过程能够提高数据挖掘的有效性。

IM11信息存储与检索(选修)
主题:
字符、字符串、编码、文本
文件、电子出版、标记和标记语言
特里(Tries)、逆序文件、帕特(PAT)树、签名文件、索引
语形学分析、词干、词组、停止列表
检索词频率分布、不确定性、模糊性、加权
矢量空间、概率、逻辑和高级模型
信息需求、关联、评价、效能
主题词表、实体、分类、元数据
文献信息、文献计量学、引用
路由选择和(社区)过滤
搜索和搜索策略、信息搜寻行为、用户建模、反馈
信息汇总与可视化
引用、关键词、分类方案和其它术语的综合
协议和系统(包括Z39.50、OPAC、WWW引擎、研究中的系统)

学习目标:
1.  解释基本信息存储和检索的概念。
2.  阐述有效信息检索的专门问题。
3.  给出使用可选搜索策略的应用,并解释为什么该应用适合于某个特定的搜索策略。
4.  开展基于Internet的研究。
5.  设计并实现一个小型到中型的信息存储和检索系统。

IM12超文本和超媒体(选修)
主题:
超文本模型(早期的历史、Web、Dexter、Amsterdam、HyTime)。
链接服务、引擎和(分布式)超文本结构
结点、复合、定位点
尺寸、单元、位置、范围
浏览、导航、视图、放缩
自动链接产生
表示、转换、同步
写作、阅读和注释
协议和系统(包括Web,HTTP)

学习目标:
1.总结超文本和超媒体模型从早期到现在的演化过程,区别各自的能力和局限性。
2.解释基本的超文本和超媒体的概念。
3.说明对信息表示、转换和同步的基本理解。
4.基于协议和所使用的系统,对比超媒体传送的差异。
5.利用适当的创作工具设计和实现能够利用Web的信息检索应用。

IM13多媒体信息与多媒体系统(选修)
主题:
设备、设备驱动程序、控制信号和协议、DSP(数字信号处理)
应用、媒介编辑器、写作系统和写作
流/结构、捕捉/表示/转换、空间/区域、压缩与编码
基于内容的分析,索引、音频、图像和视频搜索
表示、绘制、同步、多模式集成和接口
实时发送、服务质量、音频/视频会议、视频点播

学习目标:
1.描述通常与多媒体信息和系统有关的媒介和支持设备。
2.解释多媒体表示的基本概念。
3.展示基于内容的信息分析在多媒体信息系统中的运用。
4.从音频、视频、图形学、颜色和其它信息表示概念的适当运用出发,对多媒体表示进行评述。
5.使用商业创作系统实现一项多媒体应用。

IM14数字图书馆(选修)
主题:
数字化、存储和交换
数字对象、合成物和包
元数据、分类、作者提交
命名、储存处、文件夹
空间(概念空间、地理空间、2/3D、VR)
体系结构(代理、总线、包装物/调解者(wrappers/mediators)、互操作性
服务(搜索、连接、浏览等)
知识产权管理、隐私、保护(水印)
归档与保存、完整性

学习目标:
1. 解释建立数字图书馆的基本技术。
2. 描述搜索、连接和浏览的基本服务需求。
3. 评论包括数字图书馆的恰当和不恰当使用的脚本,并确定各自的社会、法律和经济后果。
4. 描述数字图书馆中与归档和信息存储相关问题的一些技术解决方案。
5. 设计并实现一座小型数字图书馆。

社会和专业的问题(SP)
SP1.计算的历史(核心)
SP2.计算的社会背景(核心)
SP3.分析方法和工具(核心)
SP4.职业和道德责任(核心)
SP5.基于计算机系统的风险与责任(核心)
SP6.知识产权(核心)
SP7.隐私与公民的自由(核心)
SP8.计算机犯罪(选修)
SP9. 计算中的经济问题(选修)
SP10.哲学框架(选修)

SP1.计算的历史(核心)
主题:
史前史---1946年以前的世界
计算机硬件、软件和网络的历史
计算先驱
学习目标:
1.  列出计算领域的几位先驱的贡献。
2.  比较个人计算机和Internet出现之前和之后人们日常生活的改变。
3.  确定计算领域历史中重要的、持续的发展趋向。

SP2.计算的社会背景(核心)
主题:
介绍计算的社会内涵
网络的社会内涵
互联网的增长、控制和访问
与性有关的问题
国际事务

学习目标:
1.  说明某特殊实现的社会背景。
2.  确定隐含在一个特殊设计中的假设和价值观。
3.  通过使用经验数据评价一个特殊的实现。
4.  描述计算改变人与人之间交互方式途径的积极和消极方面。
5.  解释一些国家为什么要限制计算/网络的访问。

SP3.分析的方法和工具(核心)
主题:
道德争论及其评价
确定和评价道德选择
理解设计的社会背景
确定假设和价值观

学习目标:
1.  分析某个争论,确定其前提和结论。
2.  说明道德争论中实例、类比和反面类比的应用。
3.  识别基本逻辑推理在争论中的应用。
4.  确定事务中的风险投资者以及我们对他们的责任。
5.  说明在技术决策中道德方面的折衷。

SP4.职业和道德责任(核心)
主题:
我们依赖的社会价值和法律
职业化的本质
各种形式的专业文凭及其优劣
公共政策中职业人员的作用
保持对后果的清醒认识
道德上的异议和检举
道德、行为和实践规范(IEEE,ACM,SE,AITPD等等)
处理骚扰和歧视
实践中计算的”可接受使用”政策。

学习目标:
1.  认识告发事件的发展进程。
2.  说明当相关的职业规范作为职业风范和决策指南时,有哪些优点和不足。
3.  认识软件开发中出现的道德问题,知道如何从技术上和道德上进行解决。
4.  制订具有具体实施手段的计算机使用策略。

SP5.以计算机为基础的系统的风险和责任(核心)
建议时数:2小时
主题:
软件风险的历史实例(如:Therac-25)
软件复杂性的意义
风险评估与管理

学习目的:
1.  解释测试作为保证软件正确性的一种方式的局限性。
2.  阐述正确性、可靠性和安全性的区别。
3.  讨论从现有部件重用中发现尚未发现的问题的潜力。
4.  阐述目前磁盘管理的方法,并说明各自的优缺点。

SP6.知识产权(核心)
主题:
知识产权的基础
版权、专利和商业秘密
软件版权的侵犯
软件专利
知识产权的国际问题

学习目标:
1.  区别专利、版权和商业秘密保护。
2.  在国内法和国际法中讨论版权的法律背景。
3.  解释各国的专利法和版权法会怎样不同。
4.  概述软件专利的发展历史。
5.  讨论软件版权侵犯对软件开发者造成的后果以及相关执行组织的作用。

SP7.隐私和公民自由(核心)
主题:
隐私保护的道德和法律基础
大型数据库系统的隐私的意义
隐私保护的技术策略
电脑空间中的言论自由
国际意义和在不同文化中的意义

学习目的:
1.  总结本国隐私权和言论自由权的法律基础,观察这些概念在国与国之间有什么不同。
2.  说明目前隐私所面临的基于电脑的威胁。
3.  解释互联网在保护言论自由方面会怎样改变历史。
4.  解释网络空间中自由言论的优缺点。
5.  阐述隐私保护的趋向,这些趋向在技术实例中得到证实。

SP8.计算机犯罪(选修)
主题:
计算机犯罪的历史和实例
“黑客行为”及其作用
病毒、蠕虫和特洛伊木马
犯罪预防的策略

学习目的:
1.  概述病毒和拒绝服务攻击的技术基础。
2.  列举反黑客攻击的技术。
3.  讨论几种不同的黑客手段及其动机。
4.  认识专业人员在安全问题上的作用及相关的折衷。

SP9.计算中的经济事务(选修)
主题:
垄断和它的经济上的含义
熟练劳动力的供求对计算产品质量的影响
计算领域的定价策略
访问计算机资源的差异及由此产生的不同效果

学习目标:
1.  总结反垄断的原因。
2.  劳动力供求关系对计算产品质量的影响。
3.  提出解决计算访问限制问题的途径并申明其理由。
4.  概述计算产品和服务定价策略的演化。

SP10.哲学框架(选修)
主题:
哲学框架、特别是功利主义和道德理论
道德的相对论问题
从历史的角度看科学道德
科学方法和哲学方法的不同

学习目的:
1.  总结相对主义、功利主义和道义理论的基本概念。
2.  认识道德理论和职业道德的区别。
3.  指出“雇用代理”方法、墨守陈规、天真的利己主义和相对主义作为道德框架的缺点。

软件工程(SE)
SE1. 软件设计(核心)
SE2. 使用API(核心)
SE3. 软件工具和环境(核心)
SE4. 软件过程(核心)
SE5. 软件软件需求与规格(核心)
SE6. 软件验证(核心)
SE7. 软件演化(核心)
SE8. 软件项目管理(核心)
SE9. 基于构件的计算(选修)
SE10. 形式化方法(选修)
SE11. 软件可靠性(选修)
SE12. 专用系统开发(选修)

SE1. 软件设计(核心)
主题:
基本设计概念和原则
软件体系结构
结构化设计
面向对象的分析和设计
构件级设计
重用设计

学习目标:
1. 讨论好的软件设计应具有的性质。
2.比较并区别面向对象分析和设计与结构化分析和设计的不同。
3.基于主要设计原则和概念评价多个软件设计的质量。
4.在软件应用的构造过程中选择并应用适当的设计模式。
5.利用软件需求规格和通常的程序设计方法和符号(如使用结构化设计或者面向对象设计),为一个中等规模的软件产品生成并描述其软件设计。
6.采用适当指导方针,对软件设计进行评价。
7.在部件级评价软件设计。
8.从软件重用的角度评价软件设计。

SE2.使用API[核心]
主题:
API程序设计
类浏览器和相关工具
根据实例进行程序设计
API环境中的调试
基于构件的计算导引

学习目标:
1. 解释应用程序接口(API)在软件开发中的价值。
2.在应用API的应用的开发过程中,使用类浏览器和相关工具。
3. 设计,编写,测试,和调试使用大规模软件包的程序。

SE3.软件工具和环境[核心]
主题:
程序设计环境
需求分析和设计建模工具
测试工具
配置管理工具
工具集成机制

学习目标:
1. 选择适当的工具集,支持某范围软件产品的开发,并给出选择的原因。
2. 分析和评价已知领域的软件开发工具集(如管理,建模或测试)。
3. 能够使用一些支持中等规模软件产品开发的工具。

SE4.软件过程[核心]
主题:
软件生命周期和过程模型
过程评估模型
软件过程指标

学习目标:
1. 解释软件生命周期及其各个阶段,包括其产生的deliverables。
2.选择,同时证明最适合各种软件产品的开发和维护的软件开发模型。
3.解释过程成熟模型的作用。
4.比较传统的瀑布模型和增量模型、面向对象模型和其他适当的模型的异同。
5.对每一种软件项目过程(senarios),描述项目在软件生命周期中所处的阶段,确定下一步应该完成的特殊任务,以及适合于这些任务的metrics。

SE5. 软件需求与规格(核心)
主题:
需求的抽取
需求分析和建模技术
功能和非功能的需求
原型
形式化规格技术的基本的概念

学习目标:
1.利用启发和分析的关键因素和常用的方法为一个中等规模的软件系统生成其软件需求。
2.讨论维护遗产软件所面临的挑战。
3.使用通常的非形式化方法(以需求规格文档的形式)为一个中等规模的软件系统建模并确定其软件需求。
4.利用最好的实践经验确定文档的质量,从而对软件需求文档进行检查。
5.把使用常用的形式化规格语言写成的软件需求翻译成自然语言。

SE6. 软件验证(validation) [核心]
主题:
验证计划
测试的基本原则,包括测试计划的产生和测试用例的产生
黑盒和白盒测试技术
单元、综合、验证和系统测试
面向对象的测试
检查

学习目标:
1. 区别程序确认和验证。
2.说明软件确认中工具的作用。
3.区别在中等规模软件产品测试中各种不同类型、不同级别的测试(单元、综合、系统和验收)。
4. 对一个中等规模的代码段生成、评价并实现一个测试计划。
5.作为小组活动的一部分,对一中等规模的代码段实施检查。
6. 讨论包括面向对象软件测试在内的各种事项。

SE7. 软件演化(核心)
主题:
软件维护
可维护软件的特点
再生工程(Reengineering)
遗产系统(Legacy systems)
软件重用

学习目标:
1.识别与软件演化相关的主要问题并解释其对软件生命周期的影响。
2.  讨论维护遗产系统时所面临的挑战以及对反向工程(reverse engineering)的需求。
3.  概述回归测试的过程及其在发行管理中的作用。
4.评估需求变动对现有中等规模软件产品的影响。
5.作为对需求变更的响应,为一个中等规模软件产品制定再工程计划。
6.讨论软件重用的优缺点。
7.在指定环境中发掘软件重用的时机。

SE8.软件项目管理[核心]
主题:
队伍管理
--队伍过程(Team processes)
--队伍的组织和决策
--软件队伍的作用和责任
--角色确定和分配
--项目跟踪
--队伍问题的解决
工程调度
软件测量和评价技术
风险分析
软件质量保证
软件配置管理
项目管理工具

学习目标:
1.通过介入一项协作项目,说明开发队伍建立和管理的主要因素。
2.为一软件项目准备项目计划,包括软件规模和人力评估、时间安排、资源分配、配置控制,变动管理,以及对项目风险的认识和管理。
3.比较和区别保证软件产品质量的不同方法和技术。

SE9. 基于构件的计算(选修)
主题:
基本问题
--构件的定义和本质
--构件和接口
--作为合同的接口(Interfaces as contracts)
--构件的好处
基本技术
--构件设计和组织
--与客户—服务器模型和模式的关系
--对象的使用和对象生命周期服务(Use of objects and object lifecycle services)
--对象代理的使用
--编组
应用(包括移动构件的使用)
基于构件系统的体系结构
面向构件设计
事件处理: 检测,通知和反应
中间件
--中间件中的面向对象模式
--对象请求代理
--事务处理监视器
--工作流程(Workflow)系统
--当前的最新工具

学习目标:
1.  解释得到认可的原则,并把这些原则运用到高质量软件部件的构造中。
2.  为适合于特定情况的基于构件的系统讨论并选择一种体系结构。
3.  识别在一个或多个API中实现的事件处理的类别。
4.  解释中间件系统中对象的作用及其与部件的关系。
5.  在一些软件的设计中运用基于部件的方法,这些软件包括包含并发和事务、可靠通信服务、具有远程查询和数据库管理服务的数据库交互、安全通信和访问的软件。

SE10. 形式化方法(选修)
主题:
形式化方法的概念
形式化规格语言
可执行和非可执行规格
前后断言(Pre and post assertions)
形式化验证

学习目标:
1. 在复杂度较低的软件代码中使用形式化验证技术。
2.讨论形式化验证技术在软件确认(validation)和测试中的作用。
3.解释使用形式化规格语言潜在的好处及弊端。
4.为从简单到复杂的多种情况生成并评价前置和后置断言。
5.使用常见的形式化规格语言,对一个简单软件系统进行规格并从质量方面说明其优势。

SE11.软件可靠性[选修]
主题:
软件可靠性模型
冗余和容错
缺陷分类
概率分析方法

学习目标:
1.  展示运用多种方法对软件系统的可靠性进行评估的能力。
2.  识别并在中等规模的应用中利用冗余和容错。
3.  解释在获得很高可靠性的过程中存在的问题。
4.确定具有一定可靠性的软件体系结构的实现方法。

SE12. 专用系统开发(选修)
主题:
实时系统
客户—服务器系统
分布式系统
并行系统
基于网络的系统
高度集成的系统

学习目标:
1.  识别和讨论不同的专用系统。
2.  在为特定环境设计的软件系统中讨论生命周期和软件过程问题。
3.  选择并用适当的理由证明,能够有效地开发和维护专用软件系统的方法。
4.  已知具体环境和一组相关的专业问题,讨论参与开发专门系统的软件工程师应该如何对此作出反应。
5.  概述与专用系统开发相关的核心技术问题。

计算科学和数值计算方法(CN)
CN1数值分析(选修)
CN2.运筹学[选修]
CN3.建模与仿真[选修]
CN4.高性能计算 [选修]

CN1数值分析(选修)
主题:
浮点算术
误差、稳定性和收敛
泰勒级数
根的循环求解(牛顿方法)
曲线拟合; 函数逼近
数值微分和积分(Simpson规则)
显式和隐式方法
微分方程(欧拉方法)
线性代数
有限差分

学习目标:
1.  比较并区别本单元中给出数值分析技术。
2.  定义概念:误差、稳定性、机器精度和计算逼近的不准确性。
3.  识别计算不准确性的来源。
4.  设计、编码、测试和调试实现数值方法的程序。

CN2.运筹学[选修]
主题:
线性程序设计
——整数程序设计
——单纯法(Simplex method)
概率模型
排队理论
——Petri网
——马尔可夫模型和马尔可夫链
优化
网络分析和路由算法
预测和评估
——决策分析
——预告
——风险管理
——经济计量学、微观经济学
——敏感度分析
动态程序设计
试验性应用
软件工具

学习目标:
1.  运用运筹学的基本技术。
2.  描述几个成熟的预测和评估技术。
3.  设计、编码、测试和调试运筹学研究中求解问题的程序。

CN3.建模与仿真[选修]
主题:
随机数
——伪随机数的产生和测试
——蒙特卡洛(Monte Carlo)方法
——分布函数导引
退火模型
——离散事件模拟
——连续模拟
仿真模型的验证和确认
——输入分析
——输出分析
排队理论模型
试验性应用

学习目标:
1.  探讨计算机模拟的基本概念。
2.  评价计算机模拟模型。
3.  比较随机数产生方法的异同。
4.  设计、编码、测试和调试模拟程序。

CN4.高性能计算 [选修]
主题:
高性能计算导引
——计算科学的历史和重要性
——应用领域概述
——所要求技巧的回顾
高性能计算
——处理器体系结构
——高性能的存储器系统
——输入/输出设备
——流水线(pipelining)
——并行语言和体系结构
科学可视化
——结构表示
——数据格式
——可视化工具和工具包
部分问题(sample problems)
——海洋和大气模型
——地震波模型
——N-体系统(Barnes-Hut算法)
——化学反应
——阶段转移
——流体

学习目标:
1.  认识能够使用计算模型改善现有研究方法的问题域。
2.  比较和区别科学和并行计算的体系结构,认识各自的优缺点。

TOP

发新话题