算法设计课程教学大纲
算法分析与设计课程(本科)教学大纲
算法分析与设计课程(本科)教学大纲一、课程编号二、课程类别:选修课三、先修课程:程序设计、数据结构四、适用专业:计算机科学与技术,信息安全五、课程学分/学时: 2.5学分/40学时六、课程的性质与任务:计算机科学是一种创造性思维活动,其教育必须面向设计。
计算机算法分析与设计是面向设计的,因此,它是计算机科学和计算机应用的核心。
无论是计算机系统、系统软件和解决计算机的各种应用课题都可归结为算法的设计。
通过本课程的学习,使学生掌握计算机领域中许多常用的非数值的精确的描述:分治法、贪心法、动态规划、回溯法等。
并掌握算法分析的方法。
从而将学生分析问题和解决问题的能力提高到高层理论的高度。
七、教学主要内容及学时分配(一)、引论(4学时)1.算法的定义及其特点2.算法分析的方法(二)、分治法(8学时)1.分治法的思想2.二分检索、归并分类法、快速分类法及其它们的算法分析3.Strassen矩阵乘法4.其他问题(三)、贪心方法(6学时)1.贪心方法的思想2.背包问题、最小生成树、单源最短路径问题3.其他问题(四)、动态规划(6学时)1.动态规划的思想2.多段图、每队节点之间的最短路径、0/1背包问题和货郎担问题3.其他问题(五)、基本检索与周游方法(4学时)1.二元树周游、树周游、图的检索和周游的一般方法(六)、回溯法(6学时)1.回溯法的思想2.8-皇后问题、背包问题3.以上算法的算法分析4.其他问题(七)、N P难度和NP完全问题(2学时)1.NP难度和NP完全概念(八)、其他有关方法简介(4学时)1.常见概率算法2.并行算法基本概念3.其它相关知识八、教学基本要求(一)、掌握算法的定义及其特点;掌握算法分析的方法。
(二)、掌握分治法的思想;重点掌握二分检索、归并分类法、快速分类法及其它们的算法分析;了解Strassen矩阵乘法。
(三)、掌握贪心方法的思想;理解背包问题、最小生成树、单源最短路径问题;理解以上算法的算法分析。
算法设计与分析课程教学大纲
算法设计与分析课程教学大纲【适用专业】计算机科学与技术【课时】理论课时:32【学分】 2【课程性质、目标和要求】《算法设计与分析》是计算机科学与技术专业的专业课。
无论是计算科学还是计算实践,算法都在其中扮演着重要角色。
本课程的教学目的是讲授在计算机应用中常常遇到的实际问题的解法,讲授设计和分析各种算法的基本原理、方法和技术,培养学生对算法复杂性进行正确分析的能力。
课程基本要求是⑴掌握算法分析的基本概念和理论。
⑵掌握算法设计技术和分析算法以及算法复杂性。
【教学时间安排】本课程计 2 学分,理论课时32, 学时分配如下:【教学内容要点】第一章算法引论一、学习目的要求1.了解算法的计算复杂性分析方法2.理解算法分析的基本理论3.掌握算法分析的基本概念二、主要教学内容1. 算法的基本概念2. 表达算法的抽象机制3. 采用Java语言与自然语言相结合的方式描述算法的方法4. 算法的计算复杂性分析方法第二章递归与分治策略一、学习目的要求1.理解典型范例中递归与分治策略应用技巧2.掌握递归与分治策略3.掌握数学归纳法证明算法正确性方法二、主要教学内容1. 递归的概念2. 分治法的基本思想3. 二分搜索技术4. 大整数的乘法5. Strassen阵乘法6. 棋盘覆盖7. 合并排序8. 快速排序9. 线性时间选择10. 最接近点对问题11. 循环赛日程表第三章动态规划一、学习目的要求1.理解典型范例中动态规划算法的设计思想2.掌握动态规划算法的基本要求以及算法的设计要点二、主要教学内容1. 矩阵连乘问题2. 动态规划算法的基本要素3. 最长公共子序列4. 最大子段和5. 凸多边形最优三角剖分6. 多边形游戏7. 图像压缩8. 电路布线9. 流水作业调度10. 0—l背包问题11. 最优二叉搜索树12. 动态规划加速原理三、课堂讨论选题1. 最长公共子序列2. 0—l背包问题第四章贪心算法一、学习目的要求1.了解贪心算法的理论基础及基本要素2. 理解典型范例中贪心算法的设计思想3. 掌握贪心算法的设计要点二、主要教学内容1. 活动安排问题2. 贪心算法的基本要素3. 最优装载4. 哈夫曼编码5. 单源最短路径6. 最小生成树7. 多机调度问题8. 贪心算法的理论基础三、课堂讨论选题1. 最优装载2. 单源最短路径第五章回溯法一、学习目的要求1.理解回溯法的效率分析方法2.掌握回溯法的算法框架和应用技巧二、主要教学内容1. 回溯法的算法框架2. 装载问题3. 批处理作业调度4. 符号三角形问题5. n后问题6. 0—l背包问题7. 最大团问题8. 图的m着色问题9. 旅行售货员问题10. 圆排列问题11. 电路板排列问题12. 连续邮资问题13. 回溯法的效率分三、课堂讨论选题1. 0—l背包问题2. 图的m着色问题第六章分支限界法一、学习目的要求1.理解分支限界法的基本思想2.掌握典型范例中分支限界法的应用技巧二、主要教学内容1. 分支限界法的基本思想2. 单源最短路径问题3. 装载问题4. 布线问题5. 0-1背包问题6. 最大团问题7. 旅行售货员问题8. 电路板排列问题9. 批处理作业调度三、课堂讨论选题1. 0-1背包问题2. 批处理作业调度第七章概率算法一、学习目的要求1.理解概率算法的基本思想2.掌握典型范例中概率算法的应用技巧二、主要教学内容1. 随机数2. 数值概率算法3. 舍伍德算法4. 拉斯维加斯算法5. 蒙特卡罗算法第八章 NP完全性理论一、学习目的要求1.了解P类与NP类问题2.了解典型的NP完全问题二、主要教学内容1. 计算模型2. P类与NP类问题3. NP完全问题4. 一些典型的NP完全问题第九章近似算法一、学习目的要求1.掌握近似算法的基本思想2.掌握常用近似算法的应用二、主要教学内容1. 近似算法的性能2. 顶点覆盖问题的近似算法3. 旅行售货员问题近似算法4. 集合覆盖问题的近似算法5. 子集和问题的近似算法第十章算法优化策略一、学习目的要求1.掌握算法优化策略2.掌握算法优化的基本方法二、主要教学内容1. 算法优化策略的比较与选择2. 动态规划加速原理3. 问题的算法特征4. 优化数据结构5. 优化搜索策略【教学(实验)内容要点】算法设计与分析实验是算法设计与分析课的一个实践性教学环节。
《算法分析与设计》教学大纲
《算法分析与设计》教学大纲《算法分析与设计》教学大纲大纲描述课程代码:3235058总课时:32课时(32课时听课)总学分:2课程类别:限制选修课程适用专业:本大纲适用于计算机科学与技术专业的预习要求:高级通过本课程的学习,学生可以理解和掌握算法设计的主要方法,培养正确分析算法复杂性的基本能力,为独立设计求解问题的最优算法和分析给定算法的复杂性打下坚实的基础。
课程教学的基本要求:算法分析与设计是一门理论课程,是计算机科学和计算机应用的核心本课程主要介绍算法设计的基本方法。
它的第一门课程是高等数学、程序设计和数据结构。
通过本课程的学习,我们可以在掌握算法设计基本方法的基础上,加深对计算机领域常用的非数值算法的理解和应用。
本课程采用教师教学和学生自学相结合的教学方法。
它主要由教师讲授,结合理论知识,并通过具体算法进行演示,加深理解。
在教学过程中,利用多媒体课件进行操作演示,帮助学生进一步理解和掌握。
教学大纲使用说明:教学大纲适用于计算机科学与技术专业。
如果授课时数少于32小时或多于32小时,可根据教学实践选择相关内容。
第1章:指导和基本数据结构课时:4课时通过本章的学习,学生可以理解算法的概念和特点,学习分析算法的一般方法,掌握大纲文本计算机科学中常用的数据结构,并理解本教材中描述算法所使用的语言此外,如果你已经学习了数据结构,你可以跳过1.4节。
本章重点:算法,分析算法,用SPARKS语言编写的算法,基本数据结构和递归与消去递归要点:算法与分析算法难度:递归与消去递归第1节:算法第2节:分析算法第3节:用SPARKS语言编写算法第4节:基本数据结构第5节:递归与消去递归练习:练习1在书的后面第2章:分而治之方法时数:4小时通过本章的学习,学生可以理解分而治之方法的内涵,然后从二分法的基本思想被用来描述几种经典而精致的算法,包括二进制检索算法、分类算法、选择算法等。
同时,对每种算法都给出了一个数量级的分析,这样学生就可以理解本章介绍的算法,并且可以用来解决实际问题。
《计算机算法基础》教学大纲
《计算机算法基础》教学大纲计算机算法基础教学大纲课程简介本课程作为计算机科学与技术专业必修课,旨在让学生掌握计算机算法的基础知识和基本应用,为后续深入研究算法提供基础。
教学目标通过本课程的研究,学生将能够:- 熟练掌握常用的计算机算法- 理解各种算法的基本思想和运行原理- 能够运用算法进行简单的问题求解和程序设计- 培养编写高效算法的能力教学内容第一章算法基础1.1 算法的定义和特性1.2 算法的分类1.3 时间复杂度和空间复杂度第二章常用算法2.1 排序算法(冒泡排序、快速排序、归并排序)2.2 查找算法(顺序查找、折半查找、哈希查找)2.3 图算法(最短路径算法、最小生成树算法)第三章算法应用3.1 算法在智能搜索、机器研究等领域的应用3.2 算法在计算机游戏、网络安全等领域的应用3.3 算法在大数据处理中的应用教学方法本课程采用讲授和实践相结合的教学方法。
教师将通过课堂讲解、板书演示、案例分析等方式向学生介绍算法基础原理和应用技巧,并通过实例编程和练巩固学生的实际应用能力。
考核方式本课程考核方式包括课堂作业、实验报告、期中考试和期末考试。
其中,期中考试占30%的成绩,期末考试占50%的成绩,课堂作业和实验报告占20%的成绩。
教材与参考书目教材《数据结构与算法分析》,作者:Mark Allen Weiss,出版社:机械工业出版社参考书目《算法导论》,作者:Thomas H. Cormen,出版社:机械工业出版社《算法设计与分析基础》,作者:Sun Limin,出版社:高等教育出版社实验环境本课程实验环境为Windows操作系统,使用Java语言进行编程实现。
教学进度。
《数据结构与算法课程设计》-实验教学大纲
《数据结构与算法课程设计》课程教学大纲一、课程基本信息课程代码:19110132课程名称:数据结构与算法课程设计英文名称:Course design of data structure and algorithm课程类别:专业课学时:32学分:2适用对象: 计算机科学与技术专业考核方式:考查先修课程:C语言程序设计二、课程简介中文简介:数据结构与算法等相关课程对理论和实践兼有要求,其中对算法设计和程序编写的掌握尤为重要。
学生虽可以通过与课堂教学同步的上机实验完成相关内容的练习,但却往往局限于一些功能简单、彼此之间关系独立的算法和程序。
数据结构与算法课程设计更签掉综合训练,致力于培养学生严谨、灵活的算法设计思想和较高的编程能力,为今后从事计算机开发与应用打下基础。
通过对本课程的学习,培养学生进一步理解和掌握所学的各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序设计中的使用方法,使学生具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
本课程的先修课程C语言程序设计,数据结构等。
另外,在课程讲授过程中会涉及一些重要算法发展的历史介绍,以此激发培养学生学习研究算法的兴趣和钻研精神。
英文简介:Data structure and algorithm and other related courses require both theory and practice, in which the mastery of algorithm design and programming is particularly important. Although students can complete the exercises of related content through computer experiments synchronized with classroom teaching, they are often limited to some algorithms and programs with simple functions and independent relationships. Thecourse design of data structure and algorithm has signed off comprehensive training, and is committed to cultivating students' rigorous and flexible algorithm design ideas and higher programming ability, so as to lay a foundation for future computer development and application.Through the study of this course, students will be trained to further understand and master the logical structure, storage structure and operation algorithm of various basic abstract data types, as well as their application methods in program design, so as to enable students to have the ability of preliminary independent analysis and design, and preliminarily master the problem analysis, system design, program coding, testing, etc. in the process of software development In order to improve the ability of analyzing and solving problems independently by using the theoretical knowledge and methods we have learned, we should train software developers to develop software from a systematic point of view and cultivate the scientific working methods and style that software workers should have.The prerequisite courses of this course are C language programming, data structure, etc.In addition, the history of some important algorithms will be introduced in the course of teaching, so as to stimulate students' interest and research spirit in learning and researching algorithms.三、课程性质与教学目的本课程通过一些小型软件项目实践来训练和提升学生对一些基本的数据结构和算法的认识,切实提高学生的算法和程序设计能力。
算法分析与设计教学大纲
算法分析与设计教学大纲一、课程概述二、预修条件1.数据结构基础知识。
2.编程语言基础。
三、授课目标1.掌握算法分析的基本方法和工具。
2.理解常见算法的设计思想和实现技巧。
3.能够独立设计、实现和优化算法解决实际问题。
四、教学内容1.算法基础知识(1)算法的概念和分类(2)算法分析的基本概念和方法(3)复杂度分析(4)递归与递归算法(5)分治法与减治法2.基本算法设计(1)贪心算法(2)动态规划算法(3)回溯算法3.高级算法设计(1)图算法:最短路径、最小生成树等(2)网络流算法:最大流、最小割等(4)近似算法:近似算法的基本思想与应用4.数据结构与算法分析(1)线性表和链表(2)栈和队列(3)树和二叉树(4)图和图的遍历算法五、教学方法1.理论课讲授:通过教师讲解、演示和示范等方式,让学生掌握算法基本知识和分析方法。
2.实践教学:通过课程设计和编程实践,让学生动手实践算法设计与实现,并对其进行分析和优化。
3.讨论与交流:组织学生进行小组讨论和互动交流,培养学生的合作学习能力和问题解决能力。
六、教学评估1.平时成绩:考察学生的课堂参与、作业完成情况和实验报告质量。
2.期中考试:考察学生对课程内容的掌握和理解。
3.期末考试:考察学生对课程内容的整体把握和综合应用能力。
七、参考教材1. 算法导论(第3版)- Thomas H. Cormen等2. 算法设计与分析基础(第4版)- Levitin A. V.八、教学资源1.电子课件和习题集。
2.在线编程平台和算法分析工具。
九、教学进度安排1.第1-2周:算法基础知识2.第3-5周:基本算法设计3.第6-8周:高级算法设计4.第9-11周:数据结构与算法分析5.第12-14周:综合应用与实践6.第15周:复习与总结备注:以上为算法分析与设计教学大纲的基本框架和内容,具体教学安排和进度可根据实际情况进行调整补充。
算法设计与分析教学大纲
02
分而治之篇I
课时
2.1归并排序
2.2递归式求解
2.3最大子数组问题I
第2章单元测验
03
分而治之篇II
课时
3.1逆序对计数问题
3.2快速排序
3.3次序选择问题
3.4阿里巴巴副总裁李飞飞博士访谈:双十一背后的大数据算法
04
动态规划篇I
课时
4.1 0-1背包问题
4.2最大子数组问题II
第4章单元测验
本课程具有对基础知识要求少、对核心方法讲解细、对算法本质剖析深、对产业需求分析准的特点。无论你是你是零基础的算法初学者,还是在算法刷题中困惑的求职者,相信本课程都将通过详细易懂的实例剖析降低理解难度,通过相关问题的归纳总结揭示算法本质,助你真正学懂算法!
帮助学生掌握算法的定义、性质和表示方法,能够熟练使用伪代码对算法进行描述;
05
动态规划篇II
课时
5.1最长公共子序列问题
5.2最长公共子串问题
5.3编辑距离问题
第5章单元测验
06
动态规划篇III
课时
6.1钢条切割问题
6.2矩阵链乘法问题
6.3滴滴出行副总裁叶杰平博士访谈:海量共享出行的算法设计
第6章单元测验
07
贪心策略篇
课时
7.1部分背包问题
7.2霍夫曼编码
7.3活动选择问题
7.4任务调度问题
第7章单元测验
08
图算法篇I
课时
8.1图的基本概念
8.2广度优先搜索
8.3深度优先搜索
第8章单元测验
09
图算法篇II
课时
9.1有向图的深度优先搜索
9.2图中环路的存在性判断
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法设计课程教学大纲
【算法设计】课程教学大纲
【课程代码】04034109
【课程类别】考查课
【学分】3
【总学时】72
【讲授学时】42
【实验学时】0
【先修课程】《C++程序设计》、《数据结构》
【适用专业】2012级计算机科学与技术
【教学目的】
计算机算法设计与分析是计算机算法和软件的基础。
本课程的目的是通过授课和实验的方式使学生掌握计算机算法的基本概念和基本理论,一些具体算法的复杂性分析;算法设计的基本方法、技术和分析方法;经典数值计算问题、递归与分治、动态规划、贪心法、回溯法、和分支限界法等解决问题的方法。
【课程的基本内容和要求】
(一)算法概述
教学内容:
1.1算法与程序
1.2算法复杂性分析
1.3 NP完全理论
教学要求:
理解程序与算法的概念、区别与联系;掌握算法在最坏情况、最好情况和平均情况下的计算复杂性概念。
(二)递归与分治
教学内容:
1.递归的概念
2.分治法基本思想
3.二分搜索技术
4.合并排序
5.快速排序
6.大整数乘法
教学要求:
理解递归的概念;掌握设计有效算法的分治策略,并掌握范例的设计技巧。
(三)动态规划
教学内容:
1. 矩阵连乘问题
2. 动态规划算法的基本要素
3. 最长公共子序列
4. 0-1背包问题
教学要求:
理解动态规划算法的概念,掌握动态规划算法的基本要素,掌握设计动态规划算法的步骤,并通过应用范例学习动态规划算法的设计策略。
(四)贪心算法
教学内容:
1.活动安排问题
2.贪心算法的基本要素
3.最优装载
4.哈夫曼编码
5.单源最短路径
教学要求:
掌握贪心算法的基本要素,理解贪心算法与动态规划算法的差异,理解贪心算法的一般理论。
(五)回溯算法
教学内容:
1.回溯法的算法框架
2.0-1背包问题
3.装载问题
4.n后问题
5.旅行售货员问题
教学要求:
理解回溯法深度优先搜索策略,掌握用回溯法解题的算法框架,包括递归回溯、迭代回溯、子集树算法框架、排列树算法框架。
(六)分支限界算法
教学内容:
1.分支限界法的基本思想
2.单源最短路径问题
3.装载问题
4.0-1背包问题
教学要求:
理解分支限界法的基本思想与剪枝搜索策略;掌握分支限界法的算法框架,包括队列式(FIFO)分支限界法与优先队列式分支限界法。
【实验学时分配表】
【有关说明】
1、教学建议
在教学中安排一定的习题讨论时间,使学生锻炼分析问题的能力。
教学中的一些习题建议学生安排上机,这样才能全面掌握常用算法的分析和设计技术。
2、课程建议教材
《计算机算法设计与分析》王晓东编著电子工业出版社
3、课程建议参考书
《算法导论(原书第3版)》(美)Thomas H.Cormen著机械工业出版社《算法设计与分析》吕国英编著电子工业出版社
【考核方式】:考查。