最新 算法分析与设计课程教学计划教案.docx
《最新 算法分析与设计课程教学计划教案.docx》由会员分享,可在线阅读,更多相关《最新 算法分析与设计课程教学计划教案.docx(60页珍藏版)》请在冰豆网上搜索。
最新算法分析与设计课程教学计划教案
清华大学研究生院
《算法设计与分析》课程教案
(Design&AnalysisofComputerAlgorithms)
一、课程基本信息
课程编号:
10134060
课程类别:
专业必修课
适用专业:
计算机科学与技术
学分:
3
总学时:
52,其中讲授44学时,实验8学时
先修课程:
程序设计基础、离散数学、数据结构
后续课程:
课程简介:
本课程是软件工程专业的重要专业课,是软件技术中面向设计,处于核心地位的教育课程,无论是计算机系统、系统软件还是解决计算机的各种应用课题都可归结为算法设计。
本课程系统介绍许多经典的非数值算法,算法分析的基本方法,以及算法复杂性的相关知识。
主要教学方法与手段:
课堂多媒体课件结合实验
选用教材:
沈孝钧编著《计算机算法基础》、机械工业出版社、2014年。
必读书目:
1.ThomasH.Cormen,etc.《IntroductiontoAlgorithms,Secondedition》.MITPress,2001.3。
2.王晓东,《算法设计与分析》,清华大学出版社,2003.1。
选读书目:
1.SaraBaase,AllenVanGelder,《ComputerAlgorithms:
IntroductiontoDesignandAnalysis(ThirdEdition)》(影印版),高等教育出版社,2001.6。
2.SartajSahni,《数据结构、算法与应用》,北京:
机械出版社,2000。
二、课程总目标:
本课程通过系统讲授算法分析的基本方法,使学生掌握基本的算法设计技术。
在算法分析设计的数学基础训练中,以提高学生算法设计与分析的素质和能力。
通过该课程的学习和上机实习,使学生掌握通用算法的几种设计方法,以及学会对算法的时间和空间的复杂性进行分析,建立下界理论的概念;同时通过讲授NP理论的主要概念及一些近似算法,为学生从事计算机算法的研究工作奠定基础。
三、课程教学内容与教学要求
1、教学内容与学时分配
课程总学时:
48其中讲授学时:
40实验(上机)学时:
8
课程安排见下表:
序号
章目名称
讲授学时分配
序号
章目名称
讲授学时分配
1
第一章算法基础知识
6
6
第六章最大流算法
7
2
第二章分治法
6
7
第七章NP完全问题
7
3
第三章动态规划
6
4
第四章图遍历算法
6
5
第五章贪心算法
6
合计
44
2.教学要求
(1)以培养学生独立思考、分析问题和解决问题的能力为主要目标,进行讨论式教学,不要求学生死记硬背。
(2)本课程强调严谨的思考方法,培养学生利用所学的数学知识分析解决问题能力。
第一章算法基础知识
教学目标:
了解算法的基本概念及其与其他学科的关系,掌握算法复杂度的渐进表示及复杂性分析的基本方法和正确性证明的基本技术。
教学内容:
第一节基本概念
一、算法的概念和特征
二、算法与其他IT学科的联系
三、评价算法的标准
第二节算法分析
一、算法的正确性分析
二、算法的复杂性分析
教学要求:
重点介绍算法复杂度的渐进表示,以及算法复杂性分析的替换法、递归树法和master定理。
第二章分治法
教学目标:
掌握分治策略分析问题的基本思路和分析方法,了解典型的分治策略算法。
教学内容:
第一节分治策略简介
一、分治策略的基本步骤
二、折半查找和归并排序
第二节快速排序的性能分析
一、快速排序算法
二、复杂性分析
第三节中位数选择与最接近点对
一、随机中位数选择算法
二、确定的中位数选择算法
三、最接近点对
第四节大整数相乘与矩阵乘
一、大整数相乘
二、矩阵乘
教学要求:
重点介绍分治策略设计算法的基本步骤及分治法解决问题的设计思路。
第三章动态规划
教学目标:
掌握动态规划分析问题的基本思路和分析方法,了解典型的动态规划算法。
教学内容:
第一节最长公共子序列与动态规划
一、最长公共子序列
二、动态规划方法
第二节矩阵连乘
一、矩阵连乘问题
二、动态规划算法
第三节最优二叉查找树
一、最优二叉查找树问题
二、动态规划算法
教学要求:
重点介绍动态规划设计算法的基本步骤、最优子结构性质的证明方法和利用最优子结构性质写出求解最优解值递归关系的过程。
第四章图遍历算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节广度优先搜索
一、广度优先搜索算法
二、广度优先算法的应用
第二节深度优先搜索算法
一、深度优先搜索算法
二、深度优先搜索的性质
三、深度优先搜索的应用
教学要求:
重点讲授广度优先搜索和深度优先搜索算法和区间套及白路径定理。
第五章贪心算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节活动场所选择与贪心策略
一、活动场所选择
二、贪心策略
第二节贪心算法的应用
一、哈夫曼编码问题
二、最小费用生成树
教学要求:
重点介绍贪心策略分析问题的基本方法及思路,和贪心选择性质证明的基本思路。
第六章最大流算法
教学目标:
掌握最大流问题的定义,最大流-最小割定理,福特-福克森算法。
了解埃德蒙-卡普算法。
教学内容:
第一节基本概念
一、最大流问题定义
二、最大流最小割定理
第二节最大流算法
一、Ford-Fulkerson算法
二、Edmond-Karp算法
教学要求:
重点介绍最大流-最小割定理,剩余网络及福特-福克森算法。
本课程是软件工程专业的重要专业课,是软件技术中面向设计,处于核心地位的教育课程,无论是计算机系统、系统软件还是解决计算机的各种应用课题都可归结为算法设计。
本课程系统介绍许多经典的非数值算法,算法分析的基本方法,以及算法复杂性的相关知识。
主要教学方法与手段:
课堂多媒体课件结合实验
选用教材:
沈孝钧编著《计算机算法基础》、机械工业出版社、2014年。
必读书目:
1.ThomasH.Cormen,etc.《IntroductiontoAlgorithms,Secondedition》.MITPress,2001.3。
2.王晓东,《算法设计与分析》,清华大学出版社,2003.1。
选读书目:
1.SaraBaase,AllenVanGelder,《ComputerAlgorithms:
IntroductiontoDesignandAnalysis(ThirdEdition)》(影印版),高等教育出版社,2001.6。
2.SartajSahni,《数据结构、算法与应用》,北京:
机械出版社,2000。
二、课程总目标:
本课程通过系统讲授算法分析的基本方法,使学生掌握基本的算法设计技术。
在算法分析设计的数学基础训练中,以提高学生算法设计与分析的素质和能力。
通过该课程的学习和上机实习,使学生掌握通用算法的几种设计方法,以及学会对算法的时间和空间的复杂性进行分析,建立下界理论的概念;同时通过讲授NP理论的主要概念及一些近似算法,为学生从事计算机算法的研究工作奠定基础。
三、课程教学内容与教学要求
1、教学内容与学时分配
课程总学时:
48其中讲授学时:
40实验(上机)学时:
8
课程安排见下表:
序号
章目名称
讲授学时分配
序号
章目名称
讲授学时分配
1
第一章算法基础知识
6
6
第六章最大流算法
7
2
第二章分治法
6
7
第七章NP完全问题
7
3
第三章动态规划
6
4
第四章图遍历算法
6
5
第五章贪心算法
6
合计
44
2.教学要求
(1)以培养学生独立思考、分析问题和解决问题的能力为主要目标,进行讨论式教学,不要求学生死记硬背。
(2)本课程强调严谨的思考方法,培养学生利用所学的数学知识分析解决问题能力。
第七章算法基础知识
教学目标:
了解算法的基本概念及其与其他学科的关系,掌握算法复杂度的渐进表示及复杂性分析的基本方法和正确性证明的基本技术。
教学内容:
第一节基本概念
一、算法的概念和特征
二、算法与其他IT学科的联系
三、评价算法的标准
第二节算法分析
一、算法的正确性分析
二、算法的复杂性分析
教学要求:
重点介绍算法复杂度的渐进表示,以及算法复杂性分析的替换法、递归树法和master定理。
第八章分治法
教学目标:
掌握分治策略分析问题的基本思路和分析方法,了解典型的分治策略算法。
教学内容:
第一节分治策略简介
一、分治策略的基本步骤
二、折半查找和归并排序
第二节快速排序的性能分析
一、快速排序算法
二、复杂性分析
第三节中位数选择与最接近点对
一、随机中位数选择算法
二、确定的中位数选择算法
三、最接近点对
第四节大整数相乘与矩阵乘
一、大整数相乘
二、矩阵乘
教学要求:
重点介绍分治策略设计算法的基本步骤及分治法解决问题的设计思路。
第九章动态规划
教学目标:
掌握动态规划分析问题的基本思路和分析方法,了解典型的动态规划算法。
教学内容:
第一节最长公共子序列与动态规划
一、最长公共子序列
二、动态规划方法
第二节矩阵连乘
一、矩阵连乘问题
二、动态规划算法
第三节最优二叉查找树
一、最优二叉查找树问题
二、动态规划算法
教学要求:
重点介绍动态规划设计算法的基本步骤、最优子结构性质的证明方法和利用最优子结构性质写出求解最优解值递归关系的过程。
第一十章图遍历算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节广度优先搜索
一、广度优先搜索算法
二、广度优先算法的应用
第二节深度优先搜索算法
一、深度优先搜索算法
二、深度优先搜索的性质
三、深度优先搜索的应用
教学要求:
重点讲授广度优先搜索和深度优先搜索算法和区间套及白路径定理。
第一十一章贪心算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节活动场所选择与贪心策略
一、活动场所选择
二、贪心策略
第二节贪心算法的应用
一、哈夫曼编码问题
二、最小费用生成树
教学要求:
重点介绍贪心策略分析问题的基本方法及思路,和贪心选择性质证明的基本思路。
第一十二章最大流算法
教学目标:
掌握最大流问题的定义,最大流-最小割定理,福特-福克森算法。
了解埃德蒙-卡普算法。
教学内容:
第一节基本概念
一、最大流问题定义
二、最大流最小割定理
第二节最大流算法
一、Ford-Fulkerson算法
二、Edmond-Karp算法
教学要求:
重点介绍最大流-最小割定理,剩余网络及福特-福克森算法。
第一十三章NP完全问题
教学目标:
掌握P类,NP类和NPC的定义。
了解NP完全问题的证明过程及思路。
教学内容:
第一节基本概念
一、P和NP
二、NP完全性
第二节NP完全问题的证明
一、NP完全的证明方法
二、NP完全问题的证明
教学要求:
重点讲授P类、NP类和NPC的定义,Cook定理和NP完全的证明方法及过程。
3.实验
序号
实验项目名称
学时
实验内容和实验目标
实验
性质
1
排序算法比较
4
实验内容:
实现插入排序、归并排序和快速排序算法。
实验目标:
掌握分治算法的实现,了解算法的比较方法。
验证
2
动态规划算法
2
实验内容:
布置的有关动态规划问题作业。
实验目标:
掌握采用动态规划思路分析问题的方法和动态规划算法的设计实现。
验证设计
3
贪心算法
2
实验内容:
布置的有关贪心算法问题作业。
实验目标:
掌握贪心策略分析问题的方法和贪心算法的设计实现。
验证设计
四、课程考核
考试以闭卷为主(70%),着重检查对算法分析与设计的基本方法掌握情况,及培养学生分析问题解决问题的能力。
平时成绩30%,考察作业、读书报告和出勤率。
第一十四章NP完全问题
教学目标:
掌握P类,NP类和NPC的定义。
了解NP完全问题的证明过程及思路。
教学内容:
第一节基本概念
一、P和NP
二、NP完全性
第二节NP完全问题的证明
一、NP完全的证明方法
二、NP完全问题的证明
教学要求:
重点讲授P类、NP类和NPC的定义,Cook定理和NP完全的证明方法及过程。
3.实验软件工程专业的重要专业课,是软件技术中面向设计,处于核心地位的教育课程,无论是计算机系统、系统软件还是解决计算机的各种应用课题都可归结为算法设计。
本课程系统介绍许多经典的非数值算法,算法分析的基本方法,以及算法复杂性的相关知识。
主要教学方法与手段:
课堂多媒体课件结合实验
选用教材:
沈孝钧编著《计算机算法基础》、机械工业出版社、2014年。
必读书目:
1.ThomasH.Cormen,etc.《IntroductiontoAlgorithms,Secondedition》.MITPress,2001.3。
2.王晓东,《算法设计与分析》,清华大学出版社,2003.1。
选读书目:
1.SaraBaase,AllenVanGelder,《ComputerAlgorithms:
IntroductiontoDesignandAnalysis(ThirdEdition)》(影印版),高等教育出版社,2001.6。
2.SartajSahni,《数据结构、算法与应用》,北京:
机械出版社,2000。
二、课程总目标:
本课程通过系统讲授算法分析的基本方法,使学生掌握基本的算法设计技术。
在算法分析设计的数学基础训练中,以提高学生算法设计与分析的素质和能力。
通过该课程的学习和上机实习,使学生掌握通用算法的几种设计方法,以及学会对算法的时间和空间的复杂性进行分析,建立下界理论的概念;同时通过讲授NP理论的主要概念及一些近似算法,为学生从事计算机算法的研究工作奠定基础。
三、课程教学内容与教学要求
1、教学内容与学时分配
课程总学时:
48其中讲授学时:
40实验(上机)学时:
8
课程安排见下表:
序号
章目名称
讲授学时分配
序号
章目名称
讲授学时分配
1
第一章算法基础知识
6
6
第六章最大流算法
7
2
第二章分治法
6
7
第七章NP完全问题
7
3
第三章动态规划
6
4
第四章图遍历算法
6
5
第五章贪心算法
6
合计
44
2.教学要求
(1)以培养学生独立思考、分析问题和解决问题的能力为主要目标,进行讨论式教学,不要求学生死记硬背。
(2)本课程强调严谨的思考方法,培养学生利用所学的数学知识分析解决问题能力。
第一十五章算法基础知识
教学目标:
了解算法的基本概念及其与其他学科的关系,掌握算法复杂度的渐进表示及复杂性分析的基本方法和正确性证明的基本技术。
教学内容:
第一节基本概念
一、算法的概念和特征
二、算法与其他IT学科的联系
三、评价算法的标准
第二节算法分析
一、算法的正确性分析
二、算法的复杂性分析
教学要求:
重点介绍算法复杂度的渐进表示,以及算法复杂性分析的替换法、递归树法和master定理。
第一十六章分治法
教学目标:
掌握分治策略分析问题的基本思路和分析方法,了解典型的分治策略算法。
教学内容:
第一节分治策略简介
一、分治策略的基本步骤
二、折半查找和归并排序
第二节快速排序的性能分析
一、快速排序算法
二、复杂性分析
第三节中位数选择与最接近点对
一、随机中位数选择算法
二、确定的中位数选择算法
三、最接近点对
第四节大整数相乘与矩阵乘
一、大整数相乘
二、矩阵乘
教学要求:
重点介绍分治策略设计算法的基本步骤及分治法解决问题的设计思路。
第一十七章动态规划
教学目标:
掌握动态规划分析问题的基本思路和分析方法,了解典型的动态规划算法。
教学内容:
第一节最长公共子序列与动态规划
一、最长公共子序列
二、动态规划方法
第二节矩阵连乘
一、矩阵连乘问题
二、动态规划算法
第三节最优二叉查找树
一、最优二叉查找树问题
二、动态规划算法
教学要求:
重点介绍动态规划设计算法的基本步骤、最优子结构性质的证明方法和利用最优子结构性质写出求解最优解值递归关系的过程。
第一十八章图遍历算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节广度优先搜索
一、广度优先搜索算法
二、广度优先算法的应用
第二节深度优先搜索算法
一、深度优先搜索算法
二、深度优先搜索的性质
三、深度优先搜索的应用
教学要求:
重点讲授广度优先搜索和深度优先搜索算法和区间套及白路径定理。
第一十九章贪心算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节活动场所选择与贪心策略
一、活动场所选择
二、贪心策略
第二节贪心算法的应用
一、哈夫曼编码问题
二、最小费用生成树
教学要求:
重点介绍贪心策略分析问题的基本方法及思路,和贪心选择性质证明的基本思路。
第二十章最大流算法
教学目标:
掌握最大流问题的定义,最大流-最小割定理,福特-福克森算法。
了解埃德蒙-卡普算法。
教学内容:
第一节基本概念
一、最大流问题定义
二、最大流最小割定理
第二节最大流算法
一、Ford-Fulkerson算法
二、Edmond-Karp算法
教学要求:
重点介绍最大流-最小割定理,剩余网络及福特-福克森算法。
本课程是软件工程专业的重要专业课,是软件技术中面向设计,处于核心地位的教育课程,无论是计算机系统、系统软件还是解决计算机的各种应用课题都可归结为算法设计。
本课程系统介绍许多经典的非数值算法,算法分析的基本方法,以及算法复杂性的相关知识。
主要教学方法与手段:
课堂多媒体课件结合实验
选用教材:
沈孝钧编著《计算机算法基础》、机械工业出版社、2014年。
必读书目:
1.ThomasH.Cormen,etc.《IntroductiontoAlgorithms,Secondedition》.MITPress,2001.3。
2.王晓东,《算法设计与分析》,清华大学出版社,2003.1。
选读书目:
1.SaraBaase,AllenVanGelder,《ComputerAlgorithms:
IntroductiontoDesignandAnalysis(ThirdEdition)》(影印版),高等教育出版社,2001.6。
2.SartajSahni,《数据结构、算法与应用》,北京:
机械出版社,2000。
二、课程总目标:
本课程通过系统讲授算法分析的基本方法,使学生掌握基本的算法设计技术。
在算法分析设计的数学基础训练中,以提高学生算法设计与分析的素质和能力。
通过该课程的学习和上机实习,使学生掌握通用算法的几种设计方法,以及学会对算法的时间和空间的复杂性进行分析,建立下界理论的概念;同时通过讲授NP理论的主要概念及一些近似算法,为学生从事计算机算法的研究工作奠定基础。
三、课程教学内容与教学要求
1、教学内容与学时分配
课程总学时:
48其中讲授学时:
40实验(上机)学时:
8
课程安排见下表:
序号
章目名称
讲授学时分配
序号
章目名称
讲授学时分配
1
第一章算法基础知识
6
6
第六章最大流算法
7
2
第二章分治法
6
7
第七章NP完全问题
7
3
第三章动态规划
6
4
第四章图遍历算法
6
5
第五章贪心算法
6
合计
44
2.教学要求
(1)以培养学生独立思考、分析问题和解决问题的能力为主要目标,进行讨论式教学,不要求学生死记硬背。
(2)本课程强调严谨的思考方法,培养学生利用所学的数学知识分析解决问题能力。
第二十一章算法基础知识
教学目标:
了解算法的基本概念及其与其他学科的关系,掌握算法复杂度的渐进表示及复杂性分析的基本方法和正确性证明的基本技术。
教学内容:
第一节基本概念
一、算法的概念和特征
二、算法与其他IT学科的联系
三、评价算法的标准
第二节算法分析
一、算法的正确性分析
二、算法的复杂性分析
教学要求:
重点介绍算法复杂度的渐进表示,以及算法复杂性分析的替换法、递归树法和master定理。
第二十二章分治法
教学目标:
掌握分治策略分析问题的基本思路和分析方法,了解典型的分治策略算法。
教学内容:
第一节分治策略简介
一、分治策略的基本步骤
二、折半查找和归并排序
第二节快速排序的性能分析
一、快速排序算法
二、复杂性分析
第三节中位数选择与最接近点对
一、随机中位数选择算法
二、确定的中位数选择算法
三、最接近点对
第四节大整数相乘与矩阵乘
一、大整数相乘
二、矩阵乘
教学要求:
重点介绍分治策略设计算法的基本步骤及分治法解决问题的设计思路。
第二十三章动态规划
教学目标:
掌握动态规划分析问题的基本思路和分析方法,了解典型的动态规划算法。
教学内容:
第一节最长公共子序列与动态规划
一、最长公共子序列
二、动态规划方法
第二节矩阵连乘
一、矩阵连乘问题
二、动态规划算法
第三节最优二叉查找树
一、最优二叉查找树问题
二、动态规划算法
教学要求:
重点介绍动态规划设计算法的基本步骤、最优子结构性质的证明方法和利用最优子结构性质写出求解最优解值递归关系的过程。
第二十四章图遍历算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节广度优先搜索
一、广度优先搜索算法
二、广度优先算法的应用
第二节深度优先搜索算法
一、深度优先搜索算法
二、深度优先搜索的性质
三、深度优先搜索的应用
教学要求:
重点讲授广度优先搜索和深度优先搜索算法和区间套及白路径定理。
第二十五章贪心算法
教学目标:
掌握图遍历的广度优先算法和深度优先算法,了解图遍历算法的应用。
教学内容:
第一节活动场所选择与贪心策略
一、活动场所选择
二、贪心策略
第二节贪心算法的应用
一、哈夫曼编码问题
二、最小费用生成树
教学要求:
重点介绍贪心策略分析问题的基本方法及思路,和贪心选择性质证明的基本思路。
第二十六章最大流算法
教学目标:
掌握最大流问题的定义,最大流-最小割定理,福特-福克森算法。
了解埃德蒙-卡普算法。
教学内容:
第一节基本概念
一、最大流问题定义
二、最大流最小割定理
第二节最大流算法
一、Ford-Fulkerson算法
二、Edmond-Karp算法
教学要求:
重点介绍最大流-最小割定理,剩余网络及福特-福克森算法。
第二十七章NP