| 选课类别:计划内与自由选修 | 教学类型:理论课 |
| 课程类别:本科计划内课程 | 开课单位:计算机科学与技术学院 |
| 课程层次:专业选修 | 学分:3.0 |
算法与理论是计算机科学的核心领域之一。随着大数据时代的来临,传统的算法理论已经不能很好地解决人工智能、物联网、工业制造等领域所遇到的实际问题。本门课程主要介绍基于大数据的新型算法技术,如随机采样、数据降维、数据压缩、分布式计算、流数据计算、聚类、分类、随机优化等,以及相关的理论和数学技巧,如概率计算方法、vc维、通信复杂度、机器学习学习理论等。作为一门理论方向课程,帮助学生掌握解决大数据问题所需的理论和算法工具,为相关领域的工程实践打好基础。
Dimension Reduction
Streaming and Sketching Algorithms
Machine Learning Theory
Clustering
Graph-Structured Data
每2个星期有一次作业,在www.bb.ustc.edu.cn上发布。其中需要提交并记录成绩的作业共有三次。提交作业时,请直接将电子版上传到www.bb.ustc.edu.cn。我们强烈推荐使用Latex作答(关于Latex的使用,可参考资料)。
学术诚信是所有从事学术活动的学生和学者最基本的职业道德底线,本课程将不遗余力的维护学术诚信规范,违反这一底线的行为将不会被容忍。作业完成的原则:署你名字的工作必须是你个人的贡献。在完成作业的过程中,允许讨论,前提是讨论的所有参与者均处于同等完成度。但关键想法的执行、以及作业文本的写作必须独立完成,并在作业中致谢(acknowledge)所有参与讨论的人。不允许其他任何形式的合作——尤其是与已经完成作业的同学“讨论”。本课程将对剽窃行为采取零容忍的态度。如果发现互相抄袭行为,抄袭和被抄袭双方的成绩都将被取消。因此请主动防止自己的作业被他人抄袭。
彭攀老师的《大数据算法》课程涵盖数据降维、数据流算法、聚类、图算法等多个主题,侧重算法在计算资源节省方面的应用。课程结构紧凑,内容包括理论算法证明与应用技巧,具有较高的数学依赖性,需要线性代数、概率论等数学基础。尽管如此,教学内容仍较为新颖有趣,有学生点评说“让我见到了一些很漂亮的东西”。
彭老师的课堂以手写英文板书为主,配有详细的Lecture Notes,部分学生认为其可读性强,但也有反馈指出其中存在错别字及错漏。因此,一些学生建议讲义与板书应进行汉化以降低学习难度。助教的习题课和补充材料被认为是学习的重要支持。
课程中的作业次数为6次,仅需提交3次,内容主要为理论证明和算法设计。大多数学生反馈作业难度适中,部分题目需要深入思考。考试形式为闭卷且题型多样,包括基础概念和应用证明,难度比作业稍低。此外,“考试大放水”、“调分”等现象普遍存在,说明给分较为宽松,以保证成绩较好。
总评以到课率、作业、期中期末考试构成,很多同学评价给分“太好”而感到意外。在学术诚信方面,助教对抄袭行为持强烈反对态度,尽管一些学生认为措辞激烈,但总体上作业来源部分不扣分,只要标注清楚。
课程受到各种反馈,有些学生称这门课“难度很大,慎选”,而另一部分认为通过Lecture Notes速成即能取得高分。因此,选课需根据个人的数学基础及时间安排量力而为。课程被普遍认为不适合水课,但同样被一些学生视为获得新算法见解的重要学习体验。
《大数据算法》是一门理论性较强且富有挑战的课程,教学内容多样且具现代应用性,适合具备良好数学基础并对算法和数据科学有兴趣的学生选读。同时,在选择多个授课老师或班级时,建议参考班级具体教学材料与方式的差异,以及个人偏好进行选择。
辅修人没办法去上课,不过有 Lecture Notes 是好文明!又看了看参考教材,感觉上课主要参照的是 Foundations of data science 那本书。Notes 和教材写的都很好,可读性很强。
课程难度上目前读下来感觉还可以,比上学期作死选的数院运筹学好了很多。
作业感觉有的题只需要参照 Notes 就能做出来,有的题有股离散数学的味道(?
部分作业题是教材的课后练习,不过教材本来就没答案,所以也就只能自己硬想。
期中复(yu)习的有点难受,不少算法的证明都比较繁杂,自己没有精力和时间去弄清楚所有细节。而且看了看 22 年的期中,似乎也并没有涉及到稍难一些的证明,有点想摆了😭
期中难度不小,后面三个题都是讲义/作业上的证明,跟 22 年的宝宝巴士差别比较大。回忆版:
因为头天晚上有考试,所以期末只能预习半天时间,看的有点红了,讲义中有一些比较影响观感的 typo,比如特征值是 \(Ax=-\lambda x\) 之类的。而且感觉很多证明有点太过 tricky 或者是过于复杂了,希望别挂(((
虽然期末大概是一大坨(毕竟啥都没背),不过期末预习的时候看到下面这个推论,还是有一瞬间感觉这门课让我见到了一些很漂亮的东西:

给分相当有水平,被奶了一大口(比按比例算出来的高了 8 分)。课程内容很难,不过也确实比较有意思。建议学过算法基础和随机过程,同时数学水平(数分、线代、概统)不低的同学来学。不建议速通。
本班和隔壁班在授课内容上的差距很大,比如这学期本班上了图稀疏化,隔壁班上了 SVD、PAC learning 等。本班提供 Notes 但不提供回放,隔壁班提供回放但助教不整理 Notes(基本都是靠发往年的/本班的),互有优劣吧,可以看看个人的喜好决定选哪个班。
btw,这门课开学的时候选了 152 个人,第一周上完大概剩 130 个人,期中考试 92 个人,期末考试 74 个人,所以量力而行(
看不完了,要吐了,pdf
群里怎么那么安静,都这么胸有成竹吗
希望老师捞捞,60就好别挂我,大三了www
note的可读性太差了,很多小的概念没有给出,还有一些typo,让《大数据算法》课程同学感到非常困惑。炫技成分太多。
大家分数好高啊……我真的学不会数学课呜呜呜
学不会 真的学不会 要挂了 期中40多分
谢谢老师捞我及格,这一学期状态非常差,没有挂科已经很知足了
还会再来的
首先必须强调的是,这不是一门容易的课。在知识层面,课程中会涉及到很多包括数分,线代,概率论,随机过程的数学知识,尽管这些知识并不难——大部分都可以从零快速上手,但是对于我这个数学苦手来说(我当时数分线代都只是应试地学了一遍,数理基础十分不扎实),让知识进入大脑还是挺难的。在理解层面,回望我靠notes学习的过程,时常出现对着一页纸苦思冥想的痛苦经历,无论是不等式的传递还是算法的说明,都有可能成为你学习途中的绊脚石。在心理层面,由于本课程主线基本上就是算法及相关证明,大段的说明与时而动辄大半页纸的数学公式推导让人望而却步,无形中增大了课程的难度。今年选课时,我身边很多同学看到先前评课社区关于大数据算法“知识点水、作业考试简单”等评价便欣然选上了这门课,结果面对残酷的现实只能无奈退课(期中前有超多人退课,我当时其实也有点想退课)。所以倘若你看到我这条评价,希望你在选课前还是斟酌一下:本学期是否有充足的时间(绝不要寄希望于一两天速成)投入到这门具有一定难度的数学课中?
本学期大数据算法1到4章分别为基础数学知识引入,降维,近邻搜索与局部敏感哈希,5到7章描述数据流相关的算法(计数,不同元素个数,频繁元素),随后介绍了范数与Sketch应用的内容(对应八九章),至此为期中前的内容。期中后的内容分为两大块,一是聚类算法(包括kmeans等三种聚类算法,核心集,层次聚类),二是图算法(13章是亚线性图算法,14章开始介绍谱图论相关知识,并在后续两章:随机游走和稀疏化中应用)。
大数据算法主要探讨算法如何节省计算资源(例如在有限的空间记录数据流的特征,有限的时间探究图的特征)。因此本课中大部分算法的输出并不是精确解,而是以很大的概率,输出一个与真实解相差不大的值。在这门课中你会加强对一些概率不等式使用的认知(如UnionBound,Markov,Chebyshev,Hoeffding),并且掌握一些常用的技巧(例如多次使用的Mean Trick与Median Trick,又比如对图随机采样获取信息)。
平时的作业会有六次,其中2,4,6次作业需要提交。作业内容基本上是知识的延展证明,或者算法的同方法设计。个人感觉期中后作业的难度下降了,大部分硬算或者照葫芦画瓢就行了,期中前的设计性更强一些。作业也不是能轻松快速写完的,建议还是在ddl前留有余量。老师十分反感抄袭,所以作业会有一个额外部分要求写上你参考的资料或者思路来源(这部分是不扣分的!所以哪怕是你同学告诉你答案思路,也放心大胆地写上同学的名字,不会造成任何负面影响)。
期中期末考试都是闭卷。期末不考期中前的内容(虽然助教说期中前占百分之二十,但貌似唯一挂钩的仅仅是一道选择题的一个选项)。考试形式上,前三题囊括四个判断和两个选择,考察基本概念,用来送分的。后面有五个大题。本学期考试前四题基本上就是note上内容的部分重现和应用计算(虽说是重现,但可能来自于任何部分,所以也不算太容易)或者作业原题(注意135也可能会出题,所以哪怕不提交也最好看一看),最后一题一般是照葫芦画瓢式的设计或证明。
作为参考,这次期末考试后五个大题分别为:1.简述谱稀疏化与割稀疏化,并证明谱稀疏化比割稀疏化更困难。2.简述Lloyd算法步骤,说明其为什么可能局部收敛并结合画图说明为什么近似比没有保障,最后说明D²采样法怎么带来近似比保障。3.简述层次聚类的full-farthest-first-traversal算法,并证明第k个代价不超过以P为输入的(k-1)-center问题最优解的两倍。4.证明在无向,连通,非二部图的d-正则图中,随机转移矩阵P的混合时间可通过谱间隔给出上界。5.推广AVGDEG-V1算法,使其适用于r-一致超图(试卷上给出了r-一致超图的相关定义)。
最后给点复习建议。由于老师一直希望压低试卷的难度,所以考试不会有什么奇思妙想的题,大部分都是朴素来源于note。复习时一定要踏踏实实把所有note看一遍,因为真的可以在任何地方挖证明题,那些看上去非常复杂觉得肯定不会考的证明,老师也有可能在其中抽出适量的一部分用于考察。建议一天复习一两章note,不然一直看是真的相似了。
期中89,期末96,总评96。彭老师我的超人!
本学期学的最认真的一门课,这门课主要是一些理论性的算法讲解,前半学期讲的是降维和数据流算法,后半学期讲的是机器学习和聚类。老师上课思路很清晰,讲的很透彻,助教的水平很高,习题课准备十分充分。
课堂上到课人数确实很少,早八的那节课尤为明显,我认为最重要的原因就是材料的汉化问题,英文对于大家属实劝退,板书也是英文的话很难一下子抓住重点信息,回去看讲义也有可能面对一大串手写英文望而却步。但实际上只要耐住性子看进去了,就会发现老师的讲义写的很好,再加上助教无私奉献为我们提供的中文笔记(后期助教也很忙,停更也可以理解),是完全足够把这门课学好的。
正如其他同学提到的,难度:上课>作业>考试,从考试卷可以看出老师确实是希望我们可以拿到一个很好的分数,很多比较难的地方都没有考,还有很多作业题和讲义上给出、上课讲过的证明,如果看过并理解了,可以拿到一个很高的分数。
课程收获很多,对于机器学习的很多理解都更新了,对最近的导师面试帮助很大,希望汉化工作尽快完成。
PS:助教在学期中间反复提及的学术诚信,确实让人有一点不舒服,因为大家多多少少都参考了一些答案,但是完全可以推测出助教的气愤肯定是因为确实有的同学抄的太离谱了,甚至可能是直接把答案英文复制过去了,所以完全可以理解。
老师讲课清楚,助教认真负责。内容难度中等,作业量中等偏少,考试难度中等偏高。
讲一讲我不满意的地方:
1.老师手写英文讲义很难看,我本人不喜欢不给整洁美观讲义的老师。
2.助教过于强调学术诚信,也就是不准抄作业(其实大家还是会参考答案),强调学术诚信本身很正确,但是助教一直强调,而且措辞激烈,给人观感不是很好。
3.课程内容在我看来没什么用,本来以为是那种实用性很强的课,但实际上更像数学课。
但是这个课还是好课,感兴趣的可以找找往年讲义看看内容是否感兴趣再酌情选课。
给分暂时未知。
更新,给分太好了,期中80,平时没扣分,期末94,总评92超出想象,评价加一分。
给个平均分。连着两年旁听了几次彭老师的这门课后,还是建议这门课的讲义、板书等都能汉化一遍,提高效率且降低学习难度,否则很难体现上课比自学的优势。
给分:
课程内容:
参考教材(和丁虎老师的参考教材差不多):
作业:
期中/期末考试:
教学:
总结:
上课舒适有收获,作业加深课程内容,考试大放水送福利,这样的课程哪里找!
另外,彭攀老师的学术水平也比较高,在SODA、COLT、STOC上都发表过文章,大家不要都去找陈雪老师呀,你看看我呀!你看看我呀!
这门课每年讲的内容差别很大,今年建议改名近似算法,作为计算机学院的纯理论课,没有实验因此感觉比上学期本人上的机器学习A还数学。数学课比较枯燥,70多人的班期末基本就20人到课。课程难度较大内容很多,考试有80分以上都是讲义或者作业里的概念和证明题,要想独立证明很困难时间也不够因此非常考验记忆力,导致班级平均分很高,而我这样记性不好的就会吃亏——今天查卷时发现助教批的比较严,第一问概念默写记错了后面一问证明直接没分了。😭
出分了,给分不错没卡我绩。
期末令人破防,后面几章带过太快,却又考了很多,讲义在该详细写的地方没详细,也有错误,比如V/V。
期末调分挺多。本门课有一定难度,光看讲义可能不会。但涉及的降维,流算法,聚类问题和谱算法在人工智能领域都十分常见。
作业一共三次,给分不是很高。
这个课程难度之所以是中等是因为讲的东西很难但是做的和考得都是照葫芦画瓢的东西,所以中和了一下。
作业感觉不算多,毕竟6次只用交3次。
给分的话,反正我满了。
收获应该是本学期第二多的课程,思想学了不少,感觉还蛮不错的。
占坑。 没想到期末居然是这个难度,感觉要向下调分了...
——————————————————
出分后更新:喜提4.3。倒也没多大惊喜,考完期末就知道总评不会太低。感谢老师和助教一学期的付出。
这门课的内容并不算很难,但是和ics一样,语言障碍给学习带来的困难>知识本身给学习带来的困难,所以中文讲义对学习的帮助非常大。这学期徐助教提供了中文笔记,但是笔记有一些小错,而且后半学期的笔记不完整,因此还是要依靠老师的英文讲义。建议大家在学习这门课之前,下一个自己喜欢的翻译软件。
相比于信智学部的其他课程,这门课对数学的要求更高一些,尤其是线性代数和概率论相关的内容。熟悉这两门课的同学学起来应该很轻松。另外,这门课的内容偏理论,不像算法基础学的那些算法,可以直接用代码写出来。也因此这门课没有任何实验。
最后,这门课很适合速成,把讲义理解透彻就可以获得高分。所以如果你是那种平时不怎么听课,全靠考试前一周“预习”的同学,那这门课适合你。
总的来说,这门课的内容还是很有意思的,推荐大家选。
晚上考期末,来占个坑拉一下评分
是值得选的好课,老师授课也很不错
内容相对硬一些,但是应该没有上面那么夸张
考试和作业也很照顾同学们(大放水)
不适合做水课,但很值得选~
期中期末都是90+ 总评95
这门课是数学课啊,第一节课的时候彭老师就劝退说这门课很难,但是实际上来说,我个人认为和数学学院的课程对比,这门课算是简单的 (本人不是数学学院的,而且本人的gpa在计算机学院50%后面,平时非常摆烂,原本想退这课的,才发现我退课机会用完了,然后就硬着上了。。。)
这门课的预修课程基本没有,0基础就可以上,虽然名义上来说你得会,《线性代数》,《概率论》,不过你不会其实也可以上
这门课主要就是分析各种算法,主要讲的是证明。
这门课的内容比较少,但是老师上课进度非常慢,有时候一个证明讲一堂课,所以有很长的时间等你消化这个证明。
作业很少,就几次,但是作业难度还是挺大的
考试的难度,可能最后一题和作业难度持平,其余题目非常简单。
老师上课不点名,作业如果抄袭会面临极大的惩罚
要想学好这门课,其实很简单啊,就是你把老师的证明思路都理清楚就好了
准备考试的话,这门课内容很少啊,能出的就那几个,而且分期中和期末考试,期末考试听说是15%的部分考期中之前的,但是就我那次期末考试来说,几乎没有涉及期中之前的内容的。 所以考试前3天,把老师上课讲的证明过一下(VC-dim 那块的证明还是相当tricky的,但是我那次考试没有考这个证明),考试的话,主要还是以运用结论性质为主,证明的话基本不考。其实考试就是简单版的作业题。
老师很好,助教态度也很好。有回放很好。 作业做了,有点花时间,好在数量不多。虽说迷之反复强调学术诚信,但本人也没地方抄… ꒦ິ^꒦ິ 复习得不好,所以考得差。助教们后来有做一些汉化,看得出是用心的。就是习题课为什么在考试前1天…好晚… ꒦ິ^꒦ິ
另:祈祷老师别挂我,还真没挂,感谢老师。老师在本人考试后发言 没做出几道题 以及 不太会写 时,表情似乎是困惑。老师讲课很好,很容易听懂。怪我不争气复习得少 ꒦ິ^꒦ິ 本人课实在太多了 ꒦ິ^꒦ິ Sorry,老师千万不要自我怀疑啊啊啊!
虽然是开学时兴致上头选修的,没想到是本学期觉得最有意思的一门课了,先占个坑,考完期末再评。(希望期末向下调分不要太狠www)
课程本身是好课,老师也是好老师,助教也是非常非常好助教!但是要学得好还是得认真学,对于只打算考前速成的同学,也不要被前两周课程内容难给吓到,考前认认真真复习一两天,绩点应该不会低(但是要拿优秀,可能需要一定智力or努力)总之水学分的一个好选择!
给捞及格了,泪目了,但不得不说确实是很难的一门课,慎选