1. 华盛顿大学的 Programming Languages
这门绝对是第一神课啊!很奇怪前面的回答很多只是轻轻带过……首先,课程内容不是一般大学里会教的,函数式编程,一开始就让你大开眼界!后面各种类型推导系统,用Scheme写解释器,还有非常精华的各种编程范式的优劣比较,醍醐灌顶毫不为过。其次,老师讲的非常好,上过的同学应该还记得他上窜下跳要让你记住函数类型的contra-variant规则吧!口音清晰,讲解细致,实时写代码进行解释,不能更耐心了!最后,整个课程的作业设置也很好,有理论上的问题,也有编程实践,而且难度也适中,每次都会先从热身开始慢慢加大难度。最吊的就是peer assessment了!简直就是code review最佳实践啊,还能学习别人好的写法,又是对功力的一大提升!总之这门课对整个Coursera系统的利用之完善可以说是到了极致,也正是因为上了这门课让我从此对Coursera无比痴迷,疯狂刷课……
很多同学问这门课好像Coursera上不开了,可以直接去这门课程的主页学习:UW CSE341, Spring 2016 不知道作业系统之类的体验如何……
更新:
这门课又可以在Coursera上找到了!地址:Programming Languages, Part A - University of Washington | Coursera
第一次使用“神的编辑器”……
2. Maryland的 Software Security
这个是正在上的,也是讲的非常好!把很多概念都串起来了,一周当黑帽,下一周换白帽,展现了计算机安全的方方面面。而且内容很新,heartbleed,MCFI之类的2014年出现的东东都提到了。这门课的deadline非常紧,作业都是限时提交的,还好上了第一周看难度不大,评分方面感觉有点bug……明明做错了都算我得分……今年是安全大热的年度,Maryland的安全系列课程有四门,感兴趣的同学可以都跟一下!
3. Princeton的 Algorithms
目前上过的最好的算法课,这位老爷爷师承高德纳,但又不像The Art of Computer Programming那么偏理论天书范……他写的算法红宝书也是广受追捧,看他上课的确是种享受,娓娓道来,各种图表动画,脉络清晰。这门课的作业也很赞,有理论问题,有面试常见问题,还有编程大作业三部分。其中编程大作业难度挺大,课题都很有趣,比较偏工程,只给一个API的框架然后自己去实现整个流程(也就是不光包括核心算法,也有文件IO,数据预处理之类的东西),每次都要做上好几个钟头。编程作业的评判也是相当严格,会考察代码风格,运行时间,消耗内存,API调用次数等等额外的东西,让我这个专业搞测试的人都有点汗颜了……说了这么多,这门课还是有个致命缺点……所有普林斯顿的课程都没有证书,连得分记录都没有……唉,本来是有望角逐第一神课的啊!
4. Stanford的 Cryptography
斯坦福的课程都特征明显,讲授内容会偏理论一些,需要不错的数学功底。作业一般不限制编程语言,每次题目都是动态生成的所以不能靠猜的……作业一般只能提交3次,所以拿高分的难度也比较大一些。这门课也讲的很好,老师语速很快,几乎不用加速……可惜我的数学实在太差了……掌握的不是很好,只记得算法里到处都是x0r,那些神奇的Oracle Padding, Timing Attack等攻击方法更是让人大开眼界,还有老师那句重复了多次的永远不要自己去设计/实现安全方面的核心算法……等着明年再跟第二部分,考虑跟Maryland的同名课程比较着学下。
5. 北大的 计算导论
目前内地大学上过的课中唯一一门觉得值得推荐的……李戈老师的确讲的很不错!不过这门是基础课程,适合大一大二或者刚转行过来的同学,所以我没上完就退了……
6. 密歇根大学的 Programming for Everybody
这门课我女朋友全部跟完了,非常适合没有任何基础的同学学习。其实编程作为一种爱好也是很正常的啊,里面有趣的东西实在太多了,锻炼脑子又收获乐趣,何乐而不为呢。Rice大学有一门Interactive Programming in Python 也是入门级别,跟这个课挺类似。可惜做作业用Code Sculptor需要翻墙……后来也是因为比较简单所以没上完。
7. 乔治亚的 SDN
这门课其实讲的比较一般吧,很多时候就是念ppt,不过好在内容很新也很扎实。由于本身就是个新课题,所以这门课每年的内容都在更新!除了讲课本身,每周还有两个业界大牛的interview作为补充,所以整体内容还是很地道的!作业其实也是比较简单,不过把Pyretic Pox Kinetic等各种SDN技术框架都让你体验了遍,是一个很不错的进入这个领域的起点哦。
配图为某次作业,基于Haskell写的NetASM,网络汇编语言!实现了一个虚拟交换机上的L2 firewall。
8. Stanford的 Compilers
恩,好难啊……我上了一周就放弃了…………我一定会回来的!!!
9. 华盛顿大学的 The Hardware/Software Interface
上面有同学说这门课讲的一般……不过我觉得还挺好的啊。很多内容都是基于经典的CSAPP,作业非常有趣,剧透一下我的解题笔记哈哈……CSAPP - Buffer Overflow Attacks 对于像我这样不是科班出身的人来说这门课是个非常好的基础补充。可能由于第一门上华盛顿大学的课实在体验太好,所以后面都有点爱屋及乌了。给予这门课强烈推荐评级!
某次作业……拆弹现场哈哈
10. Stanford的 Algorithms: Design and Analysis
斯坦福的算法课,内容上从名字可以看出来更偏理论一些,课程上很多数学推导内容,可以说是内功心法……作业相比普林斯顿的就简单纯粹很多了!毕竟核心算法基本就那么点逻辑,几行代码基本上都能很快写完……这个课的老师实在是太像纸牌屋里那个Peter Russo了(《蚁人》中的大反派!),真实分分钟出戏啊……如下图:
恩,另外上这门课时发现讨论区挺活跃的!大家都在那讨论如何优化自己的算法,时常去看看很有收获!附一个我的作业笔记:Python Algorithms
11. 台大的 计算机程式设计
其实就是讲C语言,比较基础,我女朋友上完了。作业还是挺有趣的,而且每次都会在deadline之后贴出参考代码,这个对初学者还是很有帮助的!有一个作业是讲光线射入一间有各种镜子的房间后会从哪个窗口出来的,我写了下搞了一堆if else上去非常复杂……后来看了参考答案发现可以用数组来控制一些跳转逻辑,典型的逻辑与控制解耦方法,代码复杂度一下就下来了。这种在自己动手过程中发现的道理才印象深刻啊!最后一周的作业是写个非常简单的BASIC语言解释器,让我回想起那天夕阳下用小霸王学习机写BASIC的小男孩,那是我逝去的青春……
12. 洛桑联邦理工的 Functional Programming Principles in Scala
这个是Scala的作者亲自讲的课,其实在讲FP方面我觉得是没有华盛顿大学的那门讲的好的,而且由于Scala异常丰富的特性,这门课的作业也会让人在具体实现上有些迷茫,好像跟课程内容没啥关系嘛……学完之后整理了个笔记,基本涵盖了所有内容,有兴趣的同学可以看看。注意文中有大量作业剧透,本想借此刷访问量的……可惜写得太差,唔…… Learning Scala
13. Princeton的 Computer Architecture
又是一门很不错的课,视频量大且难度专业度很高,讲各种CPU的架构与设计,配合那本教材计算机体系结构 (豆瓣) 一起看效果很好!唯一的缺点是没有证书……连作业都是pdf,全靠自觉,对我来说简直是无法完成的任务…………给个截图大家感受下……
14. Maryland的 Android系列课程
链接里的是第一门,这个课没什么出彩的地方,但是循序渐进把安卓的各种部件都讲解的很清晰,作业难度也比较低,很适合新手入门。后面还有几门课由于我不再搞mobile方面的东西了就没有再跟……不过看这个课感觉应该会很不错的!编程作业都给了框架,然后本地跑安卓的UI Automation通过上传log的方式来评判成绩。另外也有peer assessment,下载别的同学的代码来跑什么的。有一次作业里包含了拍照录像功能,然后就在截图里看到了世界各地上这门课的大叔/正太的自拍照,感慨了一下这就是mooc的魔力啊!不管你身在何方,基础怎么样,现在从事什么都可以随时加入学习,一起讨论进步,真是太美好了!
15. Stanford的 Mining Massive Datasets
最近开的新课,老中青三大帅哥齐上阵,视频量巨大无比……不过内容很新很有趣,介绍了好多从来没听过的大数据算法啊!第一周讲map reduce和page rank,听完还以为是一门很简单的小白课程,不过后面越来越精彩纷呈!最近一周直接讲了Netflix那个推荐算法大赛中大家是如何使用各种协同过滤,SVD/CUR算法配合时间序列补偿等等技术一步一步把算法的误差从0.95减少到0.87左右……当然最后要拿到大奖还是得用一锅乱炖大法…………这门课的作业感觉偏简单了点,感觉做了好多线性代数的复习题……恩,到时候挑战下optional的编程题吧!
16. 台大的 机器学习基石
也是最近在跟的课,老师说这是门story based课程,还以为会很轻松听听故事,结果…………智商被凌辱了有没有?虽然叫基石,不过难度比Andrew Ng的那门大多了……作业更是我见过中最可怕的,选对得分,选错倒扣,所以瞎猜的得分期望为0……做完只给总分,不给具体对错结果,而且每次重试都有2%的扣分……所以一定要认真复查,仔细抉择,瞎猜前记得斋戒七日,沐浴更衣……
17. 新墨西哥大学的 Web Application Architectures
挺好的课程,主要就是介绍了Rails开发web app,MVC架构之类。作业真是不能更简单了,不过本身也就是导论性质的课程吧,几乎没花什么时间就把目前还算比较流行的web技术架构了解了一下,很值得一上!不过如果是专门搞这个的同学估计会觉得太简单了,没啥必要跟了就。
18. 台大的 机器学习技法
《机器学习基石》的后续,仍然是屌炸天的难度……看介绍应该主要上SVM,AdaBoost以及神经网络/深度学习。看这几个名字就要热血沸腾有没有!昨天刚完成第一次作业,竟然史无前例拿到了400分。喜极而泣啊!上课过程中有强烈的想要补习线性代数,统计学的冲动……不知道大家有没有什么好的书本/教程推荐啊?
19. Johns Hopkins的 Data Science - Specializations
目前见过开课频率最高最规律的课了……可能是因为很短(都是一个月)而且有9门之多的缘故吧。难度较低,12月一个月就搞定了4门,不过月底开始忙起来了,加上机器学习技法,估计这个月能上一门就不错了……课程基本都是用R语言,比较系统地教授数据科学中的整个流程,比如获取数据,清理数据,做初步分析(各种绘图),可重复研究(看上去也就是完善的文档记录)要点等。后面也会涉及到统计,回归分析,机器学习之类偏数学的内容。几位老师貌似都是搞生物医学统计方面的。个人对使用R语言有些不太满意……现在不都是Python大法好了吗……9门课都是每月都有开,所以时间上来不及的时候可以退掉等下个月的……
20. 密歇根大学的 模型思维
第一次上中文版的课,以前觉得自己英语还是挺不错的,基本不用看字幕都可以很顺利地跟下来,现在有了中文字幕发现差距还是有的,基本可以全程2倍速(除了翻译有瑕疵的时候)……这门课算是我上的第一门跟计算机方面关系不大的课,真是轻松无比有种看美剧的感觉啊。当然内容还是非常不错的,有一周就讲了《思考,快与慢》中提到的几种理性偏差精华版哈哈。而且实用性也不错,上过课我还真的潜移默化会在平时决策时搞个表格/决策树什么的东西来算一下……各种背景的同学都可以上,给予强烈推荐评级!
。
21. Illinois的 Heterogeneous Parallel Programming
当年看王越写的Mac OS背后的故事系列时对异构编程充满了向往,不过本人C/C++基础很差,所以这门课选了也只是放在那……搞高性能科学计算的同学们可以关注下!
22. Illinois的 Cloud Computing Concepts
哈哈,难得选上一门跟工作实际相关的课程啊。之前看的大多数云计算的书都比较虚,这个课听了个Intro感觉干货挺足的,编程作业是用C++实现一个member protocol,感觉挺有趣。这也是一个系列课程,每门课都不长,看起来负担不大。必须要重点跟一下了!
完成了CCC的第一部分,这门课的很多方面跟Mining Massive Datasets非常像,老师上课基本上就是讲解各种分布式算法,毕竟是一步一步讲算法过程,比看书应该吸收快一些。然后就是简单介绍各种算法的应用。涵盖的内容还是相当丰富的,MapReduce,Gossip/Membership,P2P系统,KV存储,分布式时序问题,大名鼎鼎的Paxos等等都有涉及,对拓宽知识面,了解分布式的一些基础原理很有帮助。作业难度不大,美中不足的是唯一的一个编程作业用的是C++……完全不会啊……目前在跟第二部分的课程。
23. Illinois的 Pattern Discovery in Data Mining
本科时上过印象最深的一门课就是数据挖掘了,当时就知道了这个著名的Han, Jiawei和他的经典教材。这次终于有机会听一下他本人的授课了,不得不感慨这就是技术改变生活啊!
24. Brown的 线性代数
通过写代码的方式来学线性代数真实令人耳目一新!主要是在台大的机器学习课程中被各种数学虐虚了,必须来补习一下基础了啊!
1
25. 巴黎高等师范的 Statistical Mechanics
一看是个不认识名字的大学,查了下才知道是法国第一名校……听了第一周的蒙特卡罗方法,对法式英语很不习惯……而且对这个领域之前没有任何了解,他上来直接这么讲感觉让人有点云里雾里的……不出意外估计不会跟多久吧。
26. 南京大学的 软件测试
之前看了几个北大的公开课总感觉老师年纪都好大,讲课毫无激情,内容也比较陈旧。最近看了这个课的介绍部分,感觉内容很新,跟行业结合挺紧密的,而且老师也比较年轻,第一印象不错。课程还专门搞了个Mooctest系统来帮助大家学习实战,极具诚意,值得推荐!
27. EPFL的 Principles of Reactive Programming
Scala课程的第二部分,还是由Scala之父亲自操刀。鉴于目前Spark如此火爆,有时间还是要跟一下的。另外Berkeley在edX开了两门Spark相关的课,看介绍是用其Python接口来教学的,不过跳票好久了啊…… Introduction to Big Data with Apache Spark
15-6-29更新:
工作太忙中途放弃了Scala的这门课,视频和作业难度一如即往的大,个人感觉更偏实战一些,应该是市面上最好的了解学习Scala的课程了!如果重开的话再跟吧。最近倒是把edX的那门Spark课上得差不多了,等全部完结再来写总结。
15-9-29更新:
有好一阵子没有上课了,而且之前Coursera也很久没有推出新的让我感兴趣的课程……于是就刷了2门edX的课,也一并放在这里吧。
28. UC Berkeley的 Introduction to Big Data with Apache Spark
与Databricks合作的课程,课程安排设计合理,讲解非常清晰顺畅,有种在看新闻播报的感觉,应该是花了大量时间准备+录制的。主要就是介绍了时下非常火爆的Spark的工作原理,大数据的一些概念介绍。作业主要是问答题和Lab,这个Lab的体验是相当的好啊!用Vagrant拉下虚拟机来就直接搭好Spark环境,然后用IPython notebook来写作业,感觉交互性,展示的美观程度完全不输Rmd!作业内容还是比较接近实战项目的,整体难度中等,对着PySpark文档写作业基本毫无压力……
29. UC Berkeley的 Scalable Machine Learning
上一门课的后续,更多偏向了机器学习的内容。不过感觉深度一般,Scalable估计主要就体现在能用Spark来做类似MR的大规模并行处理了,在算法细节上的优化介绍和机器学习原理性的东西介绍很少。时间也太短了点……感觉意犹未尽。多来几周的内容就好了!
edX的证书:
今天看到有人在知乎说Coursera怎么都是收费课程了,我上去转了圈发现有大量课程更新啊!而且不少也采用了edX,Udacity里那种学校和业界知名公司合作的形式……看来又可以一阵猛刷了。
30. Illinois的 Cloud Computing Applications
这个课是云计算系列课程中的第三门,视频量出奇的大……最近实在没时间,到现在我第一周的视频都还没看完。不过目前看内容感觉挺不错的,云计算,大数据各种内容包罗万象,讲解内容也还是有所深入,并不是蜻蜓点水一笔带过的那种。后续应该至少会把所有的视频跟完。
15-12-10更新:
Coursera改版之后把重心放到了“专项课程”上,最近主要关注了下Data Science下面的几个专项。
31. 华盛顿大学的 Machine Learning Specialization
目前上过体验最好的Specialization也是体验最好的机器学习课程!对初学者友好度令人感动……被台大的课虐怕了的同学可以来感受一下。只要有非常基础的Python,线性代数经验就能顺利上手,课程内容有趣,讲解到位,正回馈多多,很容易坚持下来。目前完成第一门课是一个Overview,把后面几门的主要内容都过了一遍,同时展示了Dato(这门课的合作商)强大的GraphLabCreate框架。作业难度低,而且趣味性及实战性比台大的作业好不少,轻轻松松就实现了一个深度学习神经网络有木有!不过如果是有经验的从业者,估计这个系列难度会有点过低了……
32. UC San Diego的 Big Data Specialization
这个系列也不错,主要介绍Hadoop系的那些东东,配合Cloudera的VM来讲解,布置作业。上完前3门,MapReduce,HDFS,Hive,Pig,HBase,Spark,Splunk(这门课的合作商)都在作业中有了直观的使用体验,当然基本没有什么难度……从没接触过Hadoop生态圈的同学可以通过这个课快速了解下。
33. 华盛顿大学的 Data Science at Scale Specialization
虽然名字看起来很牛,不过给我感觉是这三个专项课程中最差的一门了。上完两门,最后一门弃了。内容偏理论,讲解略枯燥,上完感觉收获不大。
另外还有很多新的CS方面的Specialization:Computer Science
有不少Python,Java和前端开发方面的课程,感兴趣的同学可以follow下。
34. 多伦多大学的 Neural Networks for Machine Learning
16年是人工智能和深度学习大红大紫的一年,这门课又是来自宗师级人物Hinton,必须得上啊!上之前最好是已经有“传统”机器学习的基础,否则需要补习很多课程中没有解释的各种概念……这个课应该是12年制作的,在当时看来绝对是极其前沿的内容,Hinton老师带着大家各种读论文,甚至还有没发表的研究成果,感觉更像是一门研究生级别的课。作业难度不大,编程作业用的是Matlab,稍微有点遗憾……要是用TensorFlow之类的多好!当然12年那时还没有开源TF……老爷子的英语跟其它美语老师的风格很不一样,喜欢看英剧的朋友们有福了 :)
35. 斯坦福大学的 Probabilistic Graphical Models
这又是一个领域宗师亲自上的课,跟吴恩达的cs229一起算是Coursera的看家宝了!概率图模型本身是传统机器学习里比较高级的方法,只可惜现在风头都在深度学习那了……课程本身内容非常丰富,也分了表达,推断,学习三个部分来上(否则就要称为一个近20周的大课了)。就讲课来说个人认为比Hinton讲的要更好,比较具体,会有推演和举例。作业我只做了问答题,有两个可选的编程作业没有额外花时间去做了。强烈推荐搞这个方向的同学跟这门课。
36. EPFL的 Scala Specialization
这个其实就是之前Martin的Scala课程,另外加了2门并发和Spark组成了一个专项课程。第二门课貌似被阉割了一些内容,有点遗憾。整体上课体验还是不错的,编程作业很有挑战性!Scala本身随着大数据和Spark框架的崛起也变得越来越流行,反正我本人用了几天Scala做项目原型后就再也回不去Java了……哈哈哈,必须向广大JVM平台开发者安利下!
37. 密歇根大学的 Applied Data Science with Python
这个系列课程我没有上,因为本身对Python,numpy,pandas,sklearn之类都已经比较熟悉了。不过对于想从事数据工作的人来说,都可以跟一下这个课入个门。Python本身学习曲线很低,掌握之后的生产率提升又很明显,性价比相当高!看了下课程内容安排都挺合理,根据我之前上密歇根大学的其它课程经验来看应该不会差。欢迎有上过此系列课程的同学提供反馈。
38. 优达学城的 深度学习
这个是Udacity的课程,其实就是Google出品的TensorFlow tutorial……比起刚开始这个课的内容上已经有所完善了,但总体来说还是一个走马观花的课程,比较适合有一定机器学习基础的人初次体验深度学习来上。作业内容就是TensorFlow项目里的一些example,用Jupyter Notebook写,语言用的自然是最好上手的Python binding。无论是作业还是问答题都没有评分,全靠自觉。如果想系统学习深度学习,还是更推荐斯坦福的cs231n和cs224d这两个课。
39. Deeplearning.ai的 深度学习专题课程
最近非常热门的新课,大名鼎鼎的吴恩达主讲!之前很多人评论说为什么这个回答里都没提到Coursera的镇站神课cs229,这次终于有机会体验了一下吴恩达的讲课!不得不说吴老板讲课的确厉害,很多复杂的问题都讲解的很清晰。总体内容上比较基础实在,结构设计非常合理,各种承前启后对新手来说很友好。而且里面融入了很多吴恩达多年从业经验的总结,比如gradient check技巧,还有整个第三门课程讲如何组织机器学习项目等等。这点非常难能可贵。想起之前有人采访数学家们说你们思考数学问题时真的都是像论文里那样满脑子都是公式飞来飞去吗?很多人表示其实不是的,他们会有一套更形象化更易于具象思维的表达方式来看问题。吴恩达是我见过少数能把这种“内在表达”非常清晰地讲授出来的老师!现在只开了3门课,两天就上完了有点不过瘾……可以期待一下剩下的两门CNN和RNN。总而言之,强烈推荐链接:https://www.zhihu.com/question/22436320/answer/32665792