机器学习以及计算机公开课汇总帖
之前在简书上发过两个帖子,分别总结了CS以及机器学习的课程资源,现在也学习了几个月,就把学完的记录在这里,部分课程做了笔记的也会列出。
系统自学计算机课程:
https://www.jianshu.com/p/8f2646a825e8
机器学习资料:
https://www.jianshu.com/p/dc9020fd03b1
计算机
计算机基础
哈佛大学 CS50
https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x
如果0基础想要学习计算机知识,非常推荐这门课,课程生动有趣。这门课面非常广,介绍了C语言,SQL,HTML,Python以及Javascript,如果时间有限,可以着重学习C语言部分。
Nand to Tetris
https://www.coursera.org/learn/build-a-computer
https://www.coursera.org/learn/nand2tetris2
非常非常好的课程,课程的内容是从与非门开始设计一个计算机,从底层开始介绍计算机的构成,覆盖了CPU,汇编,编译器,操作系统等内容,第一部分0基础即可,第二部分需要学习一门面向对象的语言基础。
个人整理的资料(待完善):
CMU 15-213
https://doraemonzzz.com/tags/CMU-15-213/
非常有名的公开课,lab许多部分挺难的,这门课只完成了60%,主要是因为后期内容听不太懂,目前正在啃对应教材CSAPP,后续应该会把讲座听完。
The Hardware Software Interface
https://doraemonzzz.com/tags/CSE-351/
和CMU 15-213类似,教材依旧是CSAPP,但是内容只有本书的60%,当时是为了复习前面的内容复习的,时间不够的话可以只学习这门课。
语言类
C语言
浙大程序设计入门——C语言
https://www.icourse163.org/course/ZJU-199001课程比较简单,但是老师讲的非常好。
浙大C语言程序设计进阶
https://www.icourse163.org/course/ZJU-200001讲了一些进阶的内容,老师也讲的非常好,看完C语言应该算真正入门了。
C++
北大程序设计与算法(一)C语言程序设计CAP
https://www.icourse163.org/course/PKU-1001553023这门课更准确地说应该是C语言加STL,老师讲的很精炼,作业挺多的。
北大程序设计与算法(三)C++面向对象程序设计
https://www.icourse163.org/course/PKU-1002029030
这门课主要讲C++面向对象编程,挺不错的。
北大C++程序设计
https://www.coursera.org/learn/cpp-chengxu-sheji?specialization=biancheng-suanfa
和上一门课程基本一致,也是讲讲C++面向对象编程,但是作业难度要大很多。
Java
浙大程序设计入门—Java语言
http://mooc.study.163.com/course/1000002014#/info课不难,老师讲的很好,适合入门。
浙大Java语言程序设计进阶
http://mooc.study.163.com/course/1000004001#/info讲了一些面向对象的内容,值得学习。
斯坦福CS106A
http://open.163.com/special/sp/programming.html
https://see.stanford.edu/Course/CS106A
应该算比较著名的课了,完全的零基础入门,老师非常有意思,上课的内容难度不大,但是作业非常有挑战性,有的作业还是设计一个小游戏。这部分内容博客中有记录了习题,后续应该会把对应书籍再复习一遍。
Python
MIT6.001 Introduction to Computer Science and Programming Using Python
https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11
这门课一开始上的是学堂在线上的,后来发现edx上的作业系统更加完善,就把edx上的列出。这门课讲一些python以及计算机基础知识,课程作业挺花时间的,不过收获很大。
北理Python网络爬虫与信息提取
https://www.icourse163.org/course/BIT-1001870001
如果想要入门爬虫,我觉得没有比这门课更好的资料了,之前也参考过别的爬虫资料,更多的是像说明书,不适合新手入门,这门课在博客里也做了一些笔记。
个人笔记及课件:
UCB CS61A
课程主页:https://inst.eecs.berkeley.edu/~cs61a/sp18/
B站视频:https://www.bilibili.com/video/av20538548?from=search&seid=13214797917749675498
非常棒的Python课程,作业量很多,用Python讲解计算机运行原理,并且介绍了scheme。
Matlab
MATLAB 程序设计入门
课程主页:https://www.coursera.org/learn/matlab
matlab入门课程,涵盖了常用内容,老师人很有趣。
数据结构与算法
浙大数据结构
https://www.icourse163.org/course/ZJU-93001这门课强调的是数据结构和一些算法的实践,老师也讲的很好,但对零基础来说还是挺难的,作业每周要花很久,虽然没有语言要求,但是最好学过C,这部分在博客里做了一些简单的笔记。
Coursera斯坦福算法课
https://www.coursera.org/specializations/algorithms这门课也是相当有难度,但和浙大的课程不同之处在于强调算法分析,每个算法给了一些简单的伪代码,算是和浙大这门课互补了,后续应该会把这门课的笔记补充一下。
北大程序设计与算法(二)算法基础
https://www.icourse163.org/course/PKU-1001894005
挺不错的,讲解算法基础,不涉及数据结构,内容算是和浙大数据结构互补。
数据科学和机器学习
其实这部分一直有在学,不过还没有全部完成,所以只列已经完成的部分。
Data Science
MIT6.002 Introduction to Computational Thinking and Data Science
https://www.edx.org/course/introduction-computational-thinking-data-mitx-6-00-2x-6
这门课是MIT6.001的后续内容,主要讲了如何用python解决Data Science问题,作业有挺有挑战性,应该说完成之后代码能力能上一个台阶,个人认为可以从这两门课开始Python和Data Science,先搭建一个轮廓,后续再深入学习。
南大用Python玩转数据
https://www.icourse163.org/course/NJU-1001571005
主要讲了一些python数据分析中的常用库,大作业是一个数据分析的作业,老师亲自批改。总体来说老师认真负责,但是课程节奏有点快,需要多看几遍慢慢消化,适合之前有一定python经验的同学。
MIT The Analytics Edge
https://www.edx.org/course/the-analytics-edge
介绍利用R语言进行数据分析的课程,0基础也可以学,如果以后会用R比较多可以学一下,否则不是特别推荐。
机器学习
Stanford 机器学习
https://www.coursera.org/learn/machine-learning
Coursera上最热门的一门课,老师是 Andrew Ng ,如果新手想要入门机器学习,非常推荐这门课,这门课没有过多纠结数学推导,但是学完之后应该算机器学习入门了,后续可以学习更加深入的课程。
附上大佬翻译的中文课件:
edx哥伦比亚大学机器学习课程
https://www.edx.org/course/machine-learning-columbiax-csmm-102x-4
edx上比较著名的课程,讲了常见的各类算法,完全吃透要投入很多时间,个人建议课件多复习几遍,附上我整理的资料。
Neural Networks for Machine Learning
https://www.coursera.org/learn/neural-networks
讲授者是大牛Hinton,但是我非常不推荐新手学习这门课,感觉这门课的听众应该是对神经网络比较了解的同学,我后续也要再听一遍。
CS229
http://open.163.com/special/opencourse/machinelearning.html
Andrew Ng早期的课程,难度比较大,完整听了两三遍,已完成作业,并且对讲义中缺少的证明进行了补充,附上我整理的资料:
台大机器学习基石与技法
https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/
个人认为是最好的中文机器学习课程之一,和CS229相比,更适合入门,内容和CS229互补,配套教材learning from data也非常好,附上我整理的资料:
https://github.com/Doraemonzzz/ML-Foundation-and-ML-Techniques
强化学习
David silver 强化学习
强化学习的经典入门课程,但是感觉对初学者不算太友好,需要多听几遍,附上笔记整理:
https://doraemonzzz.com/tags/David-silver-Reinforcement-Learning/
深度学习
CS231
http://cs231n.stanford.edu/2017/
https://study.163.com/courses-search?keyword=CS231
介绍了前馈神经网络(NN),卷积神经网络(CNN)以及循环神经网络(RNN),可以从这门课开始学习神经网络,课程作业比较有挑战性,内容为利用numpy实现CNN和RNN。
个人整理的资料:
Coursera 深度学习 专项课程
Andrew Ng在Coursera上的深度学习课程,内容深入浅出,包含深度学习的大部分内容,非常适合入门。
大佬整理的中文笔记:
NLP
CS224N
应该是深度学习+NLP最好的入门课了,附上笔记整理:
Michael Collins NLP
传统NLP的经典课程,附上笔记整理:
https://doraemonzzz.com/tags/Michael-Collins-NLP/
https://github.com/Doraemonzzz/COMS-W4705-Natural-Language-Processing
AI
CS50 Introduction to Artificial Intelligence with Python
哈佛CS50系列课程,挺有趣的,可以作为AI的入门课。
数学
离散数学
18.062 Mathematics for Computer Science
MIT的离散数学课程,练习量非常非常大,课程深入浅出。
个人整理的资料:
https://github.com/Doraemonzzz/Mathematics-for-Computer-Science
优化
CS205A Mathematical Methods for Robotics, Vision, and Graphics
https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
斯坦福数值分析公开课,内容丰富,介绍了数值分析常见的内容,涵盖了机器学习中绝大多数优化方法,部分作业难度较大。
个人整理的资料:
https://github.com/Doraemonzzz/CS205A-Mathematical-Methods-for-Robotics--Vision--and-Graphics
线性代数相关
EE263 Introduction to Linear Dynamical Systems
https://see.stanford.edu/Course/EE263
斯坦福的线性动力系统课程,老师讲课非常有趣,课程内容也非常实用,介绍了线代的一些应用,一部分作业难度较大。
个人整理的资料:
https://github.com/Doraemonzzz/EE263-Introduction-to-Linear-Dynamical-Systems
傅里叶分析
EE261 The Fourier Transform and its Applications
https://see.stanford.edu/Course/EE261
斯坦福的傅里叶分析课程,介绍了傅里叶分析的应用。
个人整理的资料:
https://github.com/Doraemonzzz/EE261-The-Fourier-Transform-and-its-Applications
其他
数字信号处理
Digital Signal Processing
https://doraemonzzz.com/tags/DSP/
coursera上的公开课,内容中规中矩。