24暑假课程总结
约 2164 个字 3 张图片 预计阅读时间 14 分钟
博客版:24暑期网课学习记录
目录
- UCS CS70 Discrete Mathematics and Probability Theory
- MIT 18.S191 Computational Thinking
- MIT 18.065 Matrix Methods in Data Analysis, Signal Processing, and Machine Learning
- UCB Data100
实际上大部分或是上学期随手点开的课程,或是小学期的摸鱼产物,暑假顺手解决,(不解决的话也不知道会拖到什么时候)
总之,上完的感觉是:跟我的专业没有任何关系,以后大概率也用不到,我也不想转码,所以只能算是一种消磨时光的办法。但是学一些东西的过程还是蛮有趣的,如果你对这些课程感兴趣,但不知道值不值得看,你可以看看我的想法。
我的学习习惯是看视频或课件,然后不懂的或者一些小概念会到上网搜索。
UCS CS70 discrete Math and probability theory
课程网址:CS70
伯克利的离散数学入门课程。内容包括逻辑证明,基础数论,图论,多项式,概率论和随机过程(主要是马克洛夫链)。课程内容丰富且生动形象,对于一门入门课而言深度和广度都是足够的。
但是我没学过课内的离散数学,也用不到。但是概率论的教授重点和课内的有所不同,课内更偏题目应用,会用大量例题辅助讲解,而CS70更偏理论性和CS上的应用(比如说hash table)
具体的理论与算法的对应关系列举如下:
- 逻辑证明:稳定匹配算法
- 图论:网络拓扑设计
- 基础数论:RSA 算法
- 多项式环:纠错码设计
- 概率论:哈希表设计、负载均衡等等
(源自csdiy的介绍)
课程的Notes写的非常棒,第一次感受到读数学相关的英文资料是一件很快乐的事情,比大多教科书写的好多了,感觉自学把notes看懂就行,里面的公式建议自己推导一下(尤其是数论和图论那一部分)。
但是,notes看的有多爽,作业写的就有多痛苦。尤其是数论和图论的部分(
MIT 18.S191 Computational Thinking
一门由Alan Edelman, David P. Sanders 和 Charles E. Leiserson三位教授开设的计算思维入门课,内容涵盖了图像处理、社会科学与数据科学、气候学建模三个主题。在这三个主题的带领下来指引学生理解算法、数据解算法、数学建模、数据分析、交互设计、图例展示,让学生体验计算与科学的美妙结合,很适合作为一门数值分析或者数据分析处理的入门课。
可以看到Alan教授家超级可爱的狗
Lectures的Notes非常棒,是由Julia的一个Pluto库生成的交互式文本(类似于Jupyter Notebook),看起来赏心悦目,内容也是丰富有趣,Alan教授希望我们能够"play fun with it"。课程作业也是在Pluto里完成的,作业内容类似于Lab,基本上是按照课内所学知识完成的,不难,但是用的是Julia,所以写起来会有些生疏。
lectures的videos也附在课程网址里,前两个topics的视频可以在B站上找到,后一个topic的视频可能要到油管上看,但videos一般是教授讲解并操作notes,我后面基本上只看notes没有看videos了.
课程使用的语言是Julia,是由MIT研发的一款科学计算编程软件,它的设计目标是既有Python这样的容易学习、快速完成原型设计的能力,又能达到Java、C++这样的强类型语言的运行速度,算是一个年轻但很有潜力的语言。个人感觉语法和MATLAB类似,运行速度虽然快但是需要长时间的预编译。
北大的一位老师有写一份Julia语言入门 (这个老师写过好多很不错的教程)
MIT 18.065 Matrix Methods in Data Analysis, Signal Processing, and Machine Learning
课程网址:Matrix Methods in Data Analysis, Signal Processing, and Machine Learning
由Gilbert Strang教授主讲的线性代数的内容,算是18.06的拓展,偏在机器学习方面的应用。课程内容从线性代数出发,涵盖概率论和统计学、优化方法和深度学习,内容很丰富,里面的大多是方法都是针对高维数据的,比如说对数据做变换的SVD方法,如何找出最接近这些数据的低维矩阵(low-rank),随机矩阵乘法等等。和18.06一样,教授讲述的时候主要用板书,会举例子辅助讲解。但是内容太多,很多东西都是以介绍为主,需要课后查一下资料补充相关知识。
有一本教材,内容会比课程上多,但是知识点更加细致。但是和这门课一样,很多内容只是以介绍为主没有太多拓展。所以个人认为不一定需要这本教材(国内有中文版的)。
B站上有机翻视频,但普遍认为质量较低。OCW有给出官方英文字幕,加上老爷子讲话慢条斯理所以建议直接看英文原版字母。但是我很多没听懂
如果有志于机器学习或者想在线性代数在计算机上的应用有更多了解的话可以尝试听这门课。
UCB Data100
课程网址:Data100
有一个前置课程 UC Berkeley Data 8,我没听但是不影响学这些知识。
UCB数据科学课程,内容包括数据处理、数据可视化、特征处理、传统机器学习方法等。内容涵盖Pandas, Numpy, Matplotlib,Seaborn等数据科学常用工具包,python中sql指令,sklearn机器学习包。如果你对数据科学感兴趣的话,真心推荐这门课程!
课程有video但都是讲解PPT的内容,PPT做的很好,我是直接看PPT自学的!
这门课是用python语言,代码都是在Jupyter Notebook上实现的,课堂上的codes和slide都是开源的,不过有些课是请别的学校的老师讲课所以看不了他的slides。课后的lab和homework需要UCB的学生账号,github上有人备份了作业代码。为了实现作业里的自助评分需要安装一个otter包和在测试文件的代码前面加上OK_FORMAT = True
刚开始写Pandas的作业的时候因为不太熟悉所写起来有点痛苦,以及sql没怎么学所以sql的lab也很痛苦,其他作业就还好。
lab和homework真的超级棒!
碎碎念
一些很无聊的碎碎念
写完这些东西意味着我的暑假结束了。在暑假开始前,我和一位朋友聊天,她祝福我有一个快乐的假期。于是在写完这些东西后,我不禁会想,这个暑假我过的快乐嘛?
七月中上旬,我忙于小学期与搬宿舍。而后回了家,过上了一段很悠闲的时光。八月上旬,酷暑未消,我却早早回了学校,大部分时间奔波在玉泉和西溪两地。 这或许是很充实的假期,或许休息的时间很短,或许很多时间被浪费在一些无意义的事情上。但是,对于前面的问题,至少我可以昂首挺胸的说,我过的很快乐。
可是,当我今天晚上从实验室回来,仍想着自己还没成功搭建起的仪器,做到一半总是失败的测试,望着天目山路上的车水马龙,一种疲惫和无力感又一次从心底里浮起。
我想起了《酒保行动》里,Jill因自己麻木的大学生活而对往后的生活产生了恐慌,或许那是同一份感受,我极度害怕自己碌碌无为半生却不自知,而后在某天从一场无谓的梦中醒来后恍然大悟,却再也没有能力与精力去改变,于是被迫接受这样的结局。我曾无数次想到这些事情,惴惴不安,决意奋起,可也并不知晓是否有所改变。
看着这些学过的东西,却有些恍惚,又有几分生活的实感。或许只是因为,没有负担地学一些有趣的东西真的很开心。