选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:3.5 |
"在计算机科学中,算法(Algorithm)可以理解为求解问题的一个具体计算步骤。本课程主要介绍算法的基本概念,以及算法设计和分析的基本方法和技巧。课程包含了高级数据结构和算法的若干基本内容:算法分析的基本技术、排序、堆和优先队列、红黑树、平摊分析、二项堆、分离集合、分治法、动态规划、贪心法、快速傅立叶变换、图论算法、串匹配等,和典型计算问题的求解算法。"
顾乃杰老师在《算法基础》课程的给分比较严格,考试题目难度相对较高,经常会考核一些手动推算和复杂的算法设计题目。期末考试题目涉及时间复杂度分析、动态规划、红黑树操作等基础内容,同时包含有较难的算法设计题。期末成绩大多两极分化明显,优秀率较低。老师在考试上采取“不给调分、不补考”的策略,很多学生会因此挂科。需要注意的是,平时分(包括作业、实验、小测、点名等)占有一定比重,整体平时占总成绩的40%左右。
作业和实验量较大,作业基本为课后习题,难度较高,需要花费较多时间。实验多是实现课本上的算法,并且要求报告内容详尽,包括复杂度分析等。总的来说,实验内容较固定,重复编辑已知算法较多,缺少创新性和实际应用性,主要锻炼学生的动手能力和理解课本算法的深度。
顾乃杰老师的讲解非常深入,条理清楚,重点明确。他侧重细节讲解,课程内容涵盖排序算法、动态规划、数据结构(如红黑树)、图论算法(如最短路径、流网络)、字符串匹配、FFT等。从学生反馈来看,老师讲课水平很高,注重算法细节和复杂度分析,但相对缺少对算法设计和应用的强调。部分学生认为课程过度注重基础算法,不够深入。然而,老师对课程的理解深刻,使得学生能够扎实掌握基本的算法知识。
顾乃杰老师课堂纪律严格,不允许迟到、穿拖鞋、上课吃东西等行为,教学过程中有时会插入个人观点,可能会对部分学生产生负面影响。他要求请假必须走正规程序并自带请假条,课堂上有不定期的小测,主要为上课内容的检测和点名用途。
总体而言,顾乃杰老师的《算法基础》课程讲解深刻而细致,对于想扎实掌握基础算法的同学来说是不错的选择。但由于给分严格且考试难度大,成绩表现对GPA要求高的学生和外院学生需要慎重考虑。如果能够适应严格的课堂要求并付出足够的努力,可以在这门课程中学到很多有用的算法知识。建议同学们随时保持对课上内容的关注,认真完成作业和实验,迈出扎实的每一步来应对考试难度。
我最想干的事就是
在gnj小测的时候穿着拖鞋,一边吃早餐一边看苹果手机大摇大摆地走进教室约gnj去校车上打架
从一个退役OI选手的角度评一下老师的课,顺便提出一点建议,如果能看到希望斟酌一下。
顾老师的课很容易让人看出老师更像是研究数学的,但不像是专门研究算法的。
本节课上有那么几个重点,可以分论一下:
1)DP,老师侧重从具体的例子讲DP,但是讲的例子未免太少,也并不太具有代表性(虽然是算法导论原文的例子,大概是钢条切割、最优查找树、矩阵链乘,涉及简单的背包问题但是没细讲算法)。给人听来,老师侧重于让我们理解老版本lrj黑书(我也没细读)上强调的三大点中的最优子结构。这里老师讲的是很清楚的,大家基本都从中学到了。
但是老师讲DP的硬伤是没有细讲:对于一个问题,如何设计状态和转移!
因此老师讲完DP给人的感觉是,大家明白了对于DP怎么执行;但是如果给大家一道DP题目,如何看出是DP、如何设计状态、怎么规划状态的转移这三大问题大家还是比较吃力。至于怎么优化一道转移方程,这个要求有点高了,倒不是必须。
包括01背包问题国内一代人的DP启蒙,这么经典的例子不应该不细讲,希望以后能加强……(相信同行都听到过,各种大佬对着和背包没什么关系的题目强行说“这是一个xxx背包要这么去转移”,关键是大家还都听能明白什么意思)
另外,老师并不是特别强调状态转移方程,虽然许多选手心中都有“DP=状态转移方程”的思想,但是后来看来这样的想法未免太过于机械形而上,老师这方面还是值得肯定的。不过如果是为了让新人加强认识,那么强调一下未尝不可。
2)排序算法
几大排序算法老师讲的还是比较清楚的,而且从中可以学到很多数学知识,这点很赞。
高中大家都认为学OI只需要初等数论啊代数学啊这些离散的,但是分析学毕竟还是顶。相信大家做题做到过按照n^(1/3)分块(考个基本不等式)的那种毒瘤题。当时王小云教授在科大讲座时专门提到过一个算法用一些分析学的不等式优化到看起来像一个n的无理数次方的复杂度,然后一个密码算法就被破解了……希望大家学算法也不要和笔者一样放弃分析学。
3)高级数据结构
感觉老师依然和许多人一样过于死磕如何实现上。老师上课强调“注意邻接表里面存节点的序号而不是节点的名称”的时候就很明显。我倒是认为这一点不太需要强调,因为编程者只要认识清楚数据结构的逻辑结构就不至于犯这种错误。强调这一点,说明老师还是有点拘泥在物理结构了,但是数据结构更重要的应该在于逻辑结构,也就是数据的排布。若非这样老师也不会犯“几叉哈夫曼树用几叉堆来实现”的无心之过。
不过例外也有,比如关于排序算法中cache的影响等。
值得一提的是,如果各位大佬高中的时候用splay或者treap逃平衡树的课,那么课前最好还是背一下红黑树的板子,多年不打实现起来还是有点麻烦的。
数据结构的扩展没太细讲,只讲例子,也没有太细讲原理。无可厚非,毕竟这个真挺难,对新人不友好。
4)并查集
并查集这么经典简单而又作用巨大的基础数据结构居然要拖堂讲,而且不想听的可以去先吃饭……我直接迷惑。
希望下学期可以正式一点讲这个。
5)FFT
老师讲的很好。谁说学复变对OI没用的?
6)分治
老生常谈了,比较中规中矩。
7)实验
????????
震撼一整年。。。。。
算法课为什么要弄的跟大雾实验一样。。。。。感觉就是提升学生的打字量而不是代码量
个人觉得算法课还是应该注重怎么运用算法解决问题的,重复一个已知算法的问题意义不太大。
不过这可能是老师个人理解和我们不一样,但强烈建议下学期改一下,出点题让大家设计一下算法,而不是在那里重复已知的。
8)讲课思想
老师讲后面串匹配的时候,可以看到老师眼睛里是有光的。
老师也承认过,毕竟这节课是算法“基础”,不适合讲太多超越基础的东西。
但是听课的时候还是觉得比自己初学的时候讲得还是水了一点,这里希望老师把控一下。
其实大家在数据结构课上,已经接受了一些基础算法的普及,大三学生在算法基础课上完全可以接受更难一些的教学,但是老师还是没有放得太开。
私以为,顾老师这节课的特点更重在清楚地介绍算法,但是没有细讲如何应用算法、算法之间怎么组合。
老师可能认为这才是基础,但是对于大三计科学生来说我认为更该强调后者。
提出一点建议:以后讲课的时候,应该多问这样的问题,不给提前出具体解法,让学生思考一下,如何用这个单元学习的知识来解、如何结合前几个单元的知识来解
应该让学生养成这样的一种反射:这样的问题让人嗅到一股应该用这个算法/数据结构的味道。
9)隔壁老师
批评一下隔壁谭/李老师的课,击碎了我上算法课养老的梦想。完全就是高中教练吧!
一些强校高中教练都明白,对于高中竞赛生,只要教练能做好管理,保证学生的练习,那么教练本人的知识水平不需要太过硬。这也是国内真正讲知识的老师基本都是noiAu大学生的情况。
但是毕竟本科教学不是养竞赛生。有同学在隔壁上课,用的oj给看了一下每期题目。这倒好,大量早五到十年联赛原题、甚至后面还有一些简单的省选题(作出某题后上网一查JSOI2010)。。感觉不太适合没经过训练的本科学生吧。。
两个班老师都很极端的样子……希望隔壁老师能稍微收点神通,而且这么大的非水题量需给新人要多大的讲解成本啊。
也希望顾老师可以借鉴一下隔壁的一些思想,一些经典的赛题让同学们思考一下挺不错的。算法是充满灵感的碰撞,有些题目让大家脑子里能叮那么一下,有些题目的做法让大家觉得有点意外但又自然而然水到渠成,敲起代码和写诗一样多好。
10)好像还有图论?
这里课上讲的不多。老师本人还有意愿讲网络流的……有多少人还能默个dinic和isap的板子啊,况且网络流重在建模,这是非常技巧性又有点套路的东西,老师还是断了这个念头吧。
其他地方讲的不比数据结构课上超前太多。希望以后讲一下tarjan的几个经典算法。当时在计科数据结构蹭课的时候记得听过讲tarjan割点的,大家应该能接受。另外最短路觉得可以普及一下SPFA,毕竟还是国人发明的,老师本人也是比较红专的。
11)数学
别想了苦逼的数论选手,顾老师讲过学数论是重要的但是就在某个题目里面说了一下用GCD,其他基本就是分析学了。
12)其他建议
老师脾气有点暴……在考试收卷子的时候吼过助教挺多次……希望还是冷静点。
考研真题和传说中的面试题真挺水的,而且容易让大家有点陷入一种强调小技巧的境地,希望以后不要强推这个了,有这功夫细一点讲两年的Day1T2这些给大家也不错啊。
希望老师上课讲的更放得开一些,毕竟真东西讲多了,课就不会水了,没人有心思在报告字数和作业美观上卷了,课的风评自然也会清正。感觉作业展示比较吃香的范本还是能闻到一股卷味,提出一些精妙思路的却没怎么重视到,这样这节课的活力就有点受挫了。
------------------------------------------------
讲一下期末题目
基础的选择填空,不会太难,有点数学题。
算法复现,考试时间基本花在这个上面。老生常谈的手算DP/最短路/红黑树操作,记得细心一点。
算法设计有两题
1.Z上给定n包括在[1,100]内的闭区间,求最小的整数k,使得k不被任何一个区间包括。
没啥好说的,给个思路:O(1)区间加,O(n)统计的数据结构就能解决这个题目,因此用差分序列就行,时空都是O(n)。(考试的时候区间加下表都少写了1,我有罪)
2.有向图上,每个节点有标号,对i属于1-n,求min(i)为节点i可以访问到的编号最小的点的编号。
老师给的思路是两遍dfs,第二遍和第一遍反着来,就能按顺序统计出来,不过当时我也有点听蒙蔽了。
这里给一个思路:
如果这是张没有环的有向图,那么解法显然,按照拓扑序递推就行;
但是题目没有给无环图的限制,那么一个自然的思路是去掉图里的环,容易想到强联通分量缩点;
然后考虑这题有个很好的性质:如果两个点在同一个强连通分量里面,那么他们的min就一定相同(设A到达mA,B到达mB,都是可到达最小的,AB又相互可达,那么A就能到达mB,因此mA和mB一定相同),然后结果就出来了。
图G先算强连通分量,缩点,缩出来一张DAG图G1。G1上每一个点都代表G上的强连通分量,统计一下每个分量里面最小的编号作为初始答案。然后在G1上直接递推就出答案了。不过此解法虽然比较自然,试卷上写代码量好像多了点。
------------------------------------------------
如果你是OI佬,这节课还是比较养老的,不过应该学不到什么了。
相对于大家高中重视够了算法复杂度而言,杰哥出乎意料地注意常数中科大教授教你卡常数系列
语气还是有点夸夸其谈的相信各位在各大省选中天天装弱的大佬不会反感,不过内容还不错
新人还是建议选这节课的,看起来隔壁可是地狱啊(不过也没听隔壁老师上课过)。但是千万不要认为杰哥上课讲的就够了,课后还是要自己找练习的。如果没训练过,算法设计题不能算一眼题,算上前面手算的时间,考试还是很吃紧的。
------------------------------------------------
关于小测,记住千万每天上课都要听,不然你就算知道题目也不知道这些冷门概念是个啥
会连续小测,也就是最后两节课。。。次数一定会弄够的
最后一节课本来有事需要翘课的,想起来怕是要小测就在课间休息的时候溜进去了老师没发现,结果真的小测了
------------------------------------------------
20秋 94被卡一分。。。心理落差有点大
想起来有一次小测没听题目结果题面意思看错了,答非所问只拿了六分,可能就扣这上面了,也真是自作自受
信安必修,勉强算外院学生
渣p个图
2017年1月11日中午,14级算法出分,据说两极分化严重。 至于gnj到底是一个什么样的老师,我想说,可能时间会改变很多人。 反正没以前听说的那么恐怖了
-----------------------------------------
2017年7月14日,我参加某校夏令营,面试问题1:
你了解哪些排序算法---GNJ老师实验一
你最了解什么数据结构---GNJ老师实验二
赞美GNJ!真的!
满分
比例卷面60作业实验各15点名10
平时分30总评50
学了两年计算机起码基础算法应该知道吧,卷面给我评30多
试卷踩一脚都不一定比这低吧
周五截止选课周三早上出成绩,据说还不开补考,人直接麻了
sbsbsbsbsbsbsbsbsbsbsb
1. 严厉,迟到了就不让进了。
2. 价值观比较民族主义。比如当年我们有些人要请假去微软面试,顾乃杰老师就说,为什么要去微软这种外国公司,你们应该去华为。
3. 算法还是讲得不错的,条理很清楚,算法的细节讲的比较透彻。大概是因为我上这门课之前已经会这些算法了,感觉收获不大;周围同学感觉还是能学到东西的。
4. 期末考试真的会挂人的,据说没有调分。而且不复习 ppt 是不行的,我翘了不少次课,没复习就去考了,有一道算法题里面的概念不是通用概念,考场上举手问,顾乃杰老师说你要是听过课就该知道这个概念,所以这个题我就不知道怎么做。
顾老师大概是一个很符合严厉老教授刻板印象的人,值得一提的是,比起我们,还是助教受老师的折磨更多。关于严厉这件事,我其实并不太反感老师的规矩,比起隔壁(字面意义)计算机导论的「不许叠课」,顾老师算是近人情的。不过,在有人违反这些规矩时,第一反应不是询问原因而是直接指责,就在很多情况下难以接受了——这大概也是顾老师最令人诟病的地方。
回归课程。这门课的课堂内容和平时作业都没啥难度,水一水抄一抄即可。值得一提的是,由于老师不发ppt,想掌握老师的教学内容还是比较困难的(尤其是对我这种不听课的人)。个人主页有我制作的22秋的笔记,感觉每年的变化不是很大,后来者可以参考(至于为什么不听课还能记出来笔记,一方面是的确认真听了一些,另一方面得感谢某人不止一次告诉我我翘掉的课讲了啥)。
老师的讲解确实挺好,也挺清楚,甚至有些过度清楚了。我个人是更喜欢内容多信息量大的授课方式,不过这种讲法的好处是易于理解,就讲课水平上其实算是见过的老师里比较高的。老师在讲课上被指摘的点有两个,一个是时常会夹带自己的私货,发表一些一定程度偏颇的观点,关于这件事,我个人并不是很在意,感觉属于可以理解的刻板印象;另一个则大概来自老师本科数学系的执念,对一些数学人看起来不怎么数学(但老师觉得挺数学)的地方颇讲究,也会表示计科人的数学水平不行。但就老师的例子来看,感觉更多是猜谜和脑筋急转弯性质,很难说真的涉及了多少数理基础。
实验很简单,基本是抄书,不太值得赘述,考试则是延续了顾老师一贯的风格,手算矩阵链乘,此外出一些推导性的题目,也有比起隔壁班来说非常简单的算法设计(甚至比数据结构期末的算法设计简单)。出分后,大家纷纷觉得老师杀,3.3辅修人对此不作评价,参考其他评课即可。
最后说说给7分的理由:最核心的一点,作为非常重量级的算法课,还是不应该如此轻松。这样摸完一学期鱼后经历一场算法设计没啥难度的考试,实在不符合这门课开设的本意。
顾乃杰不愧为中科大第一杀手
别人亲自查卷是捞人,你顾乃杰亲自查卷是为了杀人,有含金量的
杰哥您有一个做我再生父母的机会,希望您能好好把握!
杰哥没把握住,[哭腔][哭腔]
但给分归给分,老师上课还是很认真的,虽然由于给分比较杀,很多同学不愿意选。
刚刚写完隔壁lc老师编译的评课,突然觉得差距明显,故来下调点分数,就当原来的给分是调过的,现在的给分比较符合gnj老师一分不调的风格。
上课讲的尚可,平时压力比较小,有时候老师会特别强调一些很莫名其妙的地方,给我的感觉是:老师是伪代码战神,但没写过C语言
实验依托答辩,对着书抄,还要写时间复杂度分析。在我看来实验最大的难点在于自己生成输入数据和数据处理,算法部分全是抄书。
考试更是逆天,老师要求助教严格批卷,他还要复查,若是有不够严格的地方还要批助教
优秀率估计是很低,真被杀了
老师是老一辈的思想,有的时候还是很有趣的,有时还会在课前锐评时事,学校做的不好的地方他也敢说。有一次小测助教弄不见了一摞小测纸,gnj:你们真是混(上声调,随后急转而下)···啊(硬生生憋住),乐死了
------------------------
助教a:我们都不知道成绩的(骷髅头)到时候查分时候发现我们批错了也会G的(指助教g)
助教b:我想偷偷给大家加点分差点给骂死
2021秋的给分非常非常不好,一大群人被鲨的很惨,但是不知道为什么没人在pksq上冲,希望学弟学妹知道这条信息吧。另外虽然gnj老师讲课水平不错,但是肯多花时间把算法学更深的同学还是去ths班比较好,如果像我一样想摸鱼的可以留下来,但是要做好期末考试难度飘忽不定然后不调分被鲨的思想准备。
另外吐槽一下,不知道为什么gnj对搞ai的人这么有偏见,什么推荐算法是侵犯他人隐私,还有智慧教育是扼杀小孩天性,这都什么鬼观点,建议某两位青橙奖得主不要误人子弟,赶紧辞职走人嗷
我对算法没有很强烈的兴趣,只想稍做了解完善知识。课是没太认真听的(因为……太困了),但大概确实是按照书上的内容讲,便也不太有错过补充内容的焦虑。期末前把书看了两遍,考题也比较基础,总评3.3,还算完满地满足了我的需求。
有点想吐槽的是实验部分,主要是实现书上算法,能跑就行。问题是输入输出之类的实验规范要求太繁琐了。我可能更喜欢有输入输出函数、主要编写算法的类。感觉我认真想写好看封装好看的代码在加入输入输出后变得好丑陋……
有一次点名没到(疫情期间跨校区没过,校车又走了),感觉想想有点亏(
本科不体验一次知名Killer,怎么能叫圆满呢? 讲课水平很高,但是改卷是真狠,期末难度飘忽不定,而且不调分。不在乎成绩的话,很推荐。
调分?I don't give a sh*t.(漠视苍生脸)
出分之后第一时间来评课。
gnj教算法还是可以的,速度似乎比隔壁徐云班慢一些,讲的也挺细致,比他的运筹学基础高到不知道哪去。但是由于两堂课都是早课,喝了咖啡也经常睡着,这也没办法。
有点名性质的小测,题目比他运筹学基础的小测简单多了。实验好多年都没变过,可以在暑假提前写好一些,减轻压力。
gnj不开补考。其实据他本人讲,他在前几年也开过补考,但是因为补考难度和期末考试难度相当,导致补考也没几个过的,于是后来就不开了。所以挂了只能重修或参加隔壁xy班的补考。
因为是早课,迟到5min,在课上吃东西问题都不大(本人吃好丽友派/Q蒂从来没被叫住,但请不要吃异味大的食物,如包子)。拖鞋的事也没提过。但是一次有人下课前5min大摇大摆进教室交作业(有一说一,这是真的作死),被他当场叫住,训斥一番后轰了出去,作业记零分。
今年的gnj没有往年那么杀手(难道是感受到了xy的威胁?),作业题降了难度,听说今年的选做题是往年的必做题。期末考题较为简单,有一道大题(思路是计数排序)与github上流传的几年前考试题几乎一致。老师上课的时候强调了多次“Dijkstra算法不能用于带负权的图”,我当时就觉得考试要考,结果最后真的考了。
我在课程群里发了一个投票,统计大家对于给分的看法。截至投票被助教关闭前,总共采集了7名同学的样本。其中高于预期:等于预期:低于预期=3:1:3。对本人来说,给分严重高于预期。(因为被往年反馈&运筹学基础吓怕了,所以预期只有3.0~3.3
但是不知道来年gnj给分会怎么样,所以还是选了个“给分一般”。
更新于2020.4
从18和19的反馈来看,可能是年纪大了/开的班变多了,杰哥这两年的风格有所改变。且徐云19年的算法导论和并行计算给分都不算太好,不排除新晋杀手的可能,因此不建议盲目换徐云班。当然,也不排除老师之间有py交易的可能(哪个班人多就压哪个班的分,维持动态平衡),所以还是请谨慎考虑换班事宜。
最后配一张自制的表情包。图片为本人摄于2018.9.13。
不参考给分的话打个满分~
* 考试内容:题型和往年题类似
(考完拖了一会儿直接报答案了,计算量不大,今年没考不相交集合、字符串匹配、FFT)
送点卷子
算法基础-2009试卷.doc 算法基础-2009试卷答案.doc
考试让你手画红黑树的插入与删除(删除今年没考),今年还考了手撸钢条切割、最长公共子序列以及最优二叉树,把你当计算器用。
摊还分析以及多项式与快速傅里叶变换没考,好像这几年都没考过,可战术放弃,(如果不是学不会那谁会放弃呢)
考试还考个数列通项的推导,梦回高中,笑死,根本推不出来。
给分中规中矩,期末不给卷面分,不知给分好坏
大学以来遇到的最好的老师、上过的最有收获的课,强烈推荐
本来已经很少评课了,但杰哥的课我一定要评价一下,
顾老师上这门课已经快20年了,这本书早已经吃的非常透彻了,可以说每一堂课都是享受,只要你上课跟着老师走而不是摸鱼,杰哥上课当真是信手拈来,各种推导拿起粉笔就写,本来上学期运筹学被杰哥杀了一波,这学期果断黑转粉,讲课水平极高,鞭辟入里,在我遇见的老师里绝对是top,就是那种你去看书要一上午,说不定还看的不太清楚,他一节课给你整的明明白白,包括各种书上没有提及的应用前提和场景都给你指出来,每次上课都有种醍醐灌顶的感觉,顾老师十分负责任,对他的研究生(也就是助教们)也同样要求严格,所有助教每节课都全到齐,助教还会给你整理每节课的笔记(从未见过这么好的),这学期计科就两个班,顾老师班和院长班,和隔壁班同学交流过,感觉他们都欲言又止,院长班用两个词形容可能就是,天马行空,花里胡哨,讲课水平肯定是不如杰哥班的,顾老师作为计科的评委还是啥,去隔壁班听过一节课,讲在线算法,这课本来是可以单独开一门课的,结果隔壁班拿来讲,浅尝辄止,讲又讲不清楚,学生又一脸懵逼,我们这课是算法基础,你这还没学会走路就想跑,显然不科学,总的来说,想真正学算法精髓,来杰哥班,想摸鱼,出门隔壁院长班
算法应该是计院课程里比较重要的一门吧。
gnj杀手之名传播久矣,而且小测一般都是当堂检测本节课的内容,所以对这门课是不太敢松懈的,所以反而学下来收获还挺大,不是那种学了过两天就忘的状态。特别对我这种基础比较弱的,了解了很多算法,甚至在考试周习得了手绘红黑树的技能(滑稽)。 gnj数学专业出身,所以分析时间复杂度啥的还挺严谨的,补充的东西也挺多。
作业真是太多了……而且难。github上有个CLRS仓库有蛮多答案的。实在不行就stackoverflow各种抄了,最后我作业分基本没有10分的(但看起来影响不大)。在此缅怀那个比赛完了和红黑树与斐波那契堆一起度过的补作业之夜눈_눈
实验还好,书上伪代码逻辑不坑,对着写就行了,和编译H相比大巫见小巫。就是比较繁。我们这届是排序算法们,动态规划,红黑树,图论算法们。因为时间不够,最后一个实验没有布置。
最后考试,基础题考时间复杂度分析,简答题考红黑树插入删除手绘,矩阵链乘过程手绘,KMP算法。还有一些比较灵活的,就只能听天由命了。
给分……听说不调分?然而没有想到算法竟然会成为这个血崩的学期唯一的一丝温暖(哭晕)。作为一个作业基本没拿过满分,小测也一般般的(虽然认真在听,不过我还是笨啊,叹息),感觉应该还是考试占大头吧。
另,坊间流传的gnj课件,有一些内容已经不讲了,复习请谨慎。
另另,给参加比赛等活动的学弟学妹的安全无公害请假指南:提前请假,严格走程序,写请假条,教秘、班主任、教学院长签字,并务必说清楚是什么比赛,不要让gnj搞混了。
虽然GNJ脑子不太好,不太会做人,三观也有问题,还老觉得华为10核秒天秒地
但是这个课还是能学到不少东西,认真学的情况下给分会让你感觉很对得起自己
总之是比较值得上的课,只要别听他BB有的没的就行了
另:作业分数算总成绩,实验别的无所谓,报告里的复杂度曲线搞得真实(符合理论推导)一点..签到1次=总评2.5分,一定要去...比什么都重要
这课程本身来说是不错的,杰哥教的很耐心也很不错,唯一折磨的就是3B这个教室,坐在后面啥也听不到。
作业量中等,小测不难,但是要是像我这样一点不听肯定还是得找个大腿问问。
其他的评课社区都说的差不多了,我唯一想告诫大家的是:
杰哥只会多扣不会给你补回来的,如果你是为了要分去的,建议放弃吧
杰哥讲课水平挺不错,远高于他的运筹学。但不知为何,他的教室连续几个学期被安排在3B,这间教室实在太烂,上课即为折磨。
作业只收纸质,有时会布置一些不明所以的题目,体验很差。还好助教批阅比较宽松。
实验很简单,大部分照着教材伪代码改写一遍就行,实验报告主要是画运行时间曲线图。做完没什么收获,不如隔壁班oj。
考试题型基本固定,可以参考往年卷。今年考试很难:题量大,动态规划手算题出了两三道;有区分度,有一道题估计做出的人寥寥无几。
给分方面,我自认为期末考得很砸,但最后总评却没有凉,算是高于个人预期。
总体来说,杰哥班相对摸鱼一些,但上完一学期很难有大收获。算法是计科很重要的一部分内容,如果希望学到更多东西,最好去隔壁院长班。
从讲课的角度来说,顾乃杰老师还是很认真的,而且讲的比较有条理,水平明显比数据结构等课的老师要高很多。
但是他上课喜欢输出他自己那个年代人的价值观,喜欢批评学生,言语之中瞧不起学生。
他人比较严厉,上课迟到就不要进了。考试如果成绩低的话该挂科就是挂科。他不会提供上课的ppt。无论大事小事,请假一定要走正式的手续。上课后不要吃东西。
我们当时的课程主页:
http://home.ustc.edu.cn/~zhufx/
实验的内容已经多少年没变过了,很多数据集太小,在现在的计算机上很难看出算法的时间复杂度变化规律,代码都是书上有的,写实验报告会花费大量时间。
上课会有小测,算入成绩。
期末试题还是比较按套路出牌的,参考往年的试卷即可。
心疼一下我们的助教们,都是顾乃杰的研究生,经常被顾乃杰骂。
众所周知,老师上课很严肃,非常非常严格,这个学期还在课堂上大声呵斥助教和学生,扣两分,但是助教都很善良也很不容易TAT
老师讲课的内容相比隔壁lxy班偏简单,对于有oi基础的人来说轻轻松松,但是老师比较喜欢抠细节,死磕于具体实现上,上课会有几次小测,小测都是上课刚刚讲过的内容,小测基本就是点名性质,做错了也能拿到9分,实验也比较传统,总体来说收获不大。
考试经典手算dp三角阵()考试不算难,但是杰哥捞的力度不大,对细节要求很严格,没有补考,挂了的人只能想办法重修。
总体来说不算推荐,收获不大,任务量可能轻松些,给分一般般
助教:“我们因为偷偷给你们加分差点被骂死。” 他真的,我哭死(
前人之述备矣。
推荐像我这样对算法毫无兴趣,认为算法很难的人来这里摸鱼,绩点就别想了。
实验设计比较差,对算法设计和理解的考察不够,复杂度分析的部分多余且无趣,且参考价值不高,感觉不如隔壁oj化的先进
讲课水平和内容符合预期,比杰哥上运筹学时不知高到哪里去了,就是正统的算法教学,但是杰哥会纠结一些意义不明的定义,而且还会在小测时以此扣你的分
平时作业基本是课后习题,题量一般,实验虽然设计一言难尽但是任务量不大
最后给分据说很杀,建议慎选,参考杰哥开学时对选课人数的锐评,不排除故意压分控制选课人数的可能
总的来说,如果没有时间冲突,隔壁院长班的算法可能是更好的选择
看之前的评论都说杰哥是杀手
但是作为上过杰哥运筹学和算法的既得利益者我认为给分倒不坏
算法期末卷子和评课社区说的一样 有那么几道智力题作为区分度,其他都是常规作业题很简单的。
我估分卷面能有个70左右吧 因为没给卷面分也不好说 作业实验平时签到都没问题 总评87。
快毕业了,统一评课。
这门课我是20年上的,总体推荐。
推荐是因为,你没得选。隔壁班lxy和gnj半斤八两。
gnj老左派了,而且是左过头的那种。不必多说。
讲课确实优秀。
给分已经没有当年那么杀了,至少不会让你人生重来。
没什么印象。
大家自己掂量。
顾老师的算法导论比他的运筹学不知道高到哪里去了,调理清晰且深入浅出,从讲课的水平上来讲,应该比隔壁班要高上一些。
只要不是特别过分(指平时作业及实验不交且期末考的很差),选顾老师的课目前应该不存在挂科风险,据我所能观测到的范围内,包括我在内的很多考前才开始突击的人都没有挂科,且成绩在八十分以上(当然这只是我等学渣的目标)。
emmmm... 时隔多年回来评分是因为刚好有师妹问起。
源神对顾老师的评价是,讲课top5%。我对此深有认同,顾老师的风评负面来源主要是(曾经)杀手式给分,对学生有品行方面要求(不迟到,不在上课吃东西等等),还有骂助教之类的。不过感觉我上课那年,他整个人已经变了很多,整体感觉还是比较温柔的,大多数时候脸上也是有笑容的,可能是年纪大了,看开了,也可能是他那年心情好,说不准。
无论如何,我还是觉得顾老师是我遇到的讲课最好的老师之一。他讲算法思想讲得很清晰,易错点,应用范围也讲得很好,关于复杂度也讲得很明白。而且讲课不无聊,我觉得这个课确实担得上“受益匪浅”。(当然,隔壁李院长讲课水平也是很高的,毕竟心有理想(后略
作业不算少,不过也还行。实验格式有要求,内容也比较精髓。摆学长也提到了面试的时候问到了。期末考内容已经忘了,印象最深就是做出了那道瓶盖匹配题....最后给了88,感觉还行。听说,听说,给分逐年变好,可能是因为有另一个老师的课堂,也可能他们是联合改卷的,欢迎有了解的朋友来给我讲讲。
说来惭愧,这学期开始的时候,我一心想换去徐云老师班,因为杰哥的凶残名声在外……奈何徐老师不给签字,当时还和同学哀嚎“在杰难逃”。 不曾想,杰哥上课相当不错,很有热情,作业不多,三观也正,唯一的缺点就是有时候会拖堂。 最意外的是——给分超好!我当时把最后一题看错了,前面也有几个地方做错,居然还有90,而且问来问去,居然没有低于80的,90+的有一大批。反观徐老师班的给分……只能说好庆幸哈哈哈
14级的感觉收获很多,学到的很多基础算法知识对以后实习或者找工作刷面试题相当有帮助。给分的话呢也比较良心,据说我们这一届挂科的人数比上几届少很多,很幸运。你只要上课不穿拖鞋,按时完成几次实验,小测的话次次都到,想挂科还是有难度的。
计科的学弟学妹们,如果想要课件提前预习的欢迎加我qq1529316177(只有pdf版)~
希望大家都能学好算法~
祝开心~
上课纪律严,有小测,感觉讲得一般吧,还经常犯错,不怎么懂他的逻辑,所以都是自己看课本,群里大神都觉得gnj水平不高。实验很坑,有个助教更坑(估计科大没人想去他实验室导致的),所以这课千万能躲就躲。试卷是gnj改的,所以给分迷,今年考了道坑爹的称小球,万幸在科大贴吧看过,作业小测实验都做得不错,于是本渣居然混了个94⊙_⊙
2023 秋的教学情况已经有另一位用户详尽评价了,这里主要点评一下期末考试的算法设计大题。设计题一道是地铁线路设计,还有一道是找数组中和为x的两个数。
找数组中和为x的两个数,时间复杂度 nlgn,只需要归并排序后二分查找即可。写快速排序貌似会扣分,因为最坏 n^2。
地铁线路设计是一道错题,这件事就挺离谱。题目就是一道 Steiner tree problem,老师考完报答案却说用Dijkstra+最小生成树可以解决,本人在讲解后和同学们一起提出质疑,但老师认为只要找近似设计即可,变成文科题了?
Steiner tree problem 是一个 NP-hard 问题,本人迅速做完其他题后在这道题上卡了半个多小时,很显然什么都没想出来。但我确信普通的Dijkstra或最小生成树肯定无法正确解决,便在最后一分钟随便糊了个暴力上去。我认为这是正确的做法(这道题甚至没有给数据范围),但从最后总评来看,应该是没得分。除了暴力,优雅一点的方法是动态规划。但显然老师助教也没有想到,这么写他们看不懂搞不好也没分。
TL;DR: 地铁线路设计题虽然是最短路和最小生成树的 generalization,但无法用Dijkstra+最小生成树解决。期末考试题目错了,但最终解释权归老师所有。我不好评价,希望这种事故不会再发生。
作为一个外院的🐭🐭,完全是因为兴趣才选的这门课,本来也就不指望考得过计科人,期末最后两道设计题都不是很会(我真的不行的),最后还能2.7,我已经很满意了。老师上课给我很深的印象,总之,感谢这一学期的陪伴,非常感谢
老师上课讲的是很好的 ,不对 是非常好的,可以看的出来很认真的
要求比较严格 建议不要迟到
其余不详(还没考bushi)
《算法导论》太厚了,感觉用普林斯顿得《算法(第四版)》更好些。
应该算本学期比较喜欢的老师了,讲课思路都很清晰,略有拓展。不过老师上课喜欢发表一些个人的观点。一学期四次实验,都比较水,对着算导的伪代码改写成C/C++实现即可(隔壁院长班的OJ实验貌似很难)。上课有突发的作为点名性质小测,基本是上课讲的东西,较为简单。考试每次必出手撕动态规划(画出DP的矩阵),大概率出红黑树的各种插入删除,比较不喜欢这种题型。。。最后还有两道较难的算法题,需要自己对算法有一定的理解。总体来说感觉还不错
杰哥这学期意外的没杀(
去年选了杰哥的运筹学被杀了,今年还是头铁选了杰哥的算法(因为院长班有点卷而且杰哥作业没有oj题,个人觉得oj题对这门课也没什么用)。这学期的几位助教都超nice,还会帮忙整理课堂笔记(杰哥的ppt不会分享出来),作业题讲解很详细,爆夸!
无期中,有随堂小测(都是极其简单的题,不听课都会写的那种);期中之后开始有实验,都是实现书上的算法(排序,动归,红黑树,图算法);期末每年好像都差不多,单独命题,几道选择,最优矩阵链乘,红黑树转转转,两道算法设计(今年是一道智力题一道图搜索题),题量个人觉得有点大,基本上掐点写完。(收卷后杰哥就公布了最后算法题的答案,杀人诛心)。期末估分80(不公布分数不让查卷),总评92。
杰哥上课还行,讲课很扎实。观念比较传统,会教导我们如何好好做人(听听就好
刚考完试还没出分,就单纯想来评价一下。
老师的讲课水平可以说是我上过的所有课里排在前几位的了,不管是课本上的内容还是拓展的内容都讲得很精彩,但是感觉最后一部分讲串匹配的时候有点崩,语言有点组织不清楚,有点拉低了之前的水准。
以下内容和课程无关,不感兴趣的可以跳过。
老师的三观还算比较正,上课期间经常会讲一些教育啊人生啊家国啊之类的道理,虽然讲得时候情绪比较激动,有时候言辞也比较激烈,但是他讲的东西确实都很有道理,听了让人很有启发,加上老师讲课确实很好,本来是很喜欢顾老师的。
但是最后一节课课间的时候,老师突然不知道什么原因开始喷抑郁症,令人感到非常的迷惑。他说那些人之所以会得抑郁症,是因为他们“没有心怀家国”,他们“心里只想着自己”,“说到底就是太自私”,所以才会得抑郁症,还说如果你心里一直想着怎么对祖国做贡献,你怎么会得抑郁症呢?我被这个观点震惊到了,且不说抑郁症本身不只是心理上的疾病,更是一种生理上的疾病,不是光心理积极向上就能治好的,就说“自私”这个观点,抑郁症患者会成为社会关爱的群体,难道就是因为他们够自私,把自己自私出病了吗?而且这种“你之所以会怎么怎么样,是因为你对组织的投入还不够,你还没有全身心的奉献给组织”不是一种常见的邪教洗脑观点吗?我不知道为什么顾老师会对抑郁症群体有这种偏见,但是在不了解一个群体状况的情况下主观的做出这种评判真的让人感到很不舒服。
单纯按讲课水平给的分,但是已经对顾老师粉转黑了。
老师讲课还行,课件做的也很认真,但是对学生的态度有时很差。不管什么事请假,必须交有班主任教秘签字的请假条,经常对学生们迟到或仪容仪表不佳批判一番,怀疑是专门为了小测赶来的同学,就会不让进教室之类的。给分不算杀手也不算好吧
2018年1月19日,著名杀手顾老师终于让人感受到了什么叫“没挂就不错了”,哀嚎一片。这门课是这学期最费心的课,作业多实验多,上课还要点名小测。最后的考试本身不简单,还有蜜汁题意不清的小瓶匹配和难得不行的压轴题,目测卷面不及格。 平时分本身也不高,作业从来也没有满分,不知道是老师的锅还是助教的锅。 调分?调分是不存在的。
这门课对于我这种智商不高的人来说还是蛮难的,期末基本就是靠背概念拿分,算法设计题基本全跪,作业和实验好好写,别缺课,期末多花时间准备就行,给分虽然不好(不调分)也不至于是杀手那么夸张。而且算法课学的东西的确有用。
平心而论GNJ的课上的还是可以的,至少是比较认真的,但是额。。。可能老一辈人价值观不太一样。内容都是算法导论书上的。实验很简单,感觉主要实验报告好好写。期末考试难度一般,比较基础。
个人感觉给分与其说杀手不如说是两极分化较为严重,所以一定要掌握好基础,考好考好。。。卷子区分度不高不然稍有不慎就跪惨了。。。
就目前来看,该老师是程序设计/数据结构/算法等这类课程里水平最高的了。
该老师最大的问题是上课不传递正能量,上完课让人感觉很压抑,实验布置得亦不很科学。
该老师给分很公正,方差很大,好的给分很高,差的给分很低。期末考试十分重要,作业、小测、实验占分不多(实验要做好要花很多时间,自行权衡)。
温馨提示:该课程的幻灯片可在bb上下载。
计院著名杀手,外院在意GPA的同学建议回避。。教材是算法导论,课堂上讲的内容不算难,前面几章老师讲得比较慢、比较详细,后面图论算法那里讲得挺快(一节课刷一章,作业加量不延期。。)讲课风格和马建辉有点像而且添加了愤青属性(你们懂得),老师很看不惯上课吃早餐、讲话等等行为。。总的来说认真看看算导收获还是蛮大的,至于从老师那里收获多少就因人而异了
平时5次左右不定期小测,就是出个题让用当堂讲的算法来实现一下,很简单的,然而老师极其讨厌一听说有小测才赶过来上课的这种做法。。被发现会当场赶人走。。
实验一共4个,都是把书上的算法按要求实现一下,比较水,有些要求比较。。呵呵哒
考试占的比重较大,每年基本不会考同样的知识点,今年考了一道巨坑的12个球中有一个不知轻重的坏球,证明一下最少能用几次找出坏球,据说gnj也不会做,其他题目个人感觉还比较正常,就是容易自己跳坑。。。期末突击党很大几率被教做人
给分嘛,毕竟计院著名杀手。。嘿嘿嘿。。。(不过14fall貌似给分比较好)