当前位置:主页 > 教学大纲 > 算法设计与分析

算法设计与分析课程教学大纲

 

一、 课程名称:算法设计与分析

二、 学分:4

三、 先修课程:《高等数学》、《计算机文化基础》、《程序设计语言》、《离散数学》、《数据结构》。

四、 课程的性质、目的和任务:

  《算法设计与分析》课程是网络教育学院计算机专业本科的专业必修课。这是一门面向设计的课程,要求学生。设立本课程的目的是适应21世纪我国计算机科学技术及软件工程人才培养的需要,培养学生设计和分析算法的能力。通过学习本课程,学生应该掌握计算机软件常用的几种算法,并可以对算法的复杂性进行分析,从而能够在实际工作中根据具体问题设计和优化算法。

五、 课程的教学基本要求及主要内容:

第一章 计算机算法概论

一、学习要求

  通过本章的学习,要求学生了解该课程的基本框架,理解算法的概念,如何来表达算法,同时还简要介绍如何使用计算机程序设计语言来描述算法。

  本章要了解算法与程序的区别,算法在计算机及软件领域的作用和地位,理解使用抽象数据来表达算法,重点掌握如何使用计算机程序设计语言来描述算法。

二、课程内容

1.算法的基本概念

2.表达算法的抽象机制

3.使用语言来描述算法

4.算法的复杂性分析

三、实践(上机)环节内容和基本要求

  本章节没有安排实践和上机环节。

Ⅴ 自学安排:

  第二章的内容  

第二章 递归与分治策略

一、学习要求

  通过本章的学习,要求学生了解递归与分治的概念及相互关系,理解递归与分治算法策略的基本思想,掌握使用递归与分治策略解决经典的问题,并对算法进行复杂性分析。

二、课程内容

1.递归的概念

  (1) 递归的含义

  (2) 使用递归的方法解决实际的问题

  阶乘函数的递归表达式

  Fabonacci数列的递归表达式

  使用递归方法解决Hanoi塔问题

2.分治法的基本思想

  (1) 分治的含义

  (2) 分治算法的设计模式

  (3) 分治法的效率分析

3.分治策略应用实例

  二分搜索算法

  大整数的乘法

  Stassen矩阵乘法

  棋盘覆盖游戏

  合并排序算法

  快速排序算法

三、实践(上机)环节内容和基本要求

  本章节的学习安排两个课时的上机实践。

主要内容为:

1. 编制程序,使用递归的方法解决Hanoi塔问题

2. 编制程序,使用二分搜索法查找字符

3. 编制程序,使用合并排序法对一个数组中的元素进行排序

Ⅴ 自学安排:

  第三章的内容

第三章 动态规划

一、学习要求

  通过本章的学习,要求学生了解动态规划的基本思想,掌握设计动态规划算法的步骤,并学会使用动态规划方法分析和解决实际的问题,并对算法进行复杂性分析。

二、课程内容

1.动态规划算法介绍

  (1) 动态规划算法的基本思想

  (2) 动态规划算法与分治算法的区别

  (3) 动态规划算法的设计步骤

  (4) 动态规划算法的基本要素

2.使用动态规划算法解决实际问题

  矩阵连乘问题

  最长公共子序列问题

  凸多边形最优三角剖分

  多边形游戏

  图像压缩

  0-1背包问题

三、实践(上机)环节内容和基本要求

  本章节的学习安排两个课时的上机实践。

主要内容为:

1. 编制程序,解决0-1背包问题

2. 编制程序,解决多边形游戏问题

Ⅴ 自学安排:

  第四章的内容

第四章 贪婪算法

一、学习要求

  通过本章的学习,要求学生了解贪婪法的基本思想,掌握贪婪算法的设计步骤,并学会使用贪婪算法分析和解决实际的问题,并对算法进行复杂性分析。

二、课程内容

1.贪婪算法

2.使用贪婪算法分析和解决具体问题

  (1) 活动安排问题

  (2) 最优装载问题

  (3) 哈夫曼编码

  (4) 单源最短路径

  (5) 最小生成树

  (6) 多机调度问题

3.贪婪算法的理论基础

三、实践(上机)环节内容和基本要求

  本章节的学习安排两个课时的上机实践。

主要内容为:

1. 编制程序,解决最优装载问题

2. 编制程序,解决多机调度问题

Ⅴ 自学安排:

  第五章的内容

第五章 回溯法

一、学习要求

  通过本章的学习,要求学生了解回溯法的基本思想,掌握回溯算法的设计步骤,并学会使用回溯算法分析和解决实际的问题,并对算法进行复杂性分析。

二、课程内容

1.回溯算法的基本框架和基本要素

2.使用回溯算法分析和解决具体问题

  (1) 最优装载问题

  (2) 批处理作业调度

  (3) N皇后问题

  (4) 0-1背包问题

  (5) 图的M着色问题

  (6) 旅行售货员问题

3.回溯算法的效率分析

三、实践(上机)环节内容和基本要求

  本章节的学习安排两个课时的上机实践。

主要内容为:

1. 编制程序,解决N皇后问题

2. 编制程序,解决0-1背包问题

Ⅴ 自学安排:

  第六章的内容

第六章 分支限界法

一、学习要求

  通过本章的学习,要求学生了解分支限界算法的基本思想,掌握分支限界算法的设计步骤,并学会使用分支限界算法分析和解决实际的问题,并对算法进行复杂性分析。

二、课程内容

1.分支限界算法的基本思想

2.使用分支限界算法分析和解决具体问题

  (1) 最优装载问题

  (2) 单源最短路径问题

  (3) 布线问题

  (4) 0-1背包问题

  (5) 旅行售货员问题

  (6) 批处理作业调度问题

三、实践(上机)环节内容和基本要求

  本章节的学习安排两个课时的上机实践。

主要内容为:

1. 编制程序,使用分支限界算法解决装载问题

2. 编制程序,使用分支限界算法解决0-1背包问题

Ⅴ 自学安排:

  第七章的内容

第七章 概率算法

一、学习要求

  通过本章的学习,要求学生了解概率算法的基本思想,掌握概率算法的设计步骤,并学会使用概率算法分析和解决实际的问题,并对算法进行复杂性分析。

二、课程内容

1.概率算法的概念

2.随机数

3.数值概率算法

六、 考试方式:闭卷笔试

七、 使用教材:《算法设计与分析》;王晓东编;清华大学出版社出版。