精品理工大学指挥自动化学院

精品理工大学指挥自动化学院 编写 陈卫卫 (2008.2) 审批 理工大学指挥自动化学院 课 程 教 案 教员姓名 陈 卫 卫 单 位 软件技术教研室 课程名称 算法与数据结构 总 学 时 6020 适用对象生长干部非合训本科学员 授课学期 2008年春季学期 理工大学训练部制表 课程简介 一、课程定位 算法与数据结构是仿真工程(非合训)、网络工程(合训)、作战信息管理(非合训)专业的本科生学科专业基础课程中的一门重要的核心课程。

通过本课程的教学,使学员知道数据结构的一般原理,掌握表、树、图等基本数据结构的特点、存储表示、具有的运算、实现运算的算法设计方法,以及对算法效率的评估方法,知道什么是好的算法,如何设计和选择好的算法,为学习后续的操作系统、编译原理、软件工程等专业课程,设计系统程序打下基础。

本课程的先修课程为计算机程序设计导论(C语言)、离散数学。

二、课程内涵 (一)总体目标 通过本课程的教学,使学员懂得数据结构的一般原理,掌握表、树、图等基本结构的特点,各结构的存储表示和所具有的运算,实现各运算的算法,学会对算法的评估方法。培养学员的算法设计能力、程序设计能力以及用软件方法处理问题的能力,培养学员的分析、对比、归纳、综合和创新能力,为学习后续专业课程,设计系统程序打下坚实的理论基础。

(二)主要内容 本课程主要内容包括两大部分。一是基本概念,主要介绍算法和数据结构的概念,算法的描述方法和评价标准、评价方法;
算法设计的一般方法。这部分教学的主要目的是使学员了解算法和数据结构的一般原理,了解对算法的评估方法。二是最基本的数据结构表结构、树结构和图结构,通过对表、树、图等基本结构的特点、存储方法,查找、插入、删除、排序、图的最优化等算法,以及实现运算的算法设计方法的学习,培养学员的算法设计能力、程序设计能力以及用软件方法处理问题的能力。

(三)对学员的要求 能够熟练地使用C语言。

三、教学设计 算法和数据结构是一门理论性与实践性都很强的重要核心课程。课程实施的总体方案是以提高学员的应用能力、创新能力和综合素质为目标,总体上,按照先易后难,先简单后复杂的思路进行讲解。

在每一堂课上,大体的讲课思路是先分析问题的特点,抽象出数据以及数据之间的关系,然后,引导学员寻找解决问题的思路和方法,最后考虑如何编程实现,让学生体验解决问题的一般过程。

对于基本概念,多举例阐述概念的内涵,强调术语的作用,规范用词,培养严谨的科学作风。

对于算法设计,突出重点,以点带面,通过对比,使学员逐步建立设计“好”算法的意识。

具体内容如下 1.围绕表、树、图三大基本结构选择授课内容,依照“逻辑结构→物理结构→基本运算→基本算法→算法评价”这个脉络,研究每种结构的特点,给学生一个清晰的研究过程,使学员能够根据问题的特点选择合适的数据结构,进一步理解研究数据结构的意义。

2.教学方法采用引导、启发、研究、讨论、问题驱动等多种形式,充分发挥学员的主体作用,激发每个学员的特长和潜能,培养学员的想象力和创新能力。

3.教学手段采用多媒体和板书相结合的形式,全方位、多角度地阐述教学内容。利用多媒体动画,揭示算法思想的内涵,使算法思想更为形象、直观,提高学生的学习兴趣和求知欲。

4.以知识验证、知识综合、创新设计为原则,设计上机实验内容。实验分为两类,一类为理解知识点的基本实验,另一类为综合应用的实验。通过上机编程强化学生的程序设计能力,进一步消化理解理论授课内容,贯彻“学以致用”的思想。

教学进度总体安排 序号 教 学 内 容 课堂教学 学 时 实践教学 学 时 网络教 学学时 1 概述 2 学员自 主学习 2 表结构 18 6 3 树结构 18 6 4 图结构 10 4 5 排序 8 2 6 集合运算 2 2 7 算法设计的一般方法 2 总计 60 20 教学进度具体安排 第一章 概述 4学时 第1讲 算法和数据结构概述2学时 第30讲 算法设计的一般方法2学时 第二章 表结构 18学时 第2讲 表结构的概念2学时 第3讲 顺序表的运算2学时 第4讲 链表的基本概念2学时 第5讲 简单链表的运算2学时 第6讲 复杂链表及链表的应用2学时 第7讲 栈和队2学时 第8讲 静态链表2学时 第9讲 矩阵运算2学时 第10讲 字符串2学时 第三章 树结构 18学时 第11讲 树结构的概念2学时 第12讲 二叉树2学时 第13讲 二叉树的遍历2学时 第14讲 遍历算法的应用2学时 第15讲 遍历序列的性质2学时 第16讲 二叉树的构造2学时 第17讲 检索树2学时 第18讲 平衡树2学时 第19讲 哈夫曼树、判定树2学时 第四章 图结构 10学时 第20讲 图的概念和存储结构2学时 第21讲 先深搜索和先广搜索2学时 第22讲 最小生成树2学时 第23讲 最短路径2学时 第24讲 有向无回路图、双连通分量2学时 第五章 排序8学时 第25讲 基本概念、插入排序2学时 第26讲 交换排序2学时 第27讲 选择排序2学时 第28讲 合并排序、基数排序2学时 第六章 集合运算2学时 第29讲 散列表2学时 说明为了空出一次复习课的时间,在实施计划中将第11讲和第12讲压缩为了一次课。

