选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:3.5 |
"在计算机科学中,算法(Algorithm)可以理解为求解问题的一个具体计算步骤。本课程主要介绍算法的基本概念,以及算法设计和分析的基本方法和技巧。课程包含了高级数据结构和算法的若干基本内容:算法分析的基本技术、排序、堆和优先队列、红黑树、平摊分析、二项堆、分离集合、分治法、动态规划、贪心法、快速富利叶变换、图论算法、串匹配等,和典型计算问题的求解算法。"
徐云老师作为《算法导论(第三版)》的译者之一,课程内容扎实,贴合课本,教学风格与内容扩展都很到位。他讲解深入浅出,采用板书加PPT的方式,前半学期使用中文PPT,后半学期切换到英文。部分内容较简单,重点强调算法思想而不是具体细节。
作业每1-2周一次,来自课本习题(《算法导论(第三版)》),难度不高,需要在每周第一次课交。实验基础且较为简单,但有些设计简陋,如能改为OJ形式可能更好。实验检查时间有限,线上排队体验较差。
期中模拟考试(不计入总评),期末考试以基础题型为主,包含填空、简答和解答题。填空题可能涉及较偏的概念,解答题考查算法设计能力。难度适中,重点考查对算法思想的理解。给分情况不一,有人觉得总评较低,尤其与隔壁顾明杰老师班相比,但也有学生意外获得好成绩。
徐云老师不执着于考查算法的细节,而是关注算法思想及理解。课堂上不点名,但有多次小测,签到性质较强。上课体验优秀,很多学生认为徐老师和蔼亲切,班级人数较多。选择此课适合不希望课业过重的同学,但实验和期末的压力仍需注意。
徐云老师的《算法基础》课程内容扎实,教学方式亲和,但作业和实验较为基础,适合希望轻松但仍想打好基础的学生。对于寻求挑战的学生,可能需要选择更为深入的课程。
难度实在有点大,写红了
一觉醒来全球算法水平下降一万倍
考场上我拿出白纸写下摊还分析四个大字,正要写nlogn的上界时助教震惊地大喊“居然是失传已久的聚合分析?你竟然会这个?”她声音有些大,老师在台上面色狐疑地看向我,我才发现考试前一天这章我一页没看
“那你说,渐紧上界是什么?”"g(n)<c2f(n)。”我稍加思索就给出了答案,老师的脸上浮现出狂喜,向我奔驰而来,拍了拍我的肩,说到“先不用考试了,现在快跟我到办公室来。”“老师,我还要写完这道题恐怕没时间啊、、、这”我面露难色。“考试?”教授大手一挥,“全写的都是0分,不必考试了!”说罢,丢下面面相觑的同学把我带到办公室。
我刚坐下,就看到一群老师拿着一些东西向我走开,为首的还是本校资格最深的实验室带头人。“同学,”他紧张的握了握我的手,手心里竟然全是汗,“你知道多段图的动态规划算法吗?”“最短路径”我几秒就给出了答案。“快!根据他去审查招生办的人!”
我被教务处带走前看到的最后一幕是算法老师眼含期待热泪盈眶的眼神、、、
出分了,徐云老师很好,我错怪老师了,虽然稍微有点低,但是在我写爆几道大题的情况下,似乎很好了
课程主页:http://staff.ustc.edu.cn/~xuyun/algcs.htm
实验主页:http://home.ustc.edu.cn/~wpc520/alg/
习题解答:https://walkccc.github.io/CLRS/
哎卧槽算法怎么这么坏啊!
先放一个自己做的复习提纲,仅供徐老师班同学复习(我没看NP问题那一章,结果考了填空,后来者请注意):
出分后补其他点评
出分了,感觉。。。不是很捞。。。不过主要原因是复习用时最长的算法,期末考得不好,整个人直接无奈地笑
好吧,还是有点难过的
课堂:
不点名,每周几乎都小测。有些章节用英文PPT,有些章节老师自己板书。课堂上人很多几乎坐不下,视力不好的同学如果想抄笔记尽量坐前排。
作业:
每1-2周一次,都是课本上的题(《算法导论(第三版)》),网上也可以找到答案,不过有一位助教改作业的时候会批注“抄袭可耻!”来让大家不要无脑抄答案
助教&实验:
本学期一共4位助教,8个实验,检查实验分为线下和线上(投票决定时间),几位助教轮流检查。建议能线下就线下,线上检查要在腾讯会议等候室里面等好久,因为链接一发大家全点进去。实验不限制实现语言,但最好是C/C++
不得不说助教批改作业不太及时,结课之后还集中批了好几次BB上才有分数,作业标答也只有习题课展示
考试:
全闭卷,分为填空、简答、程序设计(解答题),一定会考一道手算时间复杂度的简答,其他忘了
非常有幸成为计算机学院近几年来完全避开顾乃杰老师的首批学生(我的运筹学基础也是黄章进老师上的,错开了另一个顾/黄混合班)。虽然都过完年了,成绩也还没出,但是我害怕时间太久就忘记了,所以先记录一下。
--
虽然徐云老师是第一次来计算机学院上这一门课,但他是《算法导论(第三版)》的译者之一,对教材应该是相当熟悉的,本门课基本上也是以《算法导论(第三版)》这本书为主线,章节顺序以平时的上课中英混合的 slides 为准,slides 课后会放在课程主页上。
以下是我觉得徐老师的课比较好的地方:
有这些不太好:
--
开学前两天总算出成绩了,有次实验忘了交实验报告也还是 A+,非常感谢老师和助教了。
算法这种课对于我这种学渣还是挺难的,不过徐云老师讲课听起来不会很难,给分也很好
楼上几位同学都说得差不多了,我就放个试题供下一届同学参考吧(与隔壁gnj分开出卷的)
这课告诉我们一个道理:往年的经验不可全信。
今年大家一窝蜂选徐云老师班,老师极不情愿最后还是无奈帮十来个同学签了个性化。导致这个班最终人数是110+,而隔壁gnj班只有50+。最终结果是这个班给分普遍低于预期,基本都是3.3或3.7,而gnj班有很多人上4。严重怀疑是老师间内部沟通,通过这种方式均衡下一年的教学压力。
实验设计的太简陋,感觉都是助教随便水出来的,没有起到多少锻炼能力的作用。作业每周6道题,大概2小时之内都能做完,有4次点名性质的小测。平时分大家基本都拿满,考试也真心不难,能把总评普遍压到这么低也是挺佩服..
辅修人,第一次见老师是在考试的时候(逃 因为打过ACM然后又恰好叠课就没去听了,全程网课(但是有几次网课崩了就没听) 总体而言讲课水平还可以 老师对知识掌握程度还是比较靠谱的 但是拓展部分讲的有点快 大概连概念都弄不明白就过了。但是对于考试应该掌握的基础讲的还算是可以吧。 期末考试试卷难度比较阳间,算法设计都是很基础的题型,开头的填空题也没有去刻意恶心人,确实符合老师所说的你既然学过这门课你就应该知道的基本知识。因为是辅修没啥卷的欲望做完之后不想检查就直接交了。 老师人还行吧,几次邮件交流感觉挺亲和,但是确实有一点小学究但是不影响大局 但是这门课的败笔在实验,实验设计的有问题,感觉实验收获很小,而且我认为这种实验不如改成做oj,一方面助教轻松,另一方面更可以训练debug的能力 关于给分:在和电磁学争夺谁是最后一个出成绩的。。。
出分了,4.3。 占优秀率了我自裁我自裁 不过xy说课堂占比5%我是真的连教室都没去过啊。。。。。甚至作业都扣了好多分。。。。
老师讲的很扎实,但是感觉内容大部分是炒冷饭,可以尝试讲一些有意思的内容(?);实验部分值得批评,内容过于简陋(对比隔壁院长班),要求有点抽象,检查标准也比较水,希望加强。平时大致是在摸鱼,期末突击了一下,最后总评91。
~~但是感觉19年秋的给分不如杰哥班,隔壁一堆90+,而我们似乎没调分...(当然可能是期末试卷简单)~~
1. 一楼说得对!
2. 徐云老师说的超对!——“ 算法这门课需要平时课后多回顾,多思考算法的思想,他们怎么就能想出来,我们看看还能不能有改进”(如图可以是一个例子吧?考前突击是没有前途的,指这门课)
3. 老师上课的思路也很好,先给出问题,接着分析或者给最简单的方法,在讲更现代的算法之前会先说 "改进思路“,也就是原算法的缺点。如果时间够的话,会让我们先思考当前算法的不足之处。
4. 和一楼的感觉不太一样的是,我觉得实验设计有点简陋吧,没能起到从理论落实到实践能力的作用
5. 和隔壁比起来给分很好,本人92
(woc楼上怎么把我要说的都说了):
徐云老师作为《算法导论》的译者之一,资历和教学水平不容置疑,而且大部分要点楼上都已经说到了,这里略作补充:
1. 徐云老师上课采用的板书+PPT模式,前半学期PPT为中文,后半学期变为英文。
2. 期中考试非常难,期末考试相对简单。
3. 总评高于预期,淘汰率似乎不高。
总的来说徐老师的讲课水平还是非常高的,不过后半学期略显准备不足,总体姿势水平相当高。
大家顺便可以期待一下并行计算。
徐云老师的课上起来很舒服,语速不算快并且讲的很清晰,不过会有小测(这学期貌似是四次,就一道题,都是老师随手现出的小题,据助教说写错了也没关系)并且今年是没有期中考试的,徐老师在群里投票后发现一致不想要期中,就弄了一次一小节课的模拟考(45分钟),也不需要上交作答。(还记得徐老师笑着说自己要开创一个压力式考试方法,只考不收,让同学们有紧迫感o((>ω< ))o)
要说有缺点的话就是课程形式转折的有点突兀,这学期先是板书(约25%),然后用英文PPT(约50%),最后又变成中文(约25%)
实验方面,不得不说确实有点基础,很多同学戏称算法实验“不配上桌” ( ‵▽′)ψ (不过这好像也是这门课的通病了,和前面的课程重复的有点多),这学期往往都是在编译H、计网、数据隐私实验的夹缝中顺手把算法实验做完(不算报告保守用时也就30min)
此外就备考而言,徐老师说过自己不喜欢直接考算法伪代码这种非常细节的算法处理,而是更多的考算法的思想(给实际例子用算法解答这种),实际考下来确实如此。今年的考试题型分为填空、简答和解答题,填空题有一些是比较基础的(并且助教说部分答对会给1分,太奶了,爱了爱了。注:一个空满分2分),但是记得有一道填空题离谱的很(貌似是先问的大整数乘法在苏联科学家改进后的时间复杂度是_____,目前最优的时间复杂度是_____(注意,这里说的是最优),第一个空还比较容易答出来,但是第二个确实非常非常偏,我在复习了两遍的情况下,考后对着PPT翻了好久才找到)建议想拿高分但是又不太能做出最后一题的同学,在复习的时候还是要多看一看PPT上比较细节的点,后面的简答题倒是比较常规,仔细对着PPT复习的话问题都不大,PPT上有的地方看起来就很像能考简答题的点(就本次考试而言,还是对着PPT复习效果更好,毕竟是各自出题)最后解答题方面,今年是四道大题,第一道大题记得是出自作业题(一模一样),属于送分档;第二道考了一道回溯算法的基础类型,不过也有一些需要回答的小问题(比如怎么优化,优化后的时间、空间复杂度是多少,这些老师上课都讲过,还是建议认真听课);第三道是计算一个问题的平摊分析,也算是比较基础(掌握好三种方法即可,也是偏向于应用);不过最后一道算法设计题(具体题目记不太清了)确实是送命题了,实在是做不出来(三问里就第一问比较简单,后两问需要各自进行一种算法优化设计),据说老师上课也有提过相关的思想,不过实在是没印象了,老师也说过最后一题是用来增加区分度的,做不出来也不用气馁,但在考场上有大把时间却没有一点思路的时候确实也有点沮丧,大家最好有心理准备。
总之,还是非常推荐选徐老师的课的,一学期下来体验非常良好ヾ(≧▽≦*)o
纯乐子人,但期末在没教过倍增的情况下让凭空设计出设计 ST 表是不是有点逆天了?
徐老师上课的时候,会提到他带学生发相关内容文章的事情,感觉是一位非常关心学生的老师。要不是他快要退休不想收学生,我就给他发邮件了。
可能快退休了比较佛系,这学期没有出现过“迟到就不给进教室”的情况,这和之前看到的评论不太一样。相反,徐老师给我一种很和蔼的印象,他经常笑着说“天气冷了,同学们都起不来了”。
真的是一学期学的最认真,最扎实的课了(不需要突击复习的那种程度……
最后那个总评真的是低的让我扎心(感觉自己考的还很好……
但是老师真的很可爱,很可爱……上课体验很棒
最后,求分数的话,出门右拐,杰哥班走起吧
计网先给我一巴掌,紧接着算法又是一巴掌
好想知道自己期末考得有多烂
收获:算不上多(要真想收获多的话建议提前一个学期去上 cx 班),但是如果其他课的课业很繁重的话,还是建议来这个班吧,毕竟这个班是真的只讲基础,我们这一届这个班的置课也没有少院,而是以计科为主(下一届不好说)。同时也非常适合像我这种之前学过竞赛但是之后又不想继续做 tcs 的,可以摆一个学期。
任务量:比隔壁班少,不用写 OJ,总共就 8 次实验,不过唯一有点不太好的就是每周只有一个固定时间可以检查实验,我们这次是只有周二上午线下和周五晚上线上(二选一),我因为周二上午有课所以选了周五晚上,但是我周五晚上经常会在别的地方(有时候是在家,有时候是去打比赛),所以很难找到合适的环境给我检查实验,比如去 ICPC 沈阳站那周末,当时我还在北京,于是我就在北京的一家面馆里面检查了实验,又比如去 ICPC 昆明站那周末,当时要和两个队友一起去吃菌子,我就在出租车上先进了会议开始排队,结果下车之后突然排到我了,于是我就只能在路边把实验检查了。而且每次实验检查都像一个双核 CPU 在处理大量可并行化的任务一样,后面的任务需要等待很长时间,体验挺差的(关键是腾讯会议自己这边还看不到前面排了多少人,还得去群里问助教当前排队进度)。课上会有小测,一学期 8 次,所以课还是要去听的。
助教:非常友善且负责!以下是两个例子。最后一次实验检查那天我忙别的事情忙忘了,到第二天看群才想起来,然后赶紧去联系助教姐姐,助教姐姐就抽空帮我把实验检查了。有一次批改完作业之后发现作业只有 8 分,我看了一下,助教扣分是扣在 Huffman 树那题,可能是助教理解当中 Huffman 树中一个节点的两个儿子应该必须是右儿子更大,但是我是把大的部分放到了左儿子(以前一直这么画的),我印象中 Huffman 树左右儿子是无所谓的,就去课本上找了一下,确实找到了相应的句子,我就跟助教姐姐说了一下,助教姐姐不仅承认了错误,帮我把分数改了回来,还去看了她改的其他人当中有没有相似的问题,真的很用心了。
考试:没有期中考试,但是期中会有一次模拟考试(不算在总评)。期末考试题目难度相对正常,可能就填空题有点抽象吧,其实有几个空我也不知道具体该怎么填,我就把我的想法填进去了,不过批改的时候应该是合理就给分了,绝大多数题也确实是基础扎实就能做出来的。最后一题对没学过算法竞赛的人来说会很有难度,我们这次是设计 ST 表(Sparse Table),也不知道明年会要设计什么,其实 ST 表的思想并不复杂,就是倍增的思想,但是课上也没专门提到倍增,如果完全没接触过这一块的话想设计出这个就得思维很灵活了,难度还是很大的,而且说实话用这种东西拉区分度确实不太好。当然或许平时有人会没事就研究各种各样的算法,然后就刚好知道了有 ST 表这个东西,就很赚了。所以我这里推荐一个网站:https://oi-wiki.org/,没事想看看新算法的人可以上这个网站看。
给分:我的给分可能没什么参考价值,因为我是把 ST 表写出来了的。可以去看看其他同学的给分,参考价值应该更大。
辅修人,给分难以置信。期末最后一题暴毙+填空好多不会,平时小测因为叠课和早八的缘故翘了一大半,竟然给了92分!这几天忙着美赛,搞完再细评一下。
事少给分好,适合我这种摆子
平时实验太无聊。 期末给分真的杀手
往年的给分经验不可全信;
考前习题课不可全信;
往年题也不可全信。
课程和实验本身有点陈词滥调,东西都很久远的了,相比于隔壁院长班会讲斐波那契堆这种我很想学的东西,实在是有点无聊。
不仅无聊,考试还会考很多的概念,很无聊的文科式的算法步骤,我只觉得很没意思......可能是为了提高平均分,对我反倒起了副作用(谁叫你考前通宵)。
感觉自己证明题算法题写的都挺好的,结果总评86,最后也没给实验提交统计巴拉巴拉,也没查卷的步骤。。。现在的计算机学院老教授们都怎么了
老师讲课挺好的,小测比较多介意的话就不要选了,然后实验比较基础没啥难度,考试感觉自己确实尽力了能答的都答了然后成绩出来意外的不错,应该是被捞了
很经典、很中规中矩的一门课。
一开始一小段时间(大概是堆排序之前)采用板书,之后都是用PPT,也加快了节奏。内容都很基础,但该讲的也都讲到了,我觉得也没必要去追求讲的多新/深/难。
作业是课本上的题目,都很简单,网上都能找到答案(虽然我也不建议去抄可能有错的答案)。实验也很简单,检查也很水,而且还要写实验报告……线上线下都可以检查,并且照顾某些冲突的同学还额外加了一个线下检查的时间。
考试大部分也很简单,但填空题问我Miler-Rabin算法的两个优化名字叫什么,你问我流程我也能大概说出来这个是真的记不起来...最难的一题是给一个循环移位后的双调序列,log时间求序列的最小值位置,我想了很长时间没思路,留到最后才回来看,最后写了个不知道是否正确规范的两遍二分做法。还有一个算法设计题是动态规划。没有考红黑树插入删除那种更难记的东西,算是加分点。今年也没有考字符串。
没有出期末分数,所以给分应该没有什么参考价值。
考试怎么还考名次解释啊🤣🤣 填空不会,最后一题最后一小问摆了 感觉MVP是倒数第二题第一小问求谷底数。实在是太复杂了,情况实在是太多了☺☺
1.内容超多,20章,作业和实验也挺多,网上找到的答案不可全信,大部分实验没多大意义
2.考试简单,比作业简单多了,程序设计题的重点在动态规划,想拿4.3要着重复习
3.收获很多,老师讲课和课件不错
4.给分未知,我4.0感觉调高了的,但可能不是很奶就是了()
徐云老师本人上课的水平很高,讲解和内容扩展都很到位,9分
实验设计和检查都极其划水,毫无提升,-1分
期末给分不如隔壁杰哥,卡我89,-1分(也是自己期末太菜了)
授课:徐云老师是《算法导论》这本书的译者之一,讲的内容也贴合课本,个别章节会有补充,老师课讲的很清晰,上课感觉比较有意思,就是经常点名。
作业:作业在课程主页有布置,都是书上的习题,很固定,难度不算太大
实验:很基础
考试:建议主要对着老师的ppt复习,重要部分结合课本,这次填空不少是ppt上直接有的内容,有空刷下往年卷
期末考红温了,三十章内容可着后边几章的边边角角考
徐爹😭徐老师人太好了,真得磕一个
计科鼠鼠大学三年的第一个评课给徐爹
课程方面:
徐云老师是算法导论译者,基本按照课本讲,偏基础,不怎么卷,不整花活,作业祖传,实验相对简单
不像隔壁班平时作业和实验上压力,期末考试以后还要写OJ
总之,如果想学难一点去隔壁,想按课本学选这里
(Tips: 不要看隔壁前两周没作业就选隔壁,上压力了跑都跑不掉)
(Tips 2: 别都来 大佬多了就卷了 选课是博弈论)