选课类别:计划 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:3.5 |
在计算机科学中,算法(Algorithm)可以理解为求解问题的一个具体计算步骤。本课程主要介绍算法的基本概念,以及算法设计和分析的基本方法和技巧。课程包含了高级数据结构和算法的若干基本内容:算法分析的基本技术、排序、堆和优先队列、红黑树、平摊分析、二项堆、分离集合、分治法、动态规划、贪心法、快速傅立叶变换、图论算法、串匹配等,和典型计算问题的求解算法。
前半学期总结和一些花絮:
先给大家道个歉,我们没能成功把linke的日爆OJ换掉,今年实验用的OJ平台还是去年的linke OJ。
然后为了不让助教整日被烦着重启OJ,我们做出如下决定:
真的非常抱歉。
让我看看陈雪老师班的选课人数会不会隔代遗传。
或许要当助教了,先来点承诺。
我在23春修读了本课程,预计于24春担任本课程助教。
23春的时候这门课是陈雪老师和邵帅老师一起上的(我的评课),可以看到这门课的风评还是比较两极分化的。大约有一半的体验不是很好。
我在我的评课里也小喷了一下23春助教的失职,但到了我自己要来当助教的时候,我还真没信心说做的比学长们好。
但不管怎么说我会尽可能的去改善往年的一些问题(主要是实验方面):
先说这么多吧。大家对我有什么意见可以直接在评课社区喷我的(别上来就喷脏更好~)。
上课:纯英 PPT ,但很好理解。老师经常板书证明过程,上课不听下课就不会。
作业:证明题好难,题量一般。前半学期 LaTex 居多,后半学期 OJ 居多。
考试:全开卷,不考背书,书上已有的算法可以直接在试卷上调用。考试主要考算法设计以及证明。
收获:入学以来收获最大的课。陈雪老师太强了,楼上xd说得很对,写作业、上课已经感觉到自卑了……
给分:OJ 满 + 作业 80% + 两次考试排名 35% = 总评 3.7
助教允许公开 OJ 题目,那我就贴个链接
一图总结写作业带给我的所有感觉,希望最后不要低于 3.0
实验发布了,更新一下,太杀了
被作业杀穿了
陈雪老师的存在就是为了告诉我
人和人的差距比人和狗都大!
讲课很好十分!
扣的一分是用于治疗我轻度抑郁的精神治疗费。
吹爆老师!!!虽然平时作业确实比较难,但是就收获超多+给分超好就可以直接给满分了!
说实话有点小后悔,早知道秋季就不学算法了,不如春季学
陈老师是清华姚班毕业的,水平自然没得说。这门课对计算机系的同学也比较重要,所以我写一点自己的见解供后人参考。
本人最开始是顾乃杰班上的,但因为顾老师给分太杀不得已到陈老师班上重修(我不知道为什么顾乃杰风评这么好,反正我身边至少五六个3.0及以下的)。
优点:
考试开卷,除了电子产品,想带什么带什么。我觉得这一点非常好,因为学习算法本身就应该是学习算法背后的思想,从而举一反三,解决新的问题,而不应该当成文科来考(本人强烈谴责顾乃杰老师考红黑树应该如何删除和插入,这种东西别人都已经帮我们实现好了,只需要调用即可,为什么还要记住?就算记住了几天不看又会忘,不知道有什么意义)。考试的具体内容就是给几道题目,给出求解算法,伪代码或者其他形式均可(我当时不想写代码,就写了一大堆文字哈哈哈)
助教和老师都很负责。助教和老师每周都会安排固定的时间用于答疑和交流,什么问题都可以问,有一次oj的题目比较难,很多人都不会,然后助教直接在答疑的时候把算法告诉大家了。
给分好。本人期中期末都没有复习过(因为重修的原因),期中比平均分高2分,期末比平均分低2分,最后84,我愿意称之为奶王。
缺点:
作业很难(真的很难)。需要较长的时间思考(相比之下顾乃杰班上的作业全是书上原题,直接在网上能找到答案,但是去年开始顾乃杰开始布置原创的题目了,好像是因为他发现大家都在网上找答案,所以以后顾乃杰班上的作业也不会太简单了)
总体来说,很推荐选陈老师的课。
先占坑,放一张期末时回忆的期中卷子。这课很难,要说能拿高分,还真没底气。但是收获很多。
/uploads/files/93c45010c1730685ab3439ea7ad26363b339bc6c.pdf
以上为期中卷子。五道选择以及五道(还是六道)大题,只回忆了最重要的两道题,不过也学到很多了。
只希望期末能考好点,比杰哥给我的高个两三档就行。NPC真整不会了(抹泪)
回忆卷中Q1有误,裁剪数组时反了。细节在于n=1的时候需要手动枚举(这似乎更像个递归思路),因为指针分布在两个数组上,无法根据位置判断哪边大哪边小。
期末考完了,寄了
期末回忆卷
/uploads/files/e4969330845785ac451be040f377cde62e3c42a9.pdf
出分了,给分好。当然如果您对分数比较敏感建议看看算法课的人数,现有的三门算法都曾给分好过,主要的变量是人数,人少则给分慷慨,人多则不拔一毛。
突然想记录一下每次写作业/实验的感受:
hw1:前面的题目思路都很清晰,shell sort 巨大难,大部分时间都在想这题。
hw2:qsort 正确性怎么这么多 corner cases 啊,这最后一题我咋题目都看不明白啊?
lab1:比 hw 简单多了。
lab2:红黑树 ****。
hw3:主定理咋用来着?FFT咋用来着?Hadamard变换我咋看不懂啊?诶这还有个简单的区间dp,这正确性为啥还要证啊?
hw4:都是经典题,唯一比较难的题目给提示了。
lab3:教的是FFT,实验是NTT。不过整体还好。
lab4:看了眼感觉都是陈题/一眼题,难度一般。
考完期中了,3个选择题+5个大题。
选择题难度不大(一题涉及Set Cover问题的近似比,可以现推)。
五个大题里面前两题难度低于作业/实验,一题为需要一点观察的贪心,一题为二维FFT(需要对FFT较为熟悉才能做),一题为对分数进行O(n)的排序(考场上没做出来)。
期中均分59,中位数64,大约是把较简单的前两道大题做出来,剩下的题目写 IDK。