《算法设计与分析》教学大纲一、课程概述算法设计是计算机科学的一门分支学科,是软件技术的一个重要方向。算法设计既是软件设计的关键,也是培养学生成为未来软件工程师所不可或缺的一门专业知识。算法设计与分析课程将高级语言程序设计、数据结构和计算方法等内容紧密地结合在一起,全面培养学生分析问题、解决问题的能力。这门学科的重点是在培养和培训学生学会经典算法方面的知识与应用,因此它对学生的专业发展具有极其重要的意义。算法设计与分析的先修课程是高级语言程序设计、数据结构、高等数据、组合数学。二、课程目标1. 知道《算法设计与分析》这门学科的性质、地位和独立价值。知道这门学科的研究范围、分析框架、研究方法、学科进展和未来方向。2.理解这门学科的主要概念,尤其是算法的时间复杂度和空间复杂度。3.初步学会运用数学的方法推导和证明算法的时间复杂度和空间复杂度。4.掌握常用的经典算法,培养学生在软件设计时对算法设计的重视,并能够把所学的知识应用到具体的软件设计实践中去。三、课程内容和要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错。教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。本标准中打“*”号的内容可作为自学,教师可根据实际情况确定要求或不布置要求。教学内容及教学要求表教学内容知道理解掌握学会1 算法概述√教学内容知道理解掌握学会1.1 算法与程序1.2 算法复杂性分析√2 递归与策略2.1 递归的概念2.2 分治法的基本思想2.3二分搜索技术2.4大整数的乘法2.5Strassen 矩阵乘法2.6棋盘覆盖2.7合并排序2.8快速排序2.9线性时间选择2.10 最接近点对问题2.11 循环赛日程表√√√√√√√√√√√√3 动态规划3.1 矩阵连乘问题3.2动态规划算法的基本要素3.3最长公共子序列3.4最大子段和3.5凸多边形最优三角剖分3.6多边形游戏3.7图像压缩3.8电路布线3.9流水作业调度3.10 0-1 背包问题3.11 最优二叉搜索树3.12 动态规划加速原...