(4)主要仪器: 硬件环境:PC-386以上微机: 软件环境:Windows操作系统,Microsoft Visual C+6.0集成开发工具。 实验项目(九)(2学时):综合程序设计(二) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 给出相对复杂的综合性设计题目,要求学生分组完成。 (4)主要仪器: 硬件环境:PC-386以上微机: 软件环境:Windows操作系统,Microsoft Visual C++6.0集成开发工具。 实验项目(十)(2学时):指针程序设计(二) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握使用数组的指针,掌握使用指向字符串的指针变量,掌握使用指向函数的指针变 量,掌握指针数组、指向指针的指针的概念,学会利用指针进行程序设计的方法。 (4)主要仪器: 硬件环境:PC-386以上微机: 软件环境:Windows操作系统,Microsoft Visual C+6.0集成开发工具。 实验项目(十一)(2学时):函数程序设计(二) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握全局变量、局部变量、动态变量、静态变量使用方法。掌握函数的嵌套调用方法 和递归调用方法。 (4)主要仪器: 硬件环境:PC-386以上微机: 软件环境:Windows操作系统,Microsoft Visual C++6.0集成开发工具。 实验项目(十二)(2学时):综合程序设计(三) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 给出相对复杂的综合性设计题目,要求学生分组完成。 (4)主要仪器: 硬件环境:PC-386以上微机: 软件环境:Windows操作系统,Microsoft Visual C+6.0集成开发工具。 23
23 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具。 实验项目(九)(2 学时):综合程序设计(二) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 给出相对复杂的综合性设计题目,要求学生分组完成。 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具。 实验项目(十)(2 学时):指针程序设计(二) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握使用数组的指针,掌握使用指向字符串的指针变量,掌握使用指向函数的指针变 量,掌握指针数组、指向指针的指针的概念,学会利用指针进行程序设计的方法。 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具。 实验项目(十一)(2 学时):函数程序设计(二) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握全局变量、局部变量、动态变量、静态变量使用方法。掌握函数的嵌套调用方法 和递归调用方法。 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具。 实验项目(十二)(2 学时):综合程序设计(三) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 给出相对复杂的综合性设计题目,要求学生分组完成。 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具
实验项目(十三)(2学时):结构体和共同体程序设计 (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握结构体类型变量的定义和使用方法。掌握结构体类型数组的定义和使用方法。掌 握指向结构体的指针变量的定义和使用方法。掌握共用体的定义和使用方法。 (4)主要仪器: 硬件环境:PC-386以上微机: 软件环境:Windows操作系统,Microsoft Visual C+6.0集成开发工具。 实验项目(十四)(1学时):文件程序设计 (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握文件和文件指针的概念。学会使用文件打开、关闭、读、写等文件操作函数。掌 握利用文件读入和保存数据的方法。 (4)主要仪器: 硬件环境:PC-386以上微机; 软件环境:Windows操作系统,Microsoft Visual C+6.0集成开发工具。 实验项目(十五)(2学时):综合程序设计(四) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 给出相对复杂的综合性设计题目,要求学生分组完成。 (4)主要仪器: 硬件环境:PC-386以上微机: 软件环境:Windows操作系统,Microsoft Visual C+6.0集成开发工具。 八、学时分配 章目 教学内容 教学环节 理论教学学时 实验教学学时 程序设计基本概念 3 1 C程序设计的初步知识 3 1 三 顺序结构 4 1 四 选择结构 4 2 五 循环结构 6 3 六 字符型数据 4 3 七 函数 5 4 八 地址和指针 5 4 九 数组 7 5 24
24 实验项目(十三)(2 学时):结构体和共同体程序设计 (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握结构体类型变量的定义和使用方法。掌握结构体类型数组的定义和使用方法。掌 握指向结构体的指针变量的定义和使用方法。掌握共用体的定义和使用方法。 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具。 实验项目(十四)(1 学时):文件程序设计 (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 掌握文件和文件指针的概念。学会使用文件打开、关闭、读、写等文件操作函数。掌 握利用文件读入和保存数据的方法。 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具。 实验项目(十五)(2 学时):综合程序设计(四) (1)项目类别:必做 (2)项目性质:验证性、设计性 (3)项目主要目的要求: 给出相对复杂的综合性设计题目,要求学生分组完成。 (4)主要仪器: 硬件环境:PC-386 以上微机; 软件环境:Windows 操作系统,Microsoft Visual C++ 6.0 集成开发工具。 八、学时分配 章目 教学内容 教学环节 理论教学学时 实验教学学时 一 程序设计基本概念 3 1 二 C 程序设计的初步知识 3 1 三 顺序结构 4 1 四 选择结构 4 2 五 循环结构 6 3 六 字符型数据 4 2 七 函数 5 4 八 地址和指针 5 4 九 数组 7 5
十 字符串 4 2 十一 对函数的进一步讨论 2 1 十二 C语言中用户标识符的作用域和存 储类 4 1 十三 编译预处理和动态存储分配 3 1 十四 结构体、共用体和用户定义类型 4 2 十五 位运算 2 1 十六 文件 4 总计 64 32 九、课程考核方式 1.考核方式:闭卷考试 2.成绩构成:总成绩=平时成绩(作业,考勤,上机等)30%+期末成绩(卷面分数)*70% 十、选用教材和参考书目 [1]《全国计算机等级考试二级教程一C语言程序设计》,田淑清等,高等教育出版社, 2016 [2]《C程序设计》(第五版),谭浩强,清华大学出版社,2015 [3]《C程序设计》学习辅导(第五版),谭浩强,清华大学出版社,2015 26
25 十 字符串 4 2 十一 对函数的进一步讨论 2 1 十二 C 语言中用户标识符的作用域和存 储类 4 1 十三 编译预处理和动态存储分配 3 1 十四 结构体、共用体和用户定义类型 4 2 十五 位运算 2 1 十六 文件 4 1 总计 64 32 九、课程考核方式 1.考核方式:闭卷考试 2.成绩构成:总成绩=平时成绩(作业,考勤,上机等)*30%+期末成绩(卷面分数)*70% 十、选用教材和参考书目 [1]《全国计算机等级考试二级教程-C 语言程序设计》,田淑清等,高等教育出版社, 2016 [2]《C 程序设计》(第五版),谭浩强,清华大学出版社,2015 [3]《C 程序设计》学习辅导(第五版),谭浩强,清华大学出版社,2015
《数据结构与算法》课程教学大纲 课程名称:数据结构与算法 课程类别:专业主干课 适用专业:信息与计算科学 考核方式:考试 总学时、学分:80学时4学分 其中实验学时:32学时 一、课程教学目的 数据结构与算法是信息与计算科学专业的专业主干课。数据结构与算法广泛应用于信 息科学、系统工程、应用数学以及各种工程技术领域。在知识方面,从数据结构及其实现 这两个层次相互关系的角度,系统的学习和掌握常用基本数据结构。并且要分析、比较和 选择不同数据结构及不同的存储结构、运算实现的原则及其方法等,为后继课程打好基础。 在技能方面,有效的学习与掌握在不同存储结构上实现不同算法及其设计思想,从中体会 并掌握结构选择和算法设计的思维方式及技巧,从而提高分析问题与解决问题的能力。 二、课程教学要求 (1)掌握各种数据结构的特点及实现方法和适用范围 (2)培养学生阅读、分析和设计算法的能力 (3)进行必要的分析设计基本技能训练 (4)掌握常规设计方法和技巧 三、先修课程 高级语言程序设计 四、课程教学重、难点 重点:算法时间复杂性及其分析方法,顺序与链表、堆栈、队列的算法设计与存储 难点:二叉树、图等算法的设计,几种排序与查找算法。 五、课程教学方法与教学手段 本课程的教学采用多媒体辅助教学和课堂板书相结合,以多媒体课件演示为主的教学 形式。通过上机实验,深刻领会并掌握课程中各种算法的设计思想,学会使用这些方法去 解决实际问题。 六、教学内容 第一章概论(2学时) 1.教学内容 (1)算法与数据结构: (2)数据抽象与抽象数据类型: (3)算法复杂度,渐进表示法。 2.重、难点提示 算法时间复杂性及其分析方法。 第二章 线性表(6学时) 1.教学内容 26
26 《数据结构与算法》课程教学大纲 课程名称:数据结构与算法 课程类别:专业主干课 适用专业:信息与计算科学 考核方式:考试 总学时、学分:80 学时 4 学分 其中实验学时:32 学时 一、课程教学目的 数据结构与算法是信息与计算科学专业的专业主干课。数据结构与算法广泛应用于信 息科学、系统工程、应用数学以及各种工程技术领域。在知识方面,从数据结构及其实现 这两个层次相互关系的角度,系统的学习和掌握常用基本数据结构。并且要分析、比较和 选择不同数据结构及不同的存储结构、运算实现的原则及其方法等,为后继课程打好基础。 在技能方面,有效的学习与掌握在不同存储结构上实现不同算法及其设计思想,从中体会 并掌握结构选择和算法设计的思维方式及技巧,从而提高分析问题与解决问题的能力。 二、课程教学要求 (1)掌握各种数据结构的特点及实现方法和适用范围 (2)培养学生阅读、分析和设计算法的能力 (3)进行必要的分析设计基本技能训练 (4)掌握常规设计方法和技巧 三、先修课程 高级语言程序设计 四、课程教学重、难点 重点:算法时间复杂性及其分析方法,顺序与链表、堆栈、队列的算法设计与存储 难点:二叉树、图等算法的设计,几种排序与查找算法。 五、课程教学方法与教学手段 本课程的教学采用多媒体辅助教学和课堂板书相结合,以多媒体课件演示为主的教学 形式。通过上机实验,深刻领会并掌握课程中各种算法的设计思想,学会使用这些方法去 解决实际问题。 六、教学内容 第一章 概论(2 学时) 1.教学内容 (1)算法与数据结构; (2)数据抽象与抽象数据类型; (3)算法复杂度,渐进表示法。 2. 重、难点提示 算法时间复杂性及其分析方法。 第二章 线性表(6 学时) 1.教学内容
线性表的概念,顺序表,链表。 2.重、难点提示 顺序与链表。 第三章 栈和队列(6学时) 1.教学内容 堆栈,队列,表达式计算,实现递归。 2.重、难点提示 堆栈、队列。 第四章字符串(6学时) 1.教学内容 字符串。 2.重、难点提示 字符串的模式匹配。 第五章 二叉树(7学时) 1.教学内容 (1)二叉树的基本概念: (2)二叉树的遍历: (3)二叉树遍历的非递归算法: (4)二叉线索树,树和森林,堆和优先权队列; (5)哈夫曼树和哈夫曼编码。 2.重、难点提示 二叉数、二叉树的遍历,堆和优先权队列,哈夫曼树和哈夫曼编码。 第六章树(6学时) 1.教学内容 (1)树的基本概念,树和森林: (2)树的顺序表示和链式表示。 2.重、难点提示 树的顺序表示和链式表示。 第七章图(6学时) 1.教学内容 (1)图的基本概念: (2)图的存储结构: (3)图的遍历: (4)拓扑排序,关键路径,最小代价生成树,最短路径。 2.重、难点提示 图的存储结构与图的遍历。难点是拓扑排序,关键路径,最小代价生成树,最短路径。 第八章内排序(6学时)
27 线性表的概念,顺序表,链表。 2. 重、难点提示 顺序与链表。 第三章 栈和队列(6 学时) 1.教学内容 堆栈,队列,表达式计算,实现递归。 2. 重、难点提示 堆栈、队列。 第四章 字符串(6 学时) 1.教学内容 字符串。 2. 重、难点提示 字符串的模式匹配。 第五章 二叉树(7 学时) 1.教学内容 (1)二叉树的基本概念; (2)二叉树的遍历; (3)二叉树遍历的非递归算法; (4)二叉线索树,树和森林,堆和优先权队列; (5)哈夫曼树和哈夫曼编码。 2. 重、难点提示 二叉数、二叉树的遍历,堆和优先权队列,哈夫曼树和哈夫曼编码。 第六章 树(6 学时) 1.教学内容 (1)树的基本概念,树和森林; (2)树的顺序表示和链式表示。 2. 重、难点提示 树的顺序表示和链式表示。 第七章 图(6 学时) 1.教学内容 (1)图的基本概念; (2)图的存储结构; (3)图的遍历; (4)拓扑排序,关键路径,最小代价生成树,最短路径。 2. 重、难点提示 图的存储结构与图的遍历。难点是拓扑排序,关键路径,最小代价生成树,最短路径。 第八章 内排序(6 学时)