查字典查字典考研网快讯,据西北师范大学研究生院信息2015年西北师范大学085212软件工程考研大纲已发布,详情如下:
《程序设计与数据结构》科目考试大纲
(科目代码:821)
一、考核要求
《程序设计》、《数据结构》两门课程均是软件工程专业的核心课程。学习程序设计课程的主要目的是培养学生编写程序的基本能力以及计算思维,掌握程序设计语言(C或C++)的基本成分、语法规则等基本知识,建立起结构化程序设计思想和方法,为以后系统学习其他专业课程奠定基础。
而编写程序、用计算机解决一个问题,就要将反映问题的数据信息存入计算机,并设计能解决问题的算法。数据结构就是回答计算机如何存储各种数据及数据之间的关系,以及对数据做基本处理的算法实现。要求考生比较系统地理解数据结构的基本概念和基本理论,掌握常用数据结构及其基本算法,具有综合运用数据结构知识解决问题的能力。
《程序设计与数据结构》的考核分为程序设计和数据结构两部分,分值各占50%。程序设计部分考核学生对结构化程序设计方法和设计思想的掌握情况以及独立编程的能力;数据结构部分考核学生对常用数据结构以及相关基本算法的掌握和运用能力。
二、考核评价目标
通过考核,选拔出具有较好的C或C++语言编程能力和初步的数据结构软件设计开发能力的学生来攻读软件工程学科的硕士研究生。考核评价目标应使录取的研究生具有较扎实与系统的从事软件工程学科的进一步学习及科研工作所需的程序设计能力及系统软件开发技能,为以后从事的研究、开发工作提供必要的软件基础和基本技能。而对程序设计的具体编程语言、数据结构的定义和算法描述语言,学生既可以选择C,也可以选择C++。
三、考核内容
程序设计部分(分值比例:50%)
第一章程序基本知识与简单程序设计
【考试内容】
C或C++程序的基本知识、简单程序的设计
【考试要求】
(1)理解C或C++程序的基本构成,变量的定义与变量名的基本规则;
(2)领会类型修饰的使用和功能,整型与字符型数据的混合运算;宏常量(或称符合常量)的定义。
(3)掌握算术表达式、赋值表达式与逗号表达式;数据的输入与输出。
第二章选择结构程序设计
【考试内容】
条件选择语句if和switch的语法及其应用
【考试要求】
(1)领会if语句与条件表达式的区别、switch语句的执行流程。
(2)掌握if语句与switch语句在程序中的使用。
第三章循环控制
【考试内容】
for、while、do-while三种循环控制语句的语法特点和应用
【考试要求】
(1)理解for、while、do-while语句的执行流程及其循环条件表达式的作用和它们在循环控制上的区别;
(2)掌握break与continue语句的区别与应用
(3)能熟练地用三种循环语句进行循环程序设计。
第四章函数与模块化程序设计
【考试内容】
C或C++中函数的定义和使用
【考试要求】
(1)理解全局变量与局部变量、变量的生存期与作用域、变量的动态与静态存储方式等的区别;
(2)了解在多个程序文件中函数与函数的关系;
(3)熟练掌握在程序设计中正确使用函数;对于已知的递归算法,能写出相应的递归程序。
第五章数组
【考试内容】
一维和二维数组的定义及其应用
【考试要求】
(1)理解一维数组与二维数组的地址结构、字符串的结束标志;
(2)掌握常用的几个字符串函数;
(3)掌握在程序设计中应用一维数组、二维数组、字符串;
(4)掌握对数组进行简单排序和查找的方法;
(5)理解数组做函数参数的程序设计。
第六章指针
【考试内容】
C或C++中指针的概念、定义、运算和应用
【考试要求】
(1)理解一维数组与二维数组的地址结构;
(2)理解返回指针的函数与函数指针的区别;
(3)理解指针数组、数组指针、指向指针的指针之间的关系与区别;
(4)理解指针运算的用途和意义;
(5)掌握在程序中利用指针操作数组元素、字符串,以及用指针作函数参数;掌握在程序中应用指针数组。
第七章结构体、共用体和枚举类型数据
【考试内容】
结构体、共用体、枚举等自定义数据类型的定义和运用
【考试要求】
(1)理解结构体与共用体的区别;
(2)掌握结构体、共用体、枚举类型数据的应用,会用typedef定义结构体、共用体等数据类型别名。
第八章预处理命令
【考试内容】
C或者C++中预处理命令的使用
【考试要求】
(1)理解执行预处理命令的时机、宏定义替换规则;
(2)了解带参宏定义与函数的区别;
第九章位运算
【考试内容】
位运算的概念及其应用
【考试要求】
(1)理解位运算的概念、位段的概念;
(2)理解如何在程序中应用位运算。
第十章文件
【考试内容】
文件的打开和读取
【考试要求】
(1)理解文件指针的概念和定义;
(2)掌握文件的打开方法、文件打开函数返回值的处理;
(3)掌握在程序中读写外部的文本文件或者二进制文件的方法。
数据结构部分(分值比例:50%)
第一章基本概念
【考试内容】
数据结构的基本概念;渐进算法分析方法。
【考试要求】
(1)掌握数据结构的概念,包括数据的逻辑结构、存储结构、算法的概念,以及它们之间的关系。
(2)掌握渐进算法分析方法,能够估算算法的时空复杂度
第二章线性表和字符串
【考试内容】
线性表的特点,线性表的顺序实现和链式实现,线性表的应用;字符串的基本运算,字符串匹配算法。
【考试要求】
(1)理解线性表的结构和特点,掌握线性表上基本操作的实现算法。
(2)掌握顺序存储线性表的方法以及基本操作的实现算法。
(3)掌握链接存储线性表的方法,并掌握单链表和循环链表的结构,以及基本操作的实现算法。
(4)理解字符串的存储结构,字符串的基本运算。
(5)掌握字符串简单的匹配算法。
第三章栈和队列
【考试内容】
栈和队列的基本运算及其应用。
【考试要求】
(1)理解栈的定义和结构特点,掌握其存储方式(顺序存储和链接存储)和基本操作的实现算法。
(2)理解队列的结构和特点,掌握其存储方式(顺序存储和链接存储)和基本操作的实现算法。
第四章递归
【考试内容】
递归的基本概念,递归的简单应用。
【考试要求】
(1)理解递归的基本概念和实现原理,掌握用递归思想描述问题和构造算法的方法。
(2)掌握求阶乘、汉诺塔等问题的递归解法。
(3)了解用栈将递归改为非递归的方法。
第五章树和二叉树
【考试内容】
树和二叉树
【考试要求】
(1)理解树的结构和定义,掌握树的主要概念。
(2)理解各种二叉树的结构,掌握其特点。
(3)掌握二叉树的三种遍历方法的实现原理和性质,能将二叉树的遍历方法应用于求解二叉树的叶子结点个数。二叉树计数等问题,掌握遍历的非递归实现方法。
(4)理解树的存储结构,掌握树的遍历等方法的实现。
(5)理解霍夫曼编码的基本原理。
第六章集合和搜索
【考试内容】
集合、二叉搜索树和AVL树
【考试要求】
(1)理解集合的基本概念,掌握常用实现集合的各种存储方法。
(2)掌握无序线性表的顺序搜索、有序线性表的二分搜索。。
(3)理解二叉搜索树的定义和特点,掌握二叉搜索树插入和删除的算法。
(4)理解AVL树的定义和特点,掌握AVL树上插入新结点的方法。
第七章图
【考试内容】
图的存储,图的遍历,最小生成树,最短路径和活动网络。
【考试要求】
(1)掌握图的基本概念、图的邻接矩阵存储方式和邻接表存储方式。
(2)掌握图的深度优先遍历和广度优先遍历方法。
(3)掌握Kluskal和Prim生成最小生成树的方法。
(4)掌握Dijkstra求单源最短路径的方法。
(5)掌握AOV活动网络的拓扑排序方法,AOE活动网络的关键路径的方法。
第八章排序
【考试内容】
插入排序、交换排序、选择排序、归并排序和基数排序。
【考试要求】
理解各种排序方法的实现,掌握各种排序算法的特点和时间复杂度,能按指定的排序方法实现对数表做排序。
第九章索引结构与散列
【考试内容】
线性索引结构、B+树和B-树索引结构、散列。
【考试要求】
(1)理解线性索引结构的特点。
(2)理解B+树和B-树索引的结构,掌握B+树和B-树插入和删除方法。
(3)理解散列的实现原理,能按指定的散列函数和解决冲突的方法构造散列表。
四、参考书目
1.《C语言大学使用教程》(第二版)苏小红等编著电子工业出版社
2.《数据结构(C语言版)》严蔚敏、吴伟民编著清华大学出版社
《软件工程与数据库原理》综合复试
科目考试大纲
(科目代码:956)
一、考核要求
《软件工程》是研究软件开发和软件管理的一门工程科学,是软件工程专业的主干课。数据库技术是开发大型软件应用系统的核心技术,《数据库原理》是软件工程专业的一门必修课程。软件工程与数据库技术是软件工程学科研究人员、软件分析设计人员、程序开发人员、软件测试人员与软件管理人员必不可少的专门知识。
《软件工程与数据库原理》的考核分为软件工程计和数据库原理两部分,考核比重为:软件工程占60%,数据库原理占40%。软件工程考核学生对软件工程基本原理、方法与技术的掌握情况以及软件项目开发中数据库设计技术的应用能力。数据库原理部分考核学生数据库的基本概念、原理的掌握情况以及在主流数据库管理系统之上进行应用软件系统开发的能力。
二、考核评价目标
通过考核,要选拔具备软件工程学科深入学习及软件项目研发所需基础理论与技能的本科生来攻读本学科硕士研究生,考核评价目标如下:
"掌握软件开发基础原理、方法、技术、工具、管理和过程;
"掌握关系数据库基本理论知识与主流数据库基本操作方法;
"能运用软件工程的基本原理进行软件项目的分析、设计、实现和维护;
"能运用数据库基础理论与模型进行数据库设计;
"具有良好的软件工程能力和素质。
三、考核内容
软件工程部分(分值比例:60%)
第一章软件工程概论
【考核内容】
软件危机的概念、产生原因、解决途径;软件工程的概念、基本原理;软件生命周期;主要的软件过程模型:瀑布模型、快速原型模型。
【考试要求】
(1)理解软件危机的产生原因及解决途径;
(2)掌握软件工程的基本原理;
(3)掌握软件生命周期的阶段划分及主要软件过程模型。
第二章可行性研究
【考核内容】
可行性研究的任务、可行性研究过程;数据流图的概念及相关符号;数据字典的概念、内容、定义方法和用途。
【考试要求】
(1)理解软件项目可行性研究的必要性;
(2)掌握数据流图及数据字典的概念及用途。
第三章需求分析
【考核内容】
需求分析的任务;实体联系图的作用、符号意义;数据规范化三个范式的定义;状态图的符号,需求验证的内容。
【考核要求】
(1)理解软件项目需求分析的内容;
(2)能够根据陈述绘制ER图;
(3)能够根据给定条件能判断一个关系属于第几范式。
第四章总体设计
【考核内容】
总体设计的概念、设计步骤;模块化的概念、作用,模块化程度与软件开发工作量的关系;Miller法则,模块独立性的重要性,模块耦合及其分类,模块内聚及其分类,模块设计的几条启发式规则及与之相关的概念(深度、宽度、扇出、扇入、作用域);结构图的符号及其意义。
【考核要求】
(1)掌握总体设计的概念与设计步骤;
(2)理解软件总体设计中模块化的作用,模块化程度与软件开发工作量的关系;
(3)掌握Miller法则;
(4)理解5种模块耦合形式:数据耦合、控制耦合、特征耦合、公共耦合、内容耦合;
(5)理解7中模块内聚形式:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚;
(6)掌握模块设计的启发式规则及相关概念。
第五章详细设计
【考核内容】
程序流程图的符号,盒图的符号,PAD图的符号,判定表与判定树的作用与特点,程序复杂程度的定量度量。
【考核要求】
(1)能够根据陈述绘制相应处理的程序流程图、盒图、PAD图、判定表、判定树;
(2)掌握程序复杂程度的两种定量度量方法:程序图和环域复杂度。
第六章系统实现与测试
【考核内容】
编程语言的选择标准,良好的编程风格应遵循的规则,软件测试的定义,测试方法的种类(黑盒与白盒)和要求,测试的种类(单元测试、集成测试、确认测试)及其对应的阶段与对象,测试与调试的区别。
【考核要求】
(1)理解良好的编程风格应遵循的规则;
(2)掌握软件测试的概念及测试步骤;
(3)掌握两类常用软件测试方法:黑盒测试法与白盒测试法。
第七章软件维护
【考核内容】
维护的定义及特点,软件可维护性及决定软件可维护性的因素。
【考核要求】
(1)理解软件维护的类型;
(2)了解决定软件可维护性的主要因素。
第八章面向对象方法学
【考核内容】
面向对象的基本概念,面向对象的模型(用例图、类图、状态图、顺序图或事件跟踪图)的符号及其作用;面向对象设计框架;软件重用的概念与重用级别;面向对象编程、面向对象测试。
【考核要求】
(1)掌握面向对象的基本概念
(2)掌握面向对象的软件工程方法;
(3)掌握对象模型的结构、对象模型的建立、动态模型的建立、功能模型的建立;
(4)掌握面向对象设计系统的基本框架;
(5)理解软件重用的概念与软件重用的内容;
(6)了解面向对象程序设计语言的特点。
第九章软件项目管理
【考核内容】
软件规模估算技术,进度管理技术(甘特图、工程网络PERT图),软件质量的概念与软件质量的保证措施,软件配置的概念,CMM的5个级别。
【考核要求】
(1)掌握软件项目管理的定义及要素;
(2)能够根据任务分解表绘制甘特图和工程网络,估算项目进度,确定关键路径。
数据库原理部分(分值比例:40%)
第一章绪论
【考核内容】
数据库系统的特点及其相关概念;数据模型;数据库系统的结构;网状数据库和层次数据库。
【考核要求】
(1)掌握数据、数据库、数据库管理系统等概念;数据库管理系统的基本功能;
(2)掌握三种数据模型(层次模型、网状模型、关系模型)的概念;关系模型的三种完整性约束;
(3)掌握用E-R模型描述现实世界的方法。
第二章关系数据库
【考核内容】
关系模型的基本概念;关系代数;关系演算。
【考核要求】
(1)掌握关系模型的基本概念;
(2)掌握关系代数的基本运算;
(3)掌握元组关系演算和域关系演算。
第三章关系数据库标准语言SQL
【考核内容】
SQL概貌、特点及其相关基本概念;SQL数据定义功能;SQL数据操纵功能;数据查询;视图的定义和作用;SQL数据控制功能
【考核要求】
(1)掌握SQL的相关基本概念;
(2)能够熟练运用SQL语句定义数据表、修改数据表、撤消基本表、定义和撤消索引;
(3)能够熟练正确地使用SQL完成对数据库的查询、插入、删除、更新操作;
(4)理解视图的概念,掌握用SQL语句定义和撤消视图、针对视图的查询方法;
(5)理解数据库安全性的含义和授权机制;理解数据库完整性的含义和完整性约束条件;掌握用SQL语句授权和收回权限的操作方法。
第四章关系数据库规范理论
【考核内容】
关系规范化的作用;函数依赖;关系模式的规范化。
【考核要求】
(1)理解关系规范化理论在数据库设计中的作用;
(2)理解属性之间的联系类型;掌握候选码、主码、主属性、非主属性、单码、全码等概念;函数依赖和码的唯一性;
(3)理解第一范式,第二范式、第三范式、BCNF的定义及各个级别范式中存在的问题(插入异常、删除异常、数据冗余)和解决方法;
(4)掌握判定关系模式的规范化程度的方法,能够应用规范化的理论规范关系模式到第三范式。
第五章数据库设计
【考核内容】
数据库设计的任务、一般策略、步骤和基本概念;概念结构设计;逻辑结构设计;物理结构设计;数据库实时和维护。
【考核要求】
(1)掌握数据库设计的任务,数据库设计涉及到的基本概念,数据库设计的一般策略,数据库设计的步骤;了解数据库设计的主流方法;
(2)掌握从现实世界出发设计数据库概念结构(E-R模型)的方法;
(3)掌握从E-R模型转换为关系模型的方法。
第六章关系查询处理和查询优化
【考核内容】
关系数据库系统的查询优化算法;RDBMS的查询处理步骤;查询优化的基本概念,查询优化的两种类型:代数优化和物理优化。
【考核要求】
(1)理解关系数据库查询优化的重要性;
(2)掌握关系数据库系统的查询优化方法,能够把SQL语句转换成查询树;对查询树进行代数优化,转换成优化的查询树。
第七章数据库保护
【考核内容】
并发控制基本概念和基本技术;数据库恢复基本概念和基本技术;数据库安全基本概念和基本技术;完整性约束条件。
【考核要求】
(1)理解并发访问可能出现的问题;封锁及锁的类型;死锁概念;并发调度的可串行性;掌握三级封锁协议,死锁的预防和解除方法;
(2)了解数据库故障种类和常用数据库恢复手段,理解针对不同故障的恢复方法;
(3)掌握数据库安全涉及到的方法手段,包括:用户标识和鉴别方法,访问控制,审计,数据加密等;
(4)掌握数据库访问授权方法,包括授权命令GRANT和撤销权限命令REVOKE;
(5)了解数据库完整性约束条件。
四、参考书目
[1]张海藩.软件工程导论.北京:清华大学出版社,2008年2月.
[2]王珊,萨师煊.数据库系统概论(第4版).北京:高等教育出版社,2006年5月.