课程内容:
1、Computation and Complexity, Sorting, Searching, and Selection.
2、Divide-and-Conquer:Mergesort, Selection, Master’s Theorem, Sorting Network, Zero-One Principle, etc.
3、Greedy Approach (1):Interval Scheduling, Interval Partitioning, Minimum Lateness, etc.
4、Greedy Approach (2):Optimal Caching, Coin Charging, etc.
5、Matroid (1):Independent System, Matroid, Example: Greedy-Max Algorithm, etc.
6、Matroid (2):Min-Max Conversion, Unit-Time Interval Scheduling, etc.
7、Dynamic Programming (1):Weighted Interval Scheduling, RNA Secondary Structure, etc.
8、Dynamic Programming (2) & Linear Programming:String Similarity, Duality Theory, Simplex Algorithm, etc.
9、Amortized Analysis:Aggregate Analysis, Accounting Method, Potential Method, etc.
10、Graph Algorithms (1):Basic Concepts, MST, DFS, BFS, etc.
11、Graph Algorithms (2):SSSP (Greedy & DP), All-Pair Shortest Paths, Flow Problem, etc.
12、Graph Algorithms (3) & NP-Completeness (1):Maximum Flow, Minimum Cut, P and NP class, etc.
13、NP-Completeness (2):Reduction, Proofs.
14、NP-Completeness (3):Reduction Examples.
线上学期的优点是老师用中文讲课了,换成英文我怕我会当场失聪。本来选的是中文班,没选上,所以只能含泪英文班。
作业本来有7次,因为线上教学进度滞后所以减少了一次,分数占比没变。这学期不硬性要求latex了,用markdown和word都行。每次作业3-4个大题,本人感觉还是很难的,经常需要四处抱大腿,但是不能抄袭会查重。错的不太多的都可以拿A,本人前4次是A,后两次错的有点多是B,像坐过山车。
Project是"Resource Scheduling Problem in Hadoop",但实际上跟Hadoop关系不大,还是用C++,设计离线的调度算法。老师把建模做好了,助教把代码框架也给了,最简化的做法是只要设计函数、填函数,想卷也很有卷头,本人属于能力有限的那种。三个人一组,我们这组从第9-15周每周开一次组会,最后快做完的时候开得更勤,在这project上砸了不少时间。
期末考试题型为选择题和填空题,选择题3.5*10,大题4个,对我来说很难,卷面没及格,幸好期末占得少,属于小命保住了。
最后总评的平均分应该是低于陈昱佳高于任庆生。
老师人还是很好的,我觉得作业折不折磨人取决于助教。我们这学期中途换了一个助教,新助教出的两次作业都有编程题,交的代码他会放在OJ上测,还会查重,简直是双重拷打。
上课自由度:低,老师讲一段就问大家懂了吗,懂了的在评论区刷数字。每次上课都会开摄像头签到,主打一个云上盯防。
考核标准:
10% 课堂参与
35% 作业
15% Project
40% 期末考试
讲课质量:简单的地方我能听懂,讲得不错;难的地方因为听不懂,所以我也不知道他讲得怎么样,薛定谔的讲课质量。