1、程序员考试培训指南一、考试说明1考试目标通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照程序设计规格说明书编制并调试程序,写出相应的程序文档,具有助理工程师(或技术员)的实际工作能力和业务水平。2考试要求(1)掌握数制及其转换、数据的机内表示、算术和逻辑运算、应用数学的基础知识;(2)了解计算机的组成以及各主要部件性能指标;(3)掌握操作系统、程序设计语言的基础知识;(4)熟练掌握基本数据结构和常用算法;(5)熟练掌握 C 程序设计语言以及 C+、Java 中的一种程序设计语言;(6)熟悉数据库、网络和多媒体的基础知识;(7)了解软件工程的基础知识、软件过程基本知识、软件开发项
2、目管理的常识;(8)了解常用信息技术标准、安全性以及有关法律、法规的基础知识;(9)了解信息化及计算机应用的基础知识;(10)正确阅读和理解计算机领域的简单英文资料。3考试科目计算机与软件工程基础知识,考试时间为 150 分钟,笔试,选择题;程序设计,考试时间为 150 分钟,笔试,问答题。二、考试内容说明: “I”、 “II”和“III”表示掌握或熟悉的程度。“I”:对所列知识要理解其内容及含义(理解) 。“II” :在有关问题中能直接使用(一般应用) 。“III”:对所列知识要理解其确切含义及与其它知识的联系,能够进行叙述和解释,并能在实际问题的分析、综合、推理和判断等过程中运用(综合应用
3、) 。考试科目 1:计算机与软件工程基础知识1. 计算机科学基础1.1 数制及其转换 二进制、十进制和十六进制等常用数制及其相互转换 二进制与十进制之间的相互转换(II) 二进制与十六进制之间的相互转换(I)1.2 数据的表示 数的表示 带符号定点数据(纯整数和纯小数)的原码、反码、补码表示(II) 浮点数(实数)的表示(I) 精度和溢出的概念(II) 非数值数据的表示(字符和汉字表示、声音表示、图像表示) 西文字符的表示(I) 汉字的表示方法(I) 声音数据的表示方法(I) 图像数据的表示方法(I)1.3 算术运算和逻辑运算 计算机中二进制数的运算方法 补码表示定点数的相加、相减运算(I)
4、逻辑代数的基本运算 基本的与、或、非逻辑运算(II)1.4 数学应用 常用数值计算 矩阵的基本运算(I) 方程的近似求解(I) 线性插值(I) 排列组合,应用统计 排列组合计算(I) 基本的数据统计分析方法及实例计算(I) 编码基础 ASCII 码的特点及编码计算(II ) 汉字编码的特点(I) 奇偶校验码的特点及实例计算(II) 循环冗余码的定义及构造(I) 海明码的定义及构造(I)1.5 常用数据结构 数组 数组的定义及特点(I) 一维数组元素的存储特点和元素位置计算(II) 二维数组元素的按行存储及按列存储方式的特点及元素的位置计算(II) 静态数组的概念及动态数组的概念(I) 线性表及
5、链表 线性表的定义和基本运算(I) 线性表的顺序存储和特点(I) 指针、结点、头指针和头结点的概念(I) 单向链表的定义及特点(II) 双向链表的定义及特点(I) 环形链表的定义及特点(II) 队列、栈 队列的定义及运算特点(II) 循环队列的定义及运算(I) 队列采用环形链表的运算特点(I) 栈的定义及运算特点(II) 栈采用一维数组存储结构的运算特点(I) 栈采单向链表存储结构的运算特点(I) 树 二叉树的定义(I) 二叉树的顺序存储结构和二叉链表存储结构的特点(II) 二叉树的先序、中序、后序和层序遍历运算的含义(II) 最优二叉树(哈夫曼树)的定义(I) 图 图的定义和常用术语(I)
6、图的邻接矩阵存储结构和邻接表存储结构定义及特点(II)1.6 常用算法 算法与数据结构的关系 算法的定义和特点(I) 算法与数据结构的关系(I) 算法设计和算法描述 基本的算法设计方法(I) 算法的流程图描述和伪代码描述方法(II) 常用的排序算法 插入排序、冒泡排序、选择排序算法(III) 希尔排序、快速排序、堆排序、归并排序算法(II) 查找算法 顺序查找、二分查找过程(III) 常用的数值计算方法(II) 字符串处理算法 (II) 递归算法(I) 最小生成树、拓扑排序和单源点最短路径求解算法(I)2. 计算机系统基础知识2.1 硬件基础知识2.1.1 计算机的类型和特点 微机(PC 机)
7、 、工作站、服务器、主机、大型计算机、巨型计算机、并行机的特点(I)2.1.2 中央处理器 CPU CPU 的组成 CPU 的组成和基本结构(I) 控制器与运算器的基本组成和功能(I) 常用的寄存器 累加器 AC、标志寄存器、通用寄存器组的概念和功能(I) 程序计数器(PC) 、指令寄存器(IR) 、地址寄存器( MAR)和数据寄存器(MDR)的定义和作用(I ) 指令系统,寻址方式 指令系统的概念(I) 指令的概念、格式和类型(I) 立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、间接寻址、相对寻址、变址寻址的含义(I) 指令执行控制,中断控制,处理机性能 指令的执行过程(I) 流水线的基本
8、概念(I) 中断的概念(II)2.1.3 主存和辅存 存储介质(半导体、硬盘、光盘、U 盘等) 半导体存储器的特点(I) 硬盘的参数、容量(II) U 盘的容量和特点(II) 高速缓存(Cache) ,主存 高速缓存(Cache)的概念、作用和基本构成(I) 主存的类型、容量和性能指标(II) 辅存设备 磁盘、磁带、光盘、DVD 盘、U 盘等辅存设备的特点、性能和容量(II)2.1.4 I/O 接口、I/O 设备和通信设备 I/O 接口 I/O 接口的功能(I ) 程序查询方式、中断处理方式的含义和特点(I) DMA(直接存储器存取)方式的含义和特点( I) I/O 设备(类型、特性) 常见
9、I/O 设备的类型和特性( I) 通信设备(类型、特性) 常见通信设备的类型和特性(I) I/O 设备、通信设备的连接方法和连接介质类型 常见 I/O 设备与主机的连接方法( I) 总线的概念、类型和特点(II) 常见通信设备的连接方法(I) 常见连接介质的类型和特点(I)2.2 软件基础知识2.2.1 操作系统基础知识 操作系统的类型和功能 操作系统作用、特征与功能(I) 操作系统分类(I) 嵌入式操作系统的基本概念(I) 网络操作系统的基本概念(I) 分时操作系统与实时操作系统,网络操作系统与分布式操作系统的区别(I) 处理机管理(进程、线程) 进程的定义及组成(I) 进程控制块(PCB)
10、的基本概念( I) 进程状态的三态模型和五态模型(II) 进程间的通信,临界资源、临界区、同步与互斥的基本概念(I) P/V 操作(II ) 进程调度:理解高级调度、中级调度、低级调度、调度方式方面的基础知识(I) 死锁的定义、产生死锁的原因、产生死锁的必要条件(I) 线程的定义,线程与进程的区别() 存储管理 虚拟地址、地址空间、存储空间、地址重定位的基本概念() 固定分区、可变分区、可重定位分区的基本概念() 分页/请求分页存储管理的基本概念与原理( I) 设备管理 设备管理基本概念,块设备、字符设备、独占设备、共享设备、虚拟设备的含义(I) Spooling(Simultaneous P
11、eripheral Operations On Line)定义、组成和结构(I ) 引入缓冲技术的原因与目的(I) 磁盘调度的基本概念:移臂调度、旋转调度(I) 先来先服务 (First-Come First-Served,FCFS) 、最短寻道时间优先SSTF(Shortest Seek Time First)、扫描算法(SCAN ) 、单向扫描调度算法(CSCAN)磁盘调度算法的基本思想(I ) 文件管理 文件、文件系统、文件类型、文件组织结构的基本概念(I) 文件目录的概念,一级目录、二级目录、多级目录的基本概念(I) 文件的存取方法:顺序存取法、直接存取法、按键存取法的基本概念(I)
12、位示图、空闲块表等文件存储空间的管理算法思想(I) 空闲块链、成组链接法的基本概念(I) 作业管理 作业的状态(提交、后备、执行、完成) 、作业控制块和作业后备队列的基本概念(I) 先来先服务、短作业优先、响应比高优先作业调度算法思想(II) 优先级调度算法思想(I) 图形用户界面和操作方法 字符用户界面、图形用户界面的基本特点(I) 常见操作系统的使用(Windows ,Linux ) (II)2.2.2 程序设计语言和语言处理程序的基础知识 语言翻译基础知识 语言翻译的基本概念(I) 汇编的含义和基本过程(I) 编译的基本过程及编译各阶段的基本任务(I) 解释的含义和基本过程(I) 正规表
13、达式的定义(II) 程序设计语言的基本成分:数据、运算、控制和传输 程序设计语言的数据(数据类型) 、运算(运算符和表达式)和语句的类型和功能(I) 函数的参数传递机制:传值、传地址(II) 程序语言类型和特点 过程式程序语言、面向对象程序设计语言、函数式程序设计语言、逻辑程序设计语言的基本特点(I) 脚本语言的概念和基本特点(I)2.3 网络基础知识 网络的功能、分类、组成和拓扑结构 通信子网和资源子网的概念(I) 局域网、城域网和广域网的概念(I) 星形网、树形网、环形网和总线网的概念(I) 基本的网络协议与标准 物理层、数据链路层、网络层、传输层、应用层的基本概念(I) TCP/IP 协
14、议及相关协议的功能(I ) 常用网络设备与网络通信设备的作用和特点 中继器、集线器(HUB) 、网关、交换机、路由器、网桥的基本功能和特点(I) 调制解调器的基本功能和特点(I) Client/Server 结构和 Browser/Server 结构的基本概念和特点(I) 局域网(LAN)基础知识( I) 互联网(Internet )基础知识 互联网的接入方式(I) TCP/IP 协议的属性设置(II) 常用的互联网服务及协议(I) IP 地址的分类、计算(II) 防火墙基本概念(I)2.4 数据库基础知识 数据库管理系统的主要功能和特征 数据库系统(DataBase System ,DBS
15、)定义及组成(I) 数据库管理系统(DataBase Management System,DBMS)功能、特征、组成(I) ,文件系统与数据库系统的差异( II) 数据库模式(概念模式、外模式、内模式) 概念模式(模式) 、外模式(用户模式或子模式) 、内模式(物理模式)的基本概念(II) 三级模式和两级映像(模式/内模式映像、外模式/ 模式映像)的基本概念( II) 数据的逻辑独立性和物理独立性的基本概念(II) 数据模型,ER 图 层次模型、网状模型、关系模型、面向对象模型的基本概念(I) 数据模型的三要素(数据结构、数据操作、数据的约束条件)的含义(I) E-R 模型基本概念(II) ;
16、E-R 图(E-R 模型)向关系模型的转换的基本方法(II) 实体中主键、候选键、外键的基本概念(II) 一对一(1:1) 、一对多(1:n) 、多对多(m :n)联系类型的含义(II) 简单属性、复合属性、单值属性、多值属性、NULL 属性、派生属性的含义(I) 数据操作(关系运算) 关系数据库、关系数据库模式基础知识(I) 关系模型的实体完整性、参照完整性、用户定义完整性的基本概念(I) 并、差、笛卡尔积、投影、选择关系运算的基本概念(II) 扩展的关系运算中选择、投影、连接运算方法(I) 数据库语言(SQL) 数据定义语言(DDL):CREATE TABLE (创建表)的应用(II )
17、数据操纵语言(DML) :SELECT(查询)、INSERT(插入)、DELETE( 删除)和UPDATE(修改) 的应用(II ) 完整性(integrity)定义:PRIMARY KEY、FOREIGN KEY REFERENCES 使用方法(II) 权限管理:GRANT 和 REVORK 使用方法(II) 数据库的主要控制功能(并发控制,安全控制) 事务的基本概念、事务的特性、故障的类型(I) 数据不一致性(丢失修改、不可重复读、读脏数据)的基础知识(I) 并发控制中活锁/死锁、可串行性、两段锁协议的基本概念(I) 安全控制(权限机制、视图机制、加密机制)的基本概念(I)2.5 多媒体基
18、础知识 多媒体基本知识 多媒体的概念,感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体的基本概念(I) 多媒体的特征:多样性、集成性、交互性、非线性、实时性、信息使用的方便性和信息结构的动态性方面的基本概念(I) 声音信号、声音信号的数字化、波形声音的基本概念(I) 色彩的三基色、彩色空间、三要素(亮度、色调和色饱)基本概念(I) 图形和图像的基本概念(I) 图像分辨率与显示分辨率、像素深度、真/伪彩色,图像的压缩标准的基本概念(I) 常用多媒体设备性能特征,常用多媒体文件格式类型 多媒体计算机系统的硬件组成方面的基础知识(I) 常用多媒体设备、性能及特征方面的基础知识(I) 常见的声音、图形
19、图像、视频文件类型(I)2.6 系统性能指标 响应时间、吞吐量、周转时间基本概念(I) 可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性基本概念(I)2.7 计算机应用基础知识 计算机常用办公软件操作方法 字处理软件 Word 的常用功能及操作(I ) 表处理软件 Excel 的常用功能及操作( I) 计算机的应用 计算机在信息管理、数据处理的应用范围及相关技术,以及在辅助设计、自动控制、科学计算、人工智能等领域的应用(I) 远程通信服务(I)3系统开发和运行知识3.1 软件工程和项目管理基础知识 软件开发生存周期各阶段的目标和任务(可行性分析和项目开发计划、需求分析、软件设计、
20、编码、测试、维护) (I) 软件能力成熟度模型 CMM、统一过程(UP ) 、极限编程( XP)的基本概念(I) 软件开发项目管理(成本估算、风险分析、进度管理(Gantt 图、PERT 图) 、人员管理)基本概念(I) 结构化方法、面向对象方法的基本概念(II) 软件工具与软件开发环境(分析工具、设计工具、编程工具、测试工具、维护工具、CASE) (I) 软件质量管理基础知识(软件质量特性(ISO/IEC 9126 软件质量模型、软件质量保证) (I )3.2 系统分析设计基础知识 数据流图(DFD) 、实体联系图(ER 图)的基本概念(I) 面向对象设计、以过程为中心的设计、以数据为中心的
21、设计方法的基本概念(I) 结构化分析方法(数据流图的基本构成、数据字典、加工逻辑的描述(结构化语言、决策表、决策树) ) (I) 结构化设计方法(数据流的类型、结构化设计的基本步骤) (I) 软件详细设计(模块设计、代码设计的基本原则、输入/输出设计的基本原则、用户界面设计的基本原则) (I)3.3 程序设计基础知识 结构化程序设计方法 自顶向下、逐步求情的设计理念,三种基本控制结构(I) 使用流程图、NS 图、PAD 图进行处理过程的设计(II) 程序设计风格源程序中的内部文档、数据说明、语句构造、输入输出、效率(II)3.4 程序测试基础知识 程序测试的目的、原则、对象、过程与工具(I)
22、用黑盒法设计测试用例 等价类划分、边界值划分、错误推测、因果图(II) 用白盒法设计测试用例 逻辑覆盖、循环覆盖、基本路径测试(II) 测试设计和管理(I)3.5 程序设计文档基础知识 接口的描述、程序逻辑的描述、程序规格说明书(I) 模块测试计划、模块测试用例、模块测试报告(I)3.6 系统运行和维护基础知识 系统运行管理基础知识(II) 系统维护的类型和含义 正确性维护、适应性维护、完善性维护、预防性维护(II)4. 信息安全基础知识 信息系统安全基础知识 计算机设备安全、软件安全、网络安全、信息安全的基本概念(I) 信息系统安全管理 防治计算机病毒、防范计算机犯罪、访问控制、防闯入、防灾
23、、安全保密措施(I) 加密与解密基础知识 常用的加密方法和解密方法(I)5标准化基础知识 标准化基本概念 标准化的目的、意义,组织机构、内容、分类、代号与编号规定(I) 标准的层次 国际标准、国家标准、行业标准、企业标准的表示方法(II) 相关标准的基本概念 代码标准(汉字编码标准) 、文件格式标准、安全标准、软件开发规范和文档标准、互联网相关标准的基本概念(I)6信息化基础知识 信息、信息资源、信息化、信息工程、信息产业、信息技术的含义(I) 全球信息化趋势,国家信息化战略,企业信息化战略和策略常识(I) 有关的法律、法规要点 软件著作权的概念(II) 软件著作权主体与客体、权利内容、权利归
24、属(II) 发表权、署名权、修改权、复制权、发行权、翻译权(I) 专利法、商标法、商业秘密权(I) 专利法、商标法、商业秘密权对软件的保护知识(I) 企业信息资源管理常识(I)7计算机专业英语 具有助理工程师/技术员所要求的英语阅读水平(I) 掌握本领域的英语基本术语(I)考试科目 2:程序设计1. 内部设计1.1 理解外部设计 1.2 软件功能划分和确定结构 数据流图(DFD) ,结构图 (I)1.3 物理数据设计 确定数据组织方式、存储介质,设计记录格式,处理方式(I)1.4 详细输入输出设计 界面设计、报表设计等(II)1.5 内部设计文档 程序接口、程序功能、人机界面、输入输出、程序流
25、程图、测试计划(II)1.6 内部设计评审2. 程序设计2.1 模块划分(原则、方法、标准)2.2 编写程序设计文档 模块规格说明书(程序处理逻辑,输入输出数据格式) (II) 测试要求说明书(测试类型和目标,测试用例,测试方法) (II)2.3 程序设计评审3. 程序实现3.1 编程 编程方法和规范 (I) 程序设计语言的选择和使用(I) 人工走查 (II) 程序文档化(II)3.2 程序测试 测试环境和测试工具的选择和使用(I) 测试数据的设计(II) 测试报告的编写(I)4. 程序设计语言(C 语言为必选,再在 C、C+、Java 语言中任选一种)4.1 C 程序设计语言 语法,程序结构 (III) 基本类型数据的定义和声明 (III) 数组、结构体、共用体类型数据的定义和声明 (III) 表达式和可执行语句 (III) 函数定义和调用,标准库函数的使用 (III) 指针的使用 (II) 文件的基本操作 (III)4.2 C+程序设计语言 面向对象程序设计与 C+基本语法 面向对象程序设计的基本概念与术语(I) C+基本数据类型、各种表达式与语句(III) C+的数组、结构、指针以及函数的使用(III) 类、成员、构造函数(Constructor) 、析构函数(Destructor )