课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
SPOC学校专有课程
算法分析与设计
第10次开课
开课时间: 2024年03月05日 ~ 2024年07月07日
学时安排: 3-5小时
当前开课已结束 已有 453 人参加
老师已关闭该学期,无法查看
spContent=“有两种思想,就像摆放在天鹅绒上的宝石那样熠熠生辉,一个是微积分,另一个就是算法。微积分以及在微积分基础上建立起来的数学分析体系造就了现代科学,而算法则造就了现代世界” ——大卫.伯林斯基
“有两种思想,就像摆放在天鹅绒上的宝石那样熠熠生辉,一个是微积分,另一个就是算法。微积分以及在微积分基础上建立起来的数学分析体系造就了现代科学,而算法则造就了现代世界” ——大卫.伯林斯基
—— 课程团队
课程概述

算法是计算机科学的核心,绝大多数科学、商业和技术都与其密切相关。课程将从算法表示、分析、设计策略三个方面开展线上线下混合教学,以实际工程应用问题为导向,开展探究式实践教学,使学生能从数学上分析算法的时间、空间复杂度;针对特定的问题,能形式化描述问题,选择合适的算法设计策略开展算法设计、分析、证明等,能对问题的算法复杂性进行讨论。

教学团队长期从事程序设计、算法分析等课程的教学,多年指导程序设计类学科竞赛,同时具有丰富的软件开发工程经验,能将算法设计策略与工程实际问题进行有效结合,有效训练学生的计算思维及解决实际问题的能力。


授课目标

目标1:能重述算法时间复杂度分析的概念和符号,能够对软件系统中设计的递归算法、非递归算法的时间复杂度进行数学描述及分析,并能选择合适的渐进符号进行表达,并能对不同算法的时间复杂度进行比较与总结。


目标2:能使用标准伪代码对软件系统中特定问题的算法进行表达,能形式化描述问题,针对问题目标,能选择合适的设计策略进行算法设计。


目标3:针对设计的算法,能对其正确性进行说明,能分析算法的时间复杂度,并能通过文献调研、实验分析、讨论不同算法的优劣,针对问题目标,通过分析能得到有效结论。


成绩 要求

百分制,满分100分,60分合格。

考核方式:

线上单元测验:10%

线上单元作业:10%

线上课程讨论:10%

课后研究报告:10%

上机考试:期中(30%)、期末(30%)


课程大纲

第一章 算法及问题求解过程

1.1 什么是算法

1.2 问题求解过程

第一章 单元作业

第一章 单元测试

第二章 算法效率分析基础

第二章 单元作业

2.1 算法分析框架

2.2 时间渐近表示

2.3 非递归算法效率分析

2.4 递归算法效率分析

第二章 单元测验

第三章 蛮力法

3.1 蛮力法

3.2 最近对和凸包问题等的蛮力法

3.3 穷举问题的蛮力法

第三章 单元作业

第三章 单元测验

第四章 减治法

4.1 减治法与排序

4.2 生成组合对象的算法

4.3 减常因子算法

4.4 减可变规模算法

第四章 单元作业

第四章 单元测试

第五章 分治法

5.1 分治法与排序

5.2 快速排序

5.3 最近对问题

5.4 凸包问题

第五章 单元测验

第五章 单元作业

第六章 变治法

6.1 变治法与预排序

6.2 高斯消元法

6.3 堆和堆排序

第六章 单元作业

第六章 单元测试

第七章 时空权衡

7.1 分布计数排序

7.2 字符串匹配中的输入增强技术

7.3 散列法

第七章 单元测试

第七章 单元作业

第八章 动态规划

8.1 动态规划基本原理

8.2 背包问题

8.3 最优二叉树

8.4 Warshall算法

第八章 单元作业

第八章 单元测验

第九章 贪心方法

贪心策略概述

Prim算法

Kruskal算法

Dijkstra算法

第十章 迭代改进

迭代改进

单纯形法

第十一章 回溯与分支限界

回溯法

分支限界法

展开全部
预备知识

先修知识点:集合、排列、矩阵、高级程序设计语言、图、树、递归等。

先修能力和素质基础:能使用高级程序设计语言完成代码编写、运行与调试的能力,具备一定分析问题和解决问题的能力。

先修主要课程:离散数学、程序设计(C语言)、数据结构。

参考资料

1. (美) Anany Levtin著. 算法分析与设计基础(第三版),潘彦译,清华大学出版社,2015年2月

2. Thomas H.Cormen等著,殷建平,徐云,王刚等译.算法导论(第三版).机械工业出版社.20131

西南科技大学
5 位授课老师
杨春明

杨春明

副教授

谢先博

谢先博

讲师

李波

李波

讲师

下载
下载

下载App