| 选课类别:计划内与自由选修 | 教学类型:理论实验课 |
| 课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
| 课程层次:专业基础 | 学分:3.5 |
在计算机科学中,算法(Algorithm)可以理解为求解问题的一个具体计算步骤。本课程主要介绍算法的基本概念,以及算法设计和分析的基本方法和技巧。课程包含了高级数据结构和算法的若干基本内容:算法分析的基本技术、排序、堆和优先队列、红黑树、平摊分析、二项堆、分离集合、分治法、动态规划、贪心法、快速傅立叶变换、图论算法、串匹配等,和典型计算问题的求解算法。
陈雪老师的《算法基础》课程内容较为广泛且深奥,涉及到诸多算法理论与实践,是计算机系一门重要课程。课程包括数据结构、图论、动态规划等基础内容,后续还涉及数论、线性规划、字符串匹配、近似算法等较高深的部分。课程的主要目标在于培养学生的算法设计与证明能力,过程注重数学细节的推导,要求学生有一定的算法基础。教学采用英文PPT和板书结合的方式,虽内容深奥,但教学清晰。
考试为全开卷,注重算法设计与理论理解,不考背诵,学生需对算法背后的思想有深入理解,方能举一反三。期中与期末考题难度较高,许多同学反映平均分较低,但收获丰富。"期中均分64, 期末均分仅五十多"。作业方面,一共8次作业和6次实验,难度较高,题目革新,较少重复教材原题。作业要求较严,对抄袭/A.I.打击严厉,需用LaTeX或OJ进行解答。
给分较为宽松,"老师非常非常奶",有较强的调分力度。即使考试不理想,总评较好。调分大概是"100 - 排名",相对友好。期中期末即使只做保底部分,助教与老师仍能给予一定宽慰, "伟大无需多言,陈雪老师我爱你"。
课程强度较大,适合具有算法基础的信竞背景学生先修,建议没有算法基础的同学慎重选择。"没有基础的同学会感觉课程进度快,证明过程难以跟上"。但认真完成作业有非常大的收获。如果希望快速提升算法能力,课程值得一试。对于辅修或无算法基础的同学,选课需谨慎,可能体验不佳。老师及助教表现专业,每周有固定答疑时间,支持同学们克服难题。
总体上,陈雪老师的算法基础课程质量高,内容丰富且具有挑战性,特别适合有一定算法基础或志于深入学习算法的学生。 kroz通过课程学习,能大幅提升算法思维能力和编程实践能力。
当助教的时候一直胆战心惊,担心自己做的不好被挂到评课社区上,现在看来大家都是比较友好的。
我建议有信竞基础的人来先修,会有较大收获。如果是算法新手,可能强度过大,一学期下来可能体验不是特别好。
我建议有信竞基础的人来先修,会有较大收获。如果是算法新手,可能强度过大,一学期下来可能体验不是特别好。
我建议有信竞基础的人来先修,会有较大收获。如果是算法新手,可能强度过大,一学期下来可能体验不是特别好。
2024 春季学期,陈雪老师的算法基础班上有 34 位学生(原先有 36 人,最后退课了两位),配备了三位助教:一位是大四的学长,是有在助教系统审核通过的正式助教;剩下两位是大二的编外助教,其中一位是我。相比剩下两位已经参加和即将参加 ICPC World Final 的大佬,我估摸着是三位助教里最菜的。
PS:陈雪老师可以说是特别慷慨,工资给的不少。
一些正经内容:
一些杂谈:
这部分是我给老师发的邮件:
https://www.wjx.cn/vm/Qpmr2PA.aspx
在学期结束后,我在算法基础课程的 QQ 群里,发布了一个问卷,内容可见于上面的链接。
虽然只收集到十份问卷,但介于全班也就只有不到 35 人,这份问卷或许还算有点参考价值。我进行一些总结,并结合着我自己的观点进行一些陈述:
这学期大家合作愉快。
除了上面问卷的问题,现在想想或许还有一些事情是我需要反思的。
明年或许还会当这门课的助教,大家多多包涵。
感觉周围人好多都被卡了一下(流汗)。。我一个同学94分,还有几个89分。
感觉期末考卷面分89也不低呀(流汗)。。应该比平均高好多。期中64确实拉垮了一点,但也比平均高很多。作业几乎都是满的,上课也参与了好多次互动,最后总评93。
这个成绩在以前都包4.3的吧(流汗)。感觉今年调分力度小好多。
还有我一个同学他期中期末都只比我高2分,作业和我几乎一样,结果总评98。。不知道今年调分规则什么样的。
上课:纯英 PPT ,但很好理解。老师经常板书证明过程,上课不听下课就不会。
作业:证明题好难,题量一般。前半学期 LaTex 居多,后半学期 OJ 居多。
考试:全开卷,不考背书,书上已有的算法可以直接在试卷上调用。考试主要考算法设计以及证明。
收获:入学以来收获最大的课。陈雪老师太强了,楼上xd说得很对,写作业、上课已经感觉到自卑了……
给分:OJ 满 + 作业 80% + 两次考试排名 35% = 总评 3.7
助教允许公开 OJ 题目,那我就贴个链接
陈雪老师的存在就是为了告诉我
人和人的差距比人和狗都大!
讲课很好十分!
扣的一分是用于治疗我轻度抑郁的精神治疗费。
辅修人,来摸摸xue算法,其实我个人以前做过一点点算法竞赛,但退役的很早,a.e 0基础(?)
算法课是从入学开始就想摸的课(点燃我的OI之魂),在2秋时时间冲突没上成,遂在2春上。
其实看评课对xue算法已经有了一点心理准备,尤其lxy班cx三段式笑话那个老哥发了一份“第一次作业”,看完之后有点想跳车的(不过好在也撑下来了。
事实上上课体验比较因人而异,我一周两节课中有一节叠课于是比较跳跃(虽然另一节也摸了好几次(这是能说的吗)),xue老师上课非常注重数学细节的证明,必要的证明都会板书一点点讲,PPT上会给出详细的思考过程,认真听课(且跟得上的话)确实很享受。
但是,尽管讲的很详细,但课程进度我觉得还是巨快!从知识覆盖面来看,上半比较基础,主要是数据结构,贪心,dp之类的;下半那是真正的冲刺,图论从最短路冲到最大流最小割然后讲数论(M-L),线性规划(simplex大法好)和字符串匹配(hash和KMP),这部分算法难度不是很轻松。最后是喜闻乐见的可解,P,NP,NPC的讨论。总之如果从听课感觉来说,还是建议掂量掂量,冷静下手。
整个学期感觉最特色的是书面作业和考试。书面作业由老师发pdf,题目都饱含老师的心意(,做起来挺折磨的,但讲究的就是对算法的理解,如何将板子迁移到稍微变动的问题上面(魔改算法),确实理解下来受益匪浅。
期中考试因为没有大算法的内容,主要是各凭本事(?),用hash,贪心,dp,排序啥的一通搞,班上均分64,在已知班上巨多OI大神的情况下算是合理的。期末考试主要是针对学的算法的考察,很多题都有比较明显的算法对应,但写不写的出来嘛…均分50+,感觉同学们做的可能都不是很理想。个人特别喜欢的是期中的最后一题(分数的排序)和期末的最后一题(数论),感觉是属于令我眼前一亮的题目,非常有意思,在我的考场学习法中带来的很大的乐趣(虽然我至今仍不会做)。
这学期的1+2位助教都很好,答疑和习题课准备都很充分,OJ也没炸,除了某助教卡常自爆卡车然后删点(乐),体验都非常好,各位辛苦了!
以下是辅修xue算法的建议:最好(基本必要)有算法基础,但不用多。作业有空的话尽量做,如果觉得做作业没啥意思而且很痛苦,那建议趁前两周换个班,省的折磨自己(后面越来越难),实验反而相对而言朴素一点,而且是分点评测,可以合pian理fen取da舍fa,老师PPT会有板子的清晰伪代码。平时分拿个保底,考试就当成享受就行,如果想分数好看,不要相信自己(本人惨痛教训),期中看前面时间复杂度分析内容+排序+贪心+dp,期末其实只用看好N,NP,NPC感觉就差不多了(?),再多就是图论算法建议熟练掌握各种最短路算法之间的应用场景区别,一定只写自己非常非常有把握的,然后在卷子上疯狂默写魔法咒语即可。
算法不上cx,就像玩二游不玩原神!
你们只用在考场上抓耳挠腮,而xue老师捞人要考虑的可就多了)
吹爆老师!!!虽然平时作业确实比较难,但是就收获超多+给分超好就可以直接给满分了!
说实话有点小后悔,早知道秋季就不学算法了,不如春季学
陈老师是清华姚班毕业的,水平自然没得说。这门课对计算机系的同学也比较重要,所以我写一点自己的见解供后人参考。
本人最开始是顾乃杰班上的,但因为顾老师给分太杀不得已到陈老师班上重修(我不知道为什么顾乃杰风评这么好,反正我身边至少五六个3.0及以下的)。
优点:
考试开卷,除了电子产品,想带什么带什么。我觉得这一点非常好,因为学习算法本身就应该是学习算法背后的思想,从而举一反三,解决新的问题,而不应该当成文科来考(本人强烈谴责顾乃杰老师考红黑树应该如何删除和插入,这种东西别人都已经帮我们实现好了,只需要调用即可,为什么还要记住?就算记住了几天不看又会忘,不知道有什么意义)。考试的具体内容就是给几道题目,给出求解算法,伪代码或者其他形式均可(我当时不想写代码,就写了一大堆文字哈哈哈)
助教和老师都很负责。助教和老师每周都会安排固定的时间用于答疑和交流,什么问题都可以问,有一次oj的题目比较难,很多人都不会,然后助教直接在答疑的时候把算法告诉大家了。
给分好。本人期中期末都没有复习过(因为重修的原因),期中比平均分高2分,期末比平均分低2分,最后84,我愿意称之为奶王。
缺点:
作业很难(真的很难)。需要较长的时间思考(相比之下顾乃杰班上的作业全是书上原题,直接在网上能找到答案,但是去年开始顾乃杰开始布置原创的题目了,好像是因为他发现大家都在网上找答案,所以以后顾乃杰班上的作业也不会太简单了)
总体来说,很推荐选陈老师的课。
先占坑,放一张期末时回忆的期中卷子。这课很难,要说能拿高分,还真没底气。但是收获很多。
Please login to download the attachment
以上为期中卷子。五道选择以及五道(还是六道)大题,只回忆了最重要的两道题,不过也学到很多了。
只希望期末能考好点,比杰哥给我的高个两三档就行。NPC真整不会了(抹泪)
回忆卷中Q1有误,裁剪数组时反了。细节在于n=1的时候需要手动枚举(这似乎更像个递归思路),因为指针分布在两个数组上,无法根据位置判断哪边大哪边小。
期末考完了,寄了
期末回忆卷
Please login to download the attachment
出分了,给分好。当然如果您对分数比较敏感建议看看算法课的人数,现有的三门算法都曾给分好过,主要的变量是人数,人少则给分慷慨,人多则不拔一毛。
期末66,看前两年的班平应该不算低分吧,但是喜提卡绩3。因为有一次实验的一道题和一位同学的代码相似,导致那次实验全部0分。和老师发邮件说了但是应该是没加回来。建议学学Python或者Java,在oj上换不是C的语言提交来降重。。。这个学期学得最认真的课给我搞这出,属于是祸从天降了。气得胸口疼。
Xue 算法的难度和强度都是在线的,选课之前一定要慎重!简单来说,如果你只想混学分,追求不挂科,可以来;如果你想从零开始入门算法,不建议来;如果你是 信息竞赛选手 / 有算法基础的大佬,可以来。
任务:一共 7 次作业(HW8 可选),6 次实验(每次 3~4 道算法题,会卡运行时间和内存,需要提交报告,报告只需描述代码原理以及实现技巧),难度高,耗时长,对于抄袭 / AI 打击非常严厉。占比约 10% 的考勤我没去,不知道什么形式。
考试:难度高。半开卷,期中写 “idk” 可以获得 0% 分数,期末写 “idk” 可以获得 30% 分数。
给分:对我这个摆烂人而言很好,不过看其他评课,今年的高分段好像不太乐观。(小声:怎么感觉这门课和邵帅老师的 离散数学 画风好像,从各方面来看)
往年试卷(陈雪班):
从 2024 级开始,华夏计算机科技英才班的培养方案里新增了算法基础(H),会是谁来上呢?

给分很不错,我期中期末都只拿了保底30来分,作业平均拿了80%分数,最后总评78。
本来以为要挂了,很感谢老师助教奶了一口…
话说有位助教哥哥还挺帅的,我期末时用idk遍历完题目后盯着他看了好一会。
感觉有些实验题可能需要一些算法基础,似乎对于有基础的同学是模板题,但没基础的同学很难做出来(?)
没有算法基础的同学不要来!
这门课上课会花大篇幅的时间去讲一些证明,怎么实际操作和应用会讲的比较少,而证明是建立在理解算法运行方式的基础上的,因此有可能你还没彻底搞懂算法是什么,然后证明就开始了,会听的有些吃力。
而且作业实验也是很难(也一方面是因为课上不太讲实操),拿动态规划来说,没有算法基础看半天想不出来怎么规划,有算法基础的几分钟甚至几秒内就能出思路了。(我这种纯菜鸟,做实验都是4~8个小时起步,还不一定做得对,总有不过的数据集)
不过老师给分很好,按总评构成方式算我感觉及格不了,最后老师捞到3.3🙏🏻。