内 容 备 注 第一章 概 述 第1讲 算法和数据结构概述 讲课题目算法和数据结构概述(1.1、1.2、1.3) 目的要求 1.了解课程基本信息,建立基本要求 2.掌握基本数据结的构特征及其意义 3.掌握算法的定义和三种描述方式 4.了解算法的评价方法 知识点 1.数据结构的基本概念 2.算法的描述和实现 3.算法的评价方法 重点难点 1.表、树、图结构的特征及其意义 2.算法的定义,算法的描述方式 3.算法的时间复杂性 方法步骤 1.介绍与课程有关的相关知识 2.从求解问题的一般步骤入手,建立抽象的数据模型(数值、非数值) 3.用示例抽象说明数据,以及数据之间的关系,介绍数据结构的分类和特征 4.用示例介绍算法的描述形式和适用场合,研究算法“好”、“坏”问题的意义和价值,站在使用效果、满足需要等角度,讨论研究评价算法的标准。

器材保障电脑、投影仪、教鞭 教学内容与时间安排 板书一、课程基本信息 10 分钟 (一)教员信息 主讲教员陈卫卫 联系方式 824546O ,828596H E_mail 办公室教学楼809 介绍课程整体情况,帮助学生明确学习目标,知道相关的学习要素。

(二)课程的主要任务 使学员获得算法和数据结构方面的基本知识,培养学员的程序设计能力和初级算法设计能力,掌握运用计算机解决本专业实际问题的基本方法,为今后的工作和学习奠定坚实的基础。

(三)教学重点和基本条件 1.教学重点 在于围绕算法指导学生编程,使学生知道什么是“好”的算法,如何才能学会编写高质量的程序。

2.基本条件 熟练使用C语言(C中的传引用功能)、有一定的离散数学知识 掌握VC6.0集成开发环境 (四)教材及参考书目 1.教材 Text Book 数据结构教程 王庆瑞编著 北京希望电子出版社 2.参考书 ˜ 一般的 学会搜集资料,知道参考书的作用和价值,以及如何使用参考书。

充实、深化相关学习内容。

Data Structures and Algorithm Analysis in C(Second Edition), Mark Allen Weiss 著,陈越改编,北京人民邮电出版社,2005 数据结构(C语言版) 严蔚敏、吴伟民 编著 清华大学出版社 C算法(第一卷,基础、数据结构、排序和搜索)(第三版)Algorithms IN CTHIRD EDITION C算法(第二卷 图算法) Robert Sedgewick著 周良忠 译,人民邮电出版社 POSTS TELECOM PRESS ˜ 经典的 计算机程序设计艺术(第3版)The Art of Computer Programming 第1卷 基本算法 第2卷 半数值算法 第3卷 排序与查找 Donald E.Knuth 著 苏运霖 译,国防工业出版社 Addison Wesley,2003 结合课程特点,强调好的学习方法。

(五)学习方法 l 认真听讲 l 读书、思考 l 独立完成作业 l 上机练习 (六)评价方式 l 平时作业(含上机) l 上课表现 l 笔试试卷 板书二、数据结构的概念 20 分钟 板书(一)问题的求解过程 总结归纳问题求解的一般过程,从中把握数据结构课程的地位和作用。

说明 算法和程序概念的差异,在没有歧义的情况下,可以不区别。

1.解题的一般过程 l 接受任务(设计程序、软件) l 针对问题进行分析 l 设计出求解策略,即算法(algorithm),程序的雏形“问题级的算法”(或初级算法) l 算法的需要,抽象出所要处理的数据 l 建立数据结构 l 将算法分解成对数据结构的运算 l 设计出对数据结构进行处理的算法(数据结构级算法) l 对算法的性能(可行性和运行效率时间和空间)进行评估 l 着手程序设计 l 对程序进行调试 l 交付使用 2.程序与算法的关系 程序是按算法思想进行设计的,程序中含有算法。

算法就是程序(但算法不等于程序)。程序也称算法。

程序(或算法)就是问题的解(算法解,或程序解,软件解)。

板书(二)数据和数据结构 从狭义和广义两个角度阐述数据。

举例说明这些术语的内涵,进一步理解计算机的工作方式。

板书1.数据 是对客观事物的名称、数量、特征、性质的描述形式(编码),是计算机所能处理的一切符