计算机科学概论

第一章 计算机全景
用户概念进化:
- 程序设计员:编写程序解决自己或者他人问题
 - 系统程序员:为其他程序员编写越来越复杂的工具
 - 计算机用户:应用程序员为广大非程序员用户编写用户友好的应用软件
 
2001年计算学科主题领域:

第二章 二进制
第三章 数据表示法
二进制负数补码:negative(I) = 2 ^ k - I,或者按位取反加1(符号位不变)
ASCII (American Standard Code Information Interchange), 8位表示256种字符
Unicode字符集,一般16位,扩充非英文字母的符号,前256与ASCII保持一致
Huffman encoding:变长二进制串表示字符,使常用字符具有较短的编码
第四章 门与电路
第五章 计算部件
冯诺伊曼体系结构:
- 内存单元
 - 算术逻辑单元(ALU, Arithmetic Logic Unit): 加减乘除/比较
- 寄存器(register):现代ALU上的特殊存储单元
 
 - 输入/输出单元(I/O Unit)
 - 控制单元(control unit):控制读取-执行周期
- 指令寄存器(IR, Instruction Register): 存放当前正在执行的指令的寄存器
 - 程序计数器(PC, Program Counter): 存放下一条要执行的指令的地址的寄存器
 
 
ALU与控制单元合称中央处理器(CPU, Central Processing Unit)
第六章 程序设计语言
- 机器语言
 - 汇编语言
 - 高级语言
 - 算法 -> 伪代码 -> 代码实现
 
第七章 问题求解与算法设计
- 如何解决问题
 - 提出问题
 - 寻找熟悉的情况
 - 分治法
 - 算法
 计算机问题求解:
- 分析/说明问题
 - 开发/测试算法:解决方案的逻辑方案
 - 编码/测试:程序设计语言翻译算法
 - 使用/维护
 
设计思想
- 信息隐蔽(information hiding): 高层设计时隐蔽低层的细节。这样低层细节的改变不会影响高层的设计。
 - 抽象(abstraction):抽象是信息隐蔽的结果
 
第八章 抽象数据类型与子程序
第九章 面向对象设计与高级程序设计语言
高级程序设计语言
- 编译型,需要编译器翻译成机器码
 - 解释型,解释器在翻译过语句后直接执行语句,可以理解为解释器是这类高级语言的模拟器
 
命令式范型(pattern?)
- 面向过程
 - 面向对象
 
声明式范性
- 函数式模型
 - 逻辑编程
 
第十章 操作系统
内存管理
- 单块内存管理
 - 固定分区内存管理
- 最先匹配
 - 最优匹配
 
 - 动态分区内存管理
- 最差匹配
 
 - 页式内存管理
 
CPU管理
- 周转周期:进程进入准备就绪到最终完成之间的时间间隔。系统平均周转周期越小越好。
 - 先到先服务
 - 最短作业优先
 - 轮询服务
 
第十一章 文件系统和目录
第十二章 信息系统
- 数据库管理系统
 
第十三章 人工智能
语义网(semantic network):表示对象之间关系的知识表示法
检索树(search tree):表示对抗性情况(如博弈)中的所有选择的结构
第十四章 图形学
第十五章 网络
第十六章 万维网
第十七章 计算机安全
- 信息安全:保密性(confidentiality)/完整性(integrity)/可用性(availablility)