| 选课类别:基础 | 教学类型:理论课 |
| 课程类别:研究生课程 | 开课单位:计算机科学与技术系 |
| 课程层次:硕士 | 学分:3.0 |
算法设计与分析是计算机科学与技术各专业硕士研究生必修的基础课。本课程主要介绍概率算法、近似算法和分布式算法基础,使学生掌握概率算法、近似算法和分布式算法设计及分析的基本方法。主要内容分为如下三个部分。
一. 概率算法,主要包括:
1.基本概念:主要介绍概率算法的特点、意义、分类、复杂性分析方法;2.数字概率算法:重点介绍π值计算、数值积分、概率计数以及其它数值算法的设计和分析;3.Sherwood算法:以选择和排序、随机预处理、有序表搜索等问题为例重点介绍Sherwood算法的概念和特点,以及算法设计和分析的方法;4.Las Vegas算法:以n-皇后、模p平方根、整数的因式分解等问题为例重点介绍Las Vegas算法的概念和特点,以及算法设计和分析的方法;5.Monte Carlo算法:重点介绍一致、有偏、精度分析等基本概念,以主元素、素性判定、矩阵相乘等问题为例,重点介绍Monte Carlo算法设计、分析和改进的方法。
二、近似算法,主要包括:
1.NP完全性理论:主要介绍图灵机等计算模型、问题变换及计算复杂性规约、P类问题、NP类问题、NP-hard和NPC问题、Cook定理等;2.基本概念:介绍优化问题的近似解分类、近似算法的绝对性能保证、相对性能保证(包括绝对性能比、渐近性能比、最佳可达性能比)、近似模式(多项式近似模式、完全多项式近似模式)、绝对近似算法之否定、相对近似算法之否定等;3.基本算法:图的顶点着色、图的边着色、多机调度、装箱、旅行商、顶点覆盖和最大独立集问题等问题的近似算法。
三、分布式算法基础,主要包括:
1.基本概念:介绍分布式系统、计算模型、复杂性度量标准等分布式计算的基本概念;2.分布式算法基础:主要介绍同步和异步网络模型,同步/异步环中的Leader选举、一般网络中的Leader选举、生成树构造、广播和敛播、广度/深度优先搜索、最短路径、最大独立集等分布式算法;介绍异步共享存储器和网络算法、重点介绍互斥和资源分配问题,介绍哲学家用餐算法、着色算法、有向无环图算法以及哲学家饮水算法等。
我忏悔,我不应该睡懒觉早上不起来听课的。还好 B 站有往年录播,不然我应该是没有耐心自己看PPT自学。【中国科学技术大学-分布式算法-算法理论-算法设计与分析-汪炀】 https://www.bilibili.com/video/BV1nQ4y1f78C/?share_source=copy_web&vd_source=26e90d756a6cbf8a5f9b827f9ba8ee8f
往年课程网站http://home.ustc.edu.cn/~wx309/lecture/alg2025/index.html。有往年 PPT 和板书内容,和今年内容基本一样。
很多同学看了汪老师往年课程的评价之后可能会有一个先入为主的印象,觉得自学看 PPT 如同天书,心生恐惧,再加上 PPT 不甚美观,缺乏审美,也没有耐心自己读一遍,而且 PPT 十年未变,可能会直接放弃听课。本人最开始坚持听了几节,无奈于安全性和活性部分手写板书最开始没有认真听,后面就听不懂了,干脆直接不听了,外加后一次课还在宿舍睡觉没起来,就落下了很多进度。由于不想一个人看 PPT,只能硬着头皮把录播看一看,赶上进度之后发现其实大部分内容也很容易理解,而且老师上课也不快,还会画图辅助理解,PPT 还是能看懂的。所以还是推荐大家及时跟上课程进度,然后去听课。我的看法是,研究生的课程上课如果能基本听懂,课后花时间写完不多的作业,基本上比本科多了很多空闲时间。根据这两周的上课体验,大部分课程,基本都能听懂,无非是上课走神,哪一处证明没理解,导致一整个问题都没听懂,没关系,这个也只是小问题。
本人背景,本科成绩排名50%左右,以前没有学习过并行计算和分布式算法,区块链课程的分布式算法当时也听不懂。目前来看,除了板书部分需要一些耐心听老师讲之外,其他算法相关的内容还是很容易理解的,大片的算法伪代码实际过程真的没有迪杰斯特拉算法复杂。
教学相关的问题。2次板书的内容老师大概率是这十几年每年都抄一遍,甚至都没有时间补充到 PPT 上,应该是老师太忙了吧。从听课的角度看,PPT 除了不太美观之外也没什么缺点。但是就像很多同学自己做 PPT 不追求美观一样,没有审美的 PPT,别人可能从心理上就有一点抗拒,同样内容的两份 PPT,美观的那份至少不会被扣分。