算法设计教学大纲详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽科技学院理学院教学大纲

课程名称:算法设计

适用专业:计算机科学与技术

(本科)

计算机科学技术专业教研室制

2006.6

《算法设计》理论课教学大纲

课程名称:算法设计(Algrithm Design)

课程编号:

课程类别:选修课

学时:36 学时(理论36学时)

学分:2学分

考核方式:考试

适用专业:计算机科学与技术本科专业

前修课程:高等数学离散数学线形代数 C语言程序设计数据结构

建设开课学期:第6学期

一、课程性质、目的任务

随着计算机的广泛应用,对计算机算法的研究变得日益重要。《算法设计》是计算机科学与技术专业的一门选修课,本课程将覆盖计算机软件实现中的大部分算法,并具有一定的深度和广度,使学生对计算机常用算法有一个全盘的了解;本课程的任务是:培养学生具有针对给定问题设计和实现高效算法的能力。

二、教学基本要求

通过本课程教学,应使学生:

1)熟悉、掌握课堂教学中所学的大部分算法设计思想;

2)具有针对所给的问题设计和实现高效算法的能力。

四、参考教材及图书资料

1.王晓东.计算机算法设计与分析.北京:电子工业出版社

2.卢开澄.计算机算法导引——设计与分析. 北京:清华大学出版社

3.顾立尧.霍义兴.算法设计分析的理论与方法.上海:上海交通大学出版社

4.霍红卫.分布式算法导论. 北京:机械工业出版社

五、教学方法与考核

1.教学方法

为充分发挥学生的积极性、主动性,启发引导、培养学生具有自我开拓和获得知识的能力,在内容的讲授上本着“少而精”的原则,突出重点,分解难点,深入浅出,举一反三,着重培养学生分析问题和解决问题能力。并就课程的各部分内容,分别采用细讲法,培养学生的基本功;采用精讲法,培养学生主动获取知识的能力;采用引导启发式,培养学生分析问题、解决问题的能力。另不同程度采取课堂讨论式、自学提问式。

2.课程考核方法

主要有:理论课考查、作业评定。

①平时占20%:理论课考查、作业评定;

②期末考试占80%:综合笔试。

六、大纲正文

第一章算法基础

[目的要求]

1.了解算法与程序的概念;

2.掌握算法复杂性分析及其有关的概念;

[基本内容]

1.算法的定义、特征,算法与程序;

2.冒泡排序;

3.伪代码使用约定;

4.算法复杂度分析;

5.算法的运行时间;

[重点难点]

1.重点:

算法的定义与特征、冒泡排序、算法复杂度分析

2. 难点:

算法复杂度分析

[课时安排]

建议:3学时。

第二章递归与分治策略

[目的要求]

1.理解递归的概念;

2.掌握递归方程构建的思想;

3.掌握递归方程的求解方法;

4.了解分治法的基本思想;

5.掌握二叉查找算法;

6.掌握用分治法求最大值与最小值的算法;

7.掌握Strassen矩阵算法;

8.理解整数相乘算法;

9.掌握合并排序和快速排序算法;

10.了解线性时间选择算法;

11.了解最近点对问题算法

[基本内容]

1.递归的概念;

2.递归方程构建的思想;

3.递归方程的求解方法(递归树与主方法);

4.分治法的基本思想;

5.二叉查找算法;

6.用分治法求最大值与最小值的算法;

7.Strassen矩阵算法;

8.整数相乘算法;

9.合并排序和快速排序算法;

10.线性时间选择算法;

11.最近点对问题算法

[重点难点]

1.重点:

递归方程的求解方法(递归树与主方法)、二叉查找算法、Strassen矩阵算法、合并排序和快速排序算法

2. 难点:

递归方程构建、递归方程的求解方法(递归树与主方法)、Strassen矩阵算法、合并排序和快速排序算法、线性时间选择算法、最近点对问题算法

[课时安排]

建议:10学时。

第三章动态规划

[目的要求]

1.掌握动态规划算法的概念和步骤;

2.掌握0-1背包问题的算法设计和分析;

3.掌握矩阵链乘算法设计和分析;

4.掌握动态规划算法的基本要素;

5.理解备忘录方法;

6.了解装配线调度问题算法设计和分析;

7.理解最长公共子序列问题算法设计和分析;

8.掌握最优二分检索树算法设计和分析。

9.了解凸多边形最优三角剖分算法;

[基本内容]

1.动态规划算法的概念和步骤;

2.0-1背包问题;

3.矩阵链乘;

4.动态规划算法的基本要素;

5.备忘录方法;

6.装配线调度问题;

7.最长公共子序列问题;

8.最优二分检索树。

9.凸多边形最优三角剖分;

[重点难点]

1.重点:

动态规划算法的概念和步骤、0-1背包问题、矩阵链乘、动态规划算法的基本要素、最优二分检索树

2. 难点:

0-1背包问题、矩阵链乘

[课时安排]

建议:8学时。

第四章贪心法

[目的要求]

1.掌握贪心算法的概念、思想;

2.掌握贪心算法的基本要素;

3.掌握背包问题的算法设计和分析;

4.理解活动选择问题算法设计和分析;

5.理解哈夫曼编码的算法分析;

6.掌握最小生成树的Prim和Kruskal算法的设计与分析;

7.了解最小生成树的Boruvka算法的设计与分析;

8.掌握单源最短路径的Dijkstra算法的设计与分析;

9.理解贪心算法的理论基础;

[基本内容]

1.贪心算法的概念、思想;

2.贪心算法的基本要素;

3.背包问题的算法设计和分析;

4.活动选择问题算法设计和分析;

5.哈夫曼编码的算法分析;

6.最小生成树的Prim、Kruskal算法和Boruvka算法;

7.单源最短路径的Dijkstra算法;

8.贪心算法的理论基础;

[重点难点]

1.重点:

贪心算法的概念、思想、贪心算法的基本要素、背包问题、最小生成树的Prim和Kruskal 算法、单源最短路径的Dijkstra算法、贪心算法的理论基础

2. 难点:

贪心算法的思想、背包问题、单源最短路径的Dijkstra算法、贪心算法的理论基础[课时安排]

建议:7学时。

第五章回溯法

[目的要求]

1.掌握回溯法的概念、思想;

2.掌握子集树、排列树、搜索树的构造;

3.理解N皇后问题的算法设计和分析;

4.理解子集和数问题算法设计和分析;

相关文档
最新文档