| 选课类别:计划内与自由选修 | 教学类型:理论课 |
| 课程类别:本科计划内课程 | 开课单位:数学科学学院 |
| 课程层次:专业选修 | 学分:4.0 |
张举勇老师的《算法基础》课程使用《算法导论》作为教材,内容涵盖排序算法、动态规划、哈希表以及图论等经典算法和数据结构。课程与先修的"数据结构与数据库"有一定重合,是一个编程和算法思维训练的良好平台。部分评价指出,讲课风格不够吸引人,有时略显随意,但课程内容扎实且逐年改进,老师融入了一些学术前沿的知识拓展视野。
课程评分由书面作业、编程作业(OJ系统)、大作业和期末考试构成,其中期末考试占比约60%。学生反映编程作业量大且有一定挑战,但有助于提高编程能力。期末考试虽然基本上是原题复现,但题量大,强调记忆和理解,需要广泛复习课堂内容。
作业包括书面和编程题,书面作业大多为教材习题,网上有答案,编程作业每周有一定量,需认真投入。大作业的完成需要运用课程中教授的最大流算法问题,但有学生反应涉及到图形学问题稍有偏题。
张老师在过场景请学术大牛讲解前沿技术,助教积极辅导,课堂氛围友好。到课率不高,或许与上课的吸引力有关,但均表示课堂ppt简洁明了,复习使用方便。助教系统性地支持了在线答疑,为学生提供了良好的帮助。
给分政策比较友好,通常会调分以保证优秀率。尽管部分学生在大作业和期末考试时遇到困难,但整体评价表示努力可以获得好成绩。张老师的人性化管理和善意调分使其赢得了不少学生的喜爱。
总结而言,《算法基础》提供了良好的算法训练平台,适合希望加强编程和算法能力的学生。建议有意选课的同学提前做好自学准备,积极参与课堂互动和编程实践。课程虽有挑战,但在认真投入的情况下,将会有显著收益。
这门课用的教材是Introduction to Algorithms (3rd Edition),有对应的中文译本《算法导论》(第三版),不过老师的PPT也是用英文撰写的。书后习题网上有答案,直接百度相应章节即可,下面是一个较为完整的英文版答案:https://walkccc.github.io/CLRS/
老师讲了书中的第2,4,6,7,8,9,12,13,14,15,16,22,23,24,25,26,32,33(最近点对的计算),22(线性规划的标准型)。老师上课声音有点小,而且讲课逻辑有一些混乱...感觉有的老师自己可能都不太完全掌握,所以也导致除了前几节课外基本上都没什么同学听,旷课迟到也是常有的事...
每周一般布置4~16道书面习题...量非常大,经常要写(chao)很久很久,本学期助教比较负责,安照一题1分计算平时分,迟交打五折,最后统计学期一共是114题,平均分99.88。(这部分占总评20%)另外除开刚开学几周外平均两周左右布置一道程序设计题,这学期的题目是:1.找n个数中第k小的元素 2.实现红黑树和顺序统计树 3.实现矩阵连乘的最优括号化方案/两种方法实现最大子数组 4.求解任意两个顶点之间的最短路径 5.二选一复现老师给的两篇论文(纹理合成/纹理切割)。每次上机满分5分,最后一次按两次计算。(这部分也占总评20%)
今年的期末考试题出现大量前年考试原题,也有一两道去年考试的原题(期末之前几周老师让助教发群里),据一个学长所说,当年他上这门课的时候老师开学时发的卷子也与期末考试题大量重合(我怀疑是老师忘了发过卷子),因此建议大家找一下往年卷子做一做...可能基本上都是差不多的。期末试卷难度基本上等于中等的作业题难度,大概就是算法证明、算法默写、建模...不过题量很大,最好能熟练地记下书上的算法,满分110(有一道附加题),考多少最后就算多少。
最后的给分按20%书面作业+20%上机+60%期末卷面,我的成绩是没怎么调,涉及卡绩的可能有微调吧。
课堂:到课率低,老师声音有点小,我反正没怎么听
教材:clrs
书面作业:量大,平均难度一般,部分较难的题可以参考github上答案,反正考试不会考难题。迟交打五折,尽量提前一两天写好,虽然我都是要交的前一天肝的。
编程作业:最后一次大作业略难,其余对书上伪代码进行翻译并利用python的库进行数据处理和绘图即可完成,难度较小。过ddl得分打五折,千万不要太拖延。
考试:这次考试题和前年考试题大面积重合,我已经彻底没话说了。水题+算法默写+附加题,满分110。然后水题也不知道为啥完全正确的答案要扣分,有些题干没要求的事你不干还扣分,我强烈要求算法基础考试删除所有题干,让学生们心灵感应猜猜老师要我们往卷子上写啥。
(考试就是考试,希望老师和助教们可以认真对待,认真出题、认真写题干、认真制定评卷标准、认真批改试卷。)
给分:个人觉得还行,请参考学生们的平均评价
这门课老师的存在感可以说是很低了…能给7分主要是教材算法导论还是很经典的,可以看看。书上的内容都还是比较有意思也有用的。但是正如上面的评论,感觉老师对算法的理解也只是停留在应该怎么做,对于为什么要这么做其实并不十分清楚(当然可能应用中也不需要特别清楚)。所以老师上课也讲得不是很清楚,需要自己好好看书。 课程前半学期进度很快,每周作业量巨大,而且教材的习题还是蛮难的,需要参考上面评论贴出的答案……上到图论以后速度和作业量都变得可以接受。总共五次编程作业,最后的大作业是实现论文啥的…实在是不太友好。考试=算法默写大赛,只要对书上的算法和作业题比较熟练就行…我从头到尾没停笔才勉强做得只剩最后一道附加题,题量是很大的。 值得一提的是老师会请人来讲讲深度学习的科普啥的,比较关注前沿领域的科普,这还是不错的(不过也就是科普了啦)。