历史匿名回执 ·
### 课程内容: 1. Introduction: 算法基础概念 2. Mathematics: 数学基础 3. **Divide and Conquer: 分治算法** 4. **Greedy Algorithm: 贪心算法** 5. **Dynamic Programming: 动态规划** 6. Amortize Analysis: 摊销分析(聚集法+记账法+势能法) 7. Randonmized Algorithm: 随机算法(Monte Carlo + Las Vegas + Sherwood) 8. Approximation Algorithm: 近似算法 9. Tree Search: 树搜索 10. NP: 可计算性与计算复杂性(可计算性理论+NP问题理论) 11. **Optimaztion Algorithm: 优化算法**(SA + GA + PSO) 上面的黑色字体就是考试和作业的重点火葬场。 此外,其他重点或稍重点还包括:数学基础中的递归方程和主定理、摊销分析中的势能法、树搜索中的分支限界算法以及A*算法、优化算法中的模拟退火算法。 难点嘛,各章节其实都挺难,难中之难的是NP里某些概念的理解,还有各种算法的分析和证明部分。不过考试不碰这些。 内容上根本不是”和数据结构差不多“,区别大得像火锅和关东煮。 ### 上课自由度: 随机签到(本学期签了8次,似乎只会签到1/3*24=8次,也就是说这8次全缺席就直接满足1/3条件) ### 考核标准: 40%平时(考勤+作业+实验报告)+60%期末考试(闭卷) ### 授课质量: 说实话绳老师讲课比较催眠,毕竟算法本身就干,还强数学、强证明,三重安眠buff。 但要是选了这门课,**推荐好好听课,上课不要干别的**,哪怕它只是一门交叉课/个性化。 因为这门课**真能教会你一点算法的思想和概念**,比如分治算法和动态规划、比如分支限界、比如A*、比如模拟退火,部分算法在EDA设计里是有用的(尤其模拟退火)。 其次,**要是之前上课没怎么听,后面考试复习会很痛苦**,因为很多章节内容都挺难,而且**考试题量很大、要求写伪代码和分析复杂度的地方很多、还有一堆直接考察概念的地方**。 但**要是你上课好好听了,或者至少复习花了大把时间把这些章节啃透,考试还是比较轻松的**,虽然体量大但难度不高,基本上是每个章节几个经典问题里挑一个出来做点变式,甚至有些变式拙劣到你一眼就能看出原型。 任务量不算大,主要集中在第3~5章和第11章(有作业和实验)。其他章节零零散散总共就两三次作业。 个人觉得AI时代下不妨了解一下这些传统算法,至少微电子领域的EDA里某些传统算法应该还在广泛用。至少十年内估计不会出现”纯 Transformer 自动出 GDS“的情形哈哈哈