超級現實的超現實理想主義者

(less today car(cdr life))

上海

感兴趣的主题: jazzysport CS

15个粉丝

超級現實的超現實理想主義者 的课程评论

超級現實的超現實理想主義者 评论了课程: 機器學習基石 (Machine Learning Foundations)

2015-01-01 11:11

距离这门课结束发放证书已经有一段时间了,想借此机会分享一下自己对于学习的感悟。

正如大家所说的,机器学习基石课程的质量非常高,但是也很有挑战性。一年前第一轮开的时候因为水平有限,很早就放弃了,等到第二轮开课才搞定。我想在这里分享一些个人经验和感悟,希望有朋友能从中受益。

首先我想谈谈所谓“抽象”(Abstraction)的思想:
从我个人过去的学习经历来说,每当刚刚接触新的知识,因为不清楚什么东西是重要的,什么是不重要的,所以常常会出现钻牛角尖、死抠细节的现象。这门课的一个优点---同时对于初学者来说也是一个隐含的缺点---就是课程的内容非常详细。林老师常常会对一个问题作出很完整的解释,等整门课程学完以后回过头来再看,其实其中很多细节性的概念仅仅是因为追求课程内容的完整而展示,即便对此没有真正理解和掌握也不影响学习和通过这门课程。但有些地方如果细细回味会发现,林老师对于一些细节做了模糊处理,背后的潜在意味可能是:“这个东西很难,或者不是特别重要,你们不能完全掌握也不影响课程的学习,但是因为追求课程内容的完整,我还是会把这些内容放上来让你们知道大概怎么回事,如果感兴趣的朋友可以课外去钻研”。但是对于初学者来说,这些处理可能会产生负面的效果:“这个地方林老师说得这么轻描淡写,是不是这个是课程的Pre-requisite?完了,完全不知道这是什么,看来我还不能胜任这门课程...“ 进而会对课程产生恐惧心理,甚至退课。

大概在8月份的时候,我开始渐渐领悟到“抽象”的思想,这个概念还是在MIT那门“电路原理”里接触的。简单地说,例如:对于电气的工程师来说,他即便完全不明白底层的物理原理和性质,也不影响他设计电路系统;对于操作系统开发工程师来说,即便他不了解计算机是如何被制造的,也不影响他的工作;对于机器学习领域的工程师,他也不一定需要知道操作系统或者计算机语言是如何运行的。人类之所以能够制造出复杂的系统,正是在这一步步的抽象的过程中完成的。这也是为什么会有“工程师”和“科学家”这样的区分。没有一个人能够掌握每一层的细节,你所能做的就是相信你所依靠的其他层面的支撑部分已经被其他人实现和证明了,你只需要完成你所在这一层的工作。

学习这门课也需要有“抽象”的思维。例如课程一开始讲的Hoeffding's Inequality相信给了不少人当头一棒:“这是什么?以前学概率论的时候没听说过啊!”当时第一轮我就是因为这个而退课。后来过了几个月学MIT在edX的“概率论”课程的时候,Hoeffding's Inequality仅仅是在Supplementary Materials中出现,因为即便不理解这个Inequality是如何证明的也不影响课程进度,所以我就没看这个资料。再回过头来谈机器学习基石,知道这个概念是什么,能干什么,至于不知道概念从何而来,为什么会这样等等,其实也不影响课程的学习。换句话说,培养自己“抽象”的思维方式,就是要学会有些地方需要“拿来主义”。

很多年前听到过一句话,大概是丁肇中说的,大意就是:要学会“不求甚解”。现在总算明白这句话背后的含义。

不过“抽象”思维也有Downside, 一旦习惯了“不求甚解”,有些地方会出现思维定势,这也解释了为什么有时会发生外行颠覆内行的现象。不过这个是后话了。


我要谈的另一个话题是关于自信心:
MOOC的证书机制对我帮助最大的就是帮助我一步步建立自信心。我觉得第一次接触一个未知东西所带来的恐惧是最难的心理障碍,而等到自己突破心障,充分接触了以后回过头来再看其实也就那么回事。

因为专业不同,这些内容都是依靠自学,没有受到正规的学校教育,而MOOC的题目能够给予反馈,并且最后会发放成绩和证书,会从侧面告诉你,这门课哪些是重要的,哪些不能掌握也没有太大关系,这一点对我来说就非常重要。相比自学其他材料(例如MIT OCW),如果没有一个反馈机制,可能你会感觉像个无头苍蝇,等遇到一个障碍后很轻易就可能会放弃了。

最后一点就是“Learning By Doing”,亲手解决一个问题和没有解决这个问题,心理状态是完全不一样的。同一个人,如果只看课程视频而不做配套的练习或者解决相关的问题,和解决了相关练习或问题后的差别是巨大的;同理,知道实务中一个问题是如何解决和真正动手解决这个问题差别也是巨大的,而这些差别主要是心理上的。

超級現實的超現實理想主義者 评论了课程: A System View of Communications: From Signals to Packets (Part 1)

2014-11-09 08:40

本课讲述了数据传输从发送端到接收端的处理。老师讲得很清楚。 值得一提的是,这门课的Lab貌似是我上过的课里第一门Auto-grade作图的,其它的课考察作图都是采用Peer-assessment。

课程本身不难,但是内容很有诚意,很不错的入门课程,相当推荐。

超級現實的超現實理想主義者 评论了课程: Physics 1 for Physical Science Majors

2014-07-19 18:08

上这门课之前我的物理停留在初中水平(高中玩了两年,高三选的是历史,所以自初中毕业以后基本上就和物理绝缘)

因为在上一些网络课程的时候发现对提到的很多基础物理概念非常陌生,所以觉得自己有必要从头开始搞起。

目前大学物理1各个MOOC平台上最有名的是MIT那门力学,内容应该和我现在点评的这门课差不多。不过最后还是选择了这门课,主要还是个人偏好吧。

因为内心里总觉得大物1比较简单,不太想在这个上面花太多时间去练习,发现这门课更适合我。这门课的老师讲的非常好,概念讲的非常清楚,以至于我基本上什么也不要做,打开视频一直播放到底就行了...

6月初的时候开始听这门课,一有空余时间就听一下,前后花了一个多月,感觉还是挺享受的

超級現實的超現實理想主義者 评论了课程: Introduction to Probability - The Science of Uncertainty

2014-06-09 11:07

这个应该是目前能找到的最好的工科概率论了。

这门课花了我不少时间(差不多200个小时吧)。量非常大,非常厚实,之前没事干统计了一下每周的视频量和习题量,每周的视频分布在3~6个小时(包括TA带你刷题的部分,最多的那一周足足6个多小时的视频),习题量(包括TA辅导刷题的部分)整门课差不多1000题!没错,1000多题!而且不少题目非常有难度!从课程论坛的反映来看,平均每人每周一般都要花12~15个小时。

我是1.5X倍速听的课,老师和TA的授课没有死角,习题难度也非常有诚意,应该是我目前为止体验过最完美的一门课了

超級現實的超現實理想主義者 评论了课程: db: Introduction to Databases

2014-03-19 17:09

轮次:
2014年1月

背景:
去年知道这门课的时候已经快结束了,没有拿到证书所以今年补回来。这门课不需要什么背景,任何人都可以上。

内容:
主要围绕SQL和XML展开,并且包括Relational Algebra和JSON等内容。据官方描述这门课的内容和习题与Stanford校内的课程基本一致。授课方式在现在看来还是比较传统的:先讲概念,然后Demo。如果说稍微有点不满意的点应该就是视频长度有点不符合时代潮流了,有的视频动辄30min以上...虽然这门课程名以上有要求相应的教材,其实以视频的内容已经绰绰有余了。自从将MOOC作为生活方式后,我已经很久没看书了...

习题:
主要分为概念题和编程题,题目量不少,尤其是编程题,通过不断的练习巩固概念这一点挺好。题目做不出来的地方回头重新瞄一眼Demo基本上就能够解决。

总结:
作为MOOC的元老级别课程(另外两门是Udacity的AI和Andrew Ng的ML),两年过去以后这门课程的内容基本上没有什么变化。毕竟是以SQL和XML这些比较成熟的技术展开,所以也不算什么问题。不过里面也讲了No SQL,不过好像感觉目前也没什么人提了,所以这个部分也就没怎么听。

如果要系统学习数据库的话,这门课在目前的MOOC课程里面是最好也是唯一的选择。

超級現實的超現實理想主義者 评论了课程: A Brief History of Humankind

2014-02-01 20:48

轮次:

Aug 2013

背景:

这门课不需要什么背景知识,只要肯花时间,剩下的就交给讲师了。(稍微”Due Diligence”了一下,讲师在中东好像是个很红的年轻学者)

因为本科专业是法学专业(传说中的“平时养老院,考前疯人院”),加上一直挺鄙视所谓学生会及其相关的活动,所以除了出去实习或者打球,剩下的时间都比较闲。大学前三年花了很多时间看了大量的纪录片、电影等资料,而且因为自学金融也看了不少金融和经济学领域的教材名著,所以自认为对于社会运作规律有了一些感觉,直到当我遇到这门课。

内容:

这门课如果要用“宏伟史诗”来形容一点也不过分,其中包含了很多学科的内容,例如考古学、生物学、物理学、经济学、宗教、社会学甚至计算机科学等等。不同于台湾大学的“秦始皇”的“说教”,这门课程里面的大部分观点都是从不同的角度进行介绍,其中很多都是经无数人严格验证过的,讲师很多时候仅仅是通过自己的表达希望尽量客观地介绍一些内容,至于每个人怎么理解并没有统一的标准了。(我不太喜欢被人说教,有些道理还是自己总结比较好,所以这门课程更符合我的口味)

正因为每个人对于这门课的看法会不同,所以对我来说这门课最核心的内容,或者说贯穿课程的主线总结就是“什么是幸福?” 毫不夸张地说,这门课重新定义了我对于“幸福”理解。其中对我来说最震撼的部分应该是:“Lesson 5 History’s Biggest Fraud”

练习:

这门课的作业和考试仅仅是走个过场,主要就是弄一张证书留作纪念。

社区:

这门课的论坛讨论还是挺激烈的,有很多非常宏大或者敏感的问题在里面也有讨论。其中不出意外的,最热闹的一个帖子是关于宗教的,看到每个不同宗教背景的人在里面讨论,感觉挺奇妙的。

总结:

总结呢…这么说吧,世界上有两种人:听过这门课的,还有没听过这门课的。

超級現實的超現實理想主義者 评论了课程: Automata

2014-01-08 19:30

轮次:
Nov 4th 2013

背景:
这门课程的背景其实不是太多,主要都是证明题,如果熟悉数学归纳法基本上就没太大问题了。当然,一个良好的心态还是有必要的(听过这门课就明白了)。

内容:
内容其实就是计算理论,前半部分有很多和编译器的课程有一定的重合,后半部分主要讲图灵机以及P和NP。说实话这门课我听到一半就已经是在听不下去了,一方面是因为老爷子年事已高,可能英语习惯属于老一代的传统,所以即便我明白他说的每一个字也不一定理解他到底想要表达什么,另一方面,老爷子讲课的方式实在太跳跃了,几乎每一句话都压缩了相当多的信息量(也可能是因为内功太深厚,一般人难以消化,毕竟是大师...)既然课听不下去那就看教材吧,但买了国内影印的教材也是看得挺郁闷。

怎么办呢?毕竟这门课的证书非常有收藏价值,过了这个村可能就没这个店了,咬咬牙吧。于是做了一番调研,终于找到合适的资料了:这个领域有一本书很有名,是MIT的Introduction to the Theory of Computation,美国亚马逊上的评价比Jeffrey Ullman的Automata Theory要高,绝大部分学校教授计算理论用的就是这本教材,包括斯坦福(CS154),国内就有影印版。而且还在Youtube上找到了UC Davis – Theory of Computation(相当于MIT那本教材的配套视频课程),讲的非常棒,很Intuitive,据说UC Davis这门课的讲师和MIT那本教材的作者还有很密切的私人关系。总之,这两个资料帮了我很大的忙。如果你也和我一样不喜欢Jeffrey Ullman这样劈头盖脸都是干巴巴的证明的话,可以选择我说的资料。视频已经从Youtube上抓下来上传我的网盘了,课程图谱的博客也有整理:公开课可下载资源汇总

练习:
作业有两种,一个是选择题,另一个是编程题(两题PA,但仅占总分很小的比例,几乎可以认为是Optional)虽然其中选择题每周都有100次机会,但是因为每次题目都会变动,想要单纯依靠Rapid-Fire Guessing拿满分估计有难度,而且大部分题目徒手做估计要累死,不过这对于这门课有一个神器:杜克大学研发的软件JFLAP。因为是网络课程的缘故,很难考察证明题,所以很多题目都是构造自动机,于是JFLAP就成了解题神器(包括Final Exam)

社区:
其实没怎么太融入这门课的社区,不过讲师和助教确实非常敬业,常常会和学员互动(之前无意中在微博上看到有人因为Ullam回复他的留言而表达兴奋之情)

总结:
据说这门课一年以后(2014年底)会重新再开一轮,希望我的这些经验能够提供一些帮助。
前几天读到王垠的博文《我和权威的故事》忍不住要在这篇课程评论里分享一下: http://www.yinwang.org/blog-cn/2014/01/04/authority

超級現實的超現實理想主義者 评论了课程: Programming Languages

2013-12-21 21:39

轮次:
Oct 3rd 2013

背景:
现在回过头来看这门课其实从某种意义上来说并不需要太多背景,虽然Dan Grossman在一开始说这门课不适合一点编程基础都没有的人,不过说实话即便将这门课作为第一门编程的课程,只要努力还是可以过的,前提是做好吃苦头的觉悟。我就没学过C和Java...(对应一楼的评论)

内容:
这门课的内容还是很多的,每周光是视频估计都要三个小时了,讲得很细,很清楚。期中前四个Section的内容和EPFL的Functional Programming Principles in Scala有很高的互补性。令人惊奇的是, Dan Grossman将讲解与当场打代码结合地天衣无缝,教学水平真是令人叹为观止,也难怪这门课一年内开了两轮以后产生了无数Dan Grossman的脑残粉。另外尤其喜欢他写的Notes,因为每当一个地方的知识点不理解的时候就瞄一眼,或者搜索一下很快就知道在哪个视频,省去了不少时间。顺便提一下我对计算机语言的看法:其实对于计算机语言,我觉得不用太绝对的把语言分为Functional,Imperative和OOP等,其实除了Static Typing 和 Dynamic Typing 两者是水火不相容,其他的都是可以商量的(体验过Scala这种奇葩语言就明白我的意思了)

作业:
这门课的评价方式还是挺完整、严格的,除了7个PA,还有期中、期末考,PA除了机器打分,还有Peer Grading,总之相当费时间...有的作业里部分题目还是蛮有难度的,但是鉴于接触CS快一年,懂得如何抓重点了,所以少了很多当初刚开始接触MOOC CS课程那种痛彻心扉的体验......

社区:
这门课的社区去的很少,不过总体来说挺热闹的。

感受:
这门课应该算是MOOC平台中少有的超高质量的课程,如果想要打下扎实的基本功那么强烈推荐这门课程,不过要做好花费大量时间和精力的思想准备,当时上的时候总感觉刚搞定一周的内容下一周就出来了,挺有压迫感的

超級現實的超現實理想主義者 评论了课程: Functional Programming Principles in Scala

2013-12-21 20:49

轮次:
Sep 16th 2013

背景:
今年年初的时候挑战过一次,失败了,九月再战,这次成功了。这门课需要的背景我也不好说,感觉如果能够搞定Peter Norvig在 Udacity上的Design of Computer Programs(虽然我没上过,不过大致知道讲什么)的话搞定这门课的作业应该不成问题。

内容:
这门课的很多概念性的内容和UW的Programming Languages的前四个Section有很高的重合度,因为这两门课我是同时在上,所以感触很深。跟着讲师的讲解动手做,效果不错,而且这门课程还会提供一些免费的资料,其中一本 Scala By Example我觉得挺有用的。

作业:
这门课没有考试,全部都是PA。对我来说还是挺有难度的,因为主要的倒难点不在于函数式编程的概念,而在于想要解决的问题本身,这就是为什么我之前说搞定Peter Norvig那门课的话,这门课的作业应该会好解决一点。

社区:这门课的社区很活跃,帖子能发到60多页,鉴于这门课的开课频率目前来说挺高,这种活跃度还是很好的,也难怪Martin他们群发邮件吹嘘说他们是所有MOOC课程中拿到证书的人最多的一门课。另外值得一提的是这门课的TA,其中有个助教叫Pavel Lepin简直是活雷锋中的战斗机,超级给力!(我在上一轮Scala的时候也是他担任TA)而且他在UW的Programming Languages里面也担任助教。之前无意中在哥伦比亚的NLP中也看到过他的自我介绍,原来他是大学辍学,现在已经三十几岁了,MOOC重新定义了他的人生,励志啊!

总结:总体上非常不错的一门课程,对于习惯了指令式语言的朋友来说可能转换思路有点吃力,不过很锻炼思维

超級現實的超現實理想主義者 评论了课程: An Introduction to Financial Accounting

2013-12-08 16:09

轮次:Sep 2013

背景:
以前考过CFA一级,虽然拿了全A(每门>70%),但是对于FSA(Financial Statement Analysis)这一块感觉还是似懂非懂,加上自己本身不是商科专业,在学校没有上过会计方面的课,所以借着这门课推倒重来重新系统的学一下。
这门课的受众虽然也包括零基础的人,不过里面的很多会计术语讲师都假定你已经知道,所以如果真的零基础的话,身边备一本会计词典或者随时上wikipedia会很有用。而会计术语对于很多人来说是学习会计的一个很大障碍,但对于这门课来说,如果把时间花在名词解释上确实得不偿失(才8周的课),不懂的地方翻翻会计辞典反而比上课花时间讲一遍效果更好。

内容:
讲师Brian Bushee是个很有幽默感的人,能把这么无聊的课上得不那么枯燥确实不容易。最值得称赞的是他在课程过程中制作的虚拟人物动画,如果认真听课就会发现这些动画出现的时机非常到位,每当听课的过程中有不懂的地方虚拟人物就穿插进来,就好像知道你心里在想什么一样,在虚拟人物与讲师相互吐槽的过程中把很多不清楚的概念解释清楚了。
这门课的另一个特点是讲师不怎么花时间给你解释各种概念,而是花了很大的精力通过大量例子“洗脑”一般的帮你理解知识点,这对于会计这种实务性很强的课程来说是非常好的教学方式。像T-account,“借”和“贷”这些概念以前学的时候其实并没有真正弄懂,这位讲师一下子就把这些东西讲明白了,确实很了不起。
另外,Brian Bushee是个表情很丰富的人,如果有人截图的话,估计可以弄一个QQ表情库了..
课程还有一部分内容讲师运用课上所教的知识点手把手指导你分析现实中的财务报表,不过这一部分我没怎么认真听,主要是觉得现在听反正也记不住,等以后自己搞投资炒股票的时候再认真看效果会更好

作业: 作业都是选择题,与其像是国内的考试是在刻意考验你,不如是帮助你巩固知识点,但并不是说这门课的作业很简单,认真做还是非常花时间的,这个时候最大的助手就是课件,在作业中遇到的几乎所有疑问(不包括完全零基础的人遇到的术语及相关概念)在课件中都有解答。

论坛:
论坛很活跃,讲师也很积极参与,另外,发现很多人都注册了Signature Track,估计沃顿商学院赚了不少吧? 遗憾的是由于时间关系,本人并没有太深入的参与这个社区。

总结:
能把会计这么无聊的一门课讲到这种程度确实不容易,讲师Brian Bushee在最后告别视频里说,大意就是:之前会计师协会的人对他说MOOC虽然很火,但是这把火是烧不到会计这门课,他想用实际行动证明他们错了。
我觉得他做到了,向他致敬!

超級現實的超現實理想主義者 评论了课程: The Hardware/Software Interface

2013-11-05 17:16

轮次:Apr 2013

背景:
因为是文科生,当时学的时候几乎是一张白纸,没有物理、电气工程、C语言、Linux等背景。 有过部分编程经验,有数理逻辑背景。因为背景欠缺比较厉害,学这门课的时候吃了不少苦头,不过最后还是以96.8%过了~
接触过或者熟练C语言、UNIX(Linux),并且学过数理逻辑(离散数学)的朋友基本可以胜任这门课程。

内容:
里面的内容还是比较贴合CSAPP的。
讲师有两位,都是胖胖的挺可爱的那种, 其中年长的那位来自意大利(居然没有口音),年轻的来自巴西。听年长的那位讲课不论是讲课语调还是声线都是一种享受,年轻的那位语速有点快(而且中间有一节课讲到后面感觉好像搞砸了,记得停了好一会儿,急得说不出话来,感觉挺可爱的)
两位老师其实讲得都挺好,不过不知道是授课水平的原因还是课程内容的原因,听年长的那位讲课的时候基本上没翻过书,听年轻的那位老师讲完课以后还得把书上相关内容看一遍

作业:
这门课最重头也就是它的作业了。这个是University of Washington同名课程的主页:
http://courses.cs.washington.edu/courses/cse351/
Coursera版和UW他们学校自己上课用的作业基本一致。
该课有普通的Homework以及5个Lab, 其中只有5个Lab算入评分(Homework很多题目直接来自CSAPP,而且答案很多书上就有)其中前三个Lab来自CMU(CSAPP中几个著名的试验)

Lab 1: Manipulating Bits Using C
作业的要求是用bitwise operator(位运算符)解决一系列问题,而且有字符数限制,要在一定字符范围内搞定。每一小题都像是填空题一样,但是很花时间和脑力,当时花了一整天的时间做完以后已经头昏眼花了...这也是这门课唯一需要用到一些逻辑学知识的地方,如果懂一些基本的数理逻辑,例如德摩根率(De Morgan's law)搞定这个Lab应该不成问题
后面还有一道关于pointer的题目,不过记忆中好像比较简单,印象不深了

Lab 2: Disassembling and Defusing a Binary Bomb
传说中的二进制炸弹。当时对于Command Line(Linux)基本上一窍不通,光凭着课程提供的cheat sheet凑代码,虽然做出来了,但是至今依然觉得匪夷所思...

Lab 3: Buffer Overflows?|?d??|?d?Segmentation fault: 11
传说中的缓冲区溢出攻击试验。同上一个Lab, 虽然做出来了,至今依然觉得匪夷所思...不过对于stack frame有了很好的理解

Lab 4: Cache Geometries
这个试验是让你用反向工程破解一个CPU的构造,如果课程内容好好理解的话应该没太大问题,当时论坛帮了我很多忙,有很多牛人在我对概念理解不清的时候给出了很好的解释。感觉这是5个Lab中难度最低的一个。

Lab 5: Writing a Dynamic Storage Allocator
这个试验要亲手实现两个函数:malloc和free。当时在这道题目上花了很多时间,甚至还把它提供的框架代码研究了一遍,现在想想其实没有太大必要。说一个小插曲,当时写出代码以后死活运行不对,于是带着极大的挫折感在QQ上向同时在上这门课的@wzyer 求助,他盯着我的代码没多久就找出了一个非常非常细小的bug,然后就运行成功了,不愧是大神!

社区:
这门课的社区对于我的帮助非常大,在学习的过程中遇到了各种问题很快就有各路牛人给出了很好的解答(因为问题问太多感觉都有点不太好意思了,于是发了很多匿名贴...)

感受:
收获非常大的一门课,回想起整个过程就常常觉得自己赚到了。

超級現實的超現實理想主義者 评论了课程: Algorithms: Design and Analysis, Part 1

2013-10-31 17:33

背景:
上这门课的之前从来没学过编程,编程是现学的,用的是这门课:https://www.coursera.org/course/programming1
这门课要求的数学背景其实不高,几乎没用到多少微积分的知识,线性代数也只提到过一点,而且也是很简单的矩阵乘法(介绍了Strassen Algorithm,但没有在作业和考试中体现), 需要一些概率论的知识,但最重要的是清楚数学证明的方法,尤其是反证法和数学归纳法。

内容:
课程内容很厚实,虽然讲师Tim Roughgarden的授课方式和课件都很粗旷,但是如果仔细研究他的授课就会发现他讲的东西非常精确,几乎没有疏漏,我是在几乎没看教材只听课件的情况下把这门课过掉的。
课程推荐了几本教材都很经典,包括国人熟知的《算法导论》(CLRS),这门课借鉴下列两本教材的比重比较大:
DPV - Dasgupta, Papadimitriou, and Vazirani, Algorithms
KT - Kleinberg and Tardos, Algorithm Design
其中DPV这本完全免费,在UC Berkeley网站上就有,写的非常通俗易懂而且只有300多页,极力推荐。这个是本书的官方地址:http://www.cs.berkeley.edu/~vazirani/algorithms/all.pdf

作业:
1.选择题难度不高,很多内容只要认真听课就能做出来。比较突出的是六道编程题。
2.编程题不限定语言,每道题目给你一个file的数据同时给你相应的要求,只要你符合题目的要求把这些file数据结果跑出来,把答案上交就行了。至于用什么语言,运行效率如何一概不论
3.期末考有一部分题目直接来自之前作业的选择题, 只要前面的作业认真做课认真听,通过是没什么问题的
4. 作业中印象最深的是第三周和第四周的编程题,第三周的题目是Minimum Cut, 第四周是Kosaraju's Strongly-Connected Component, 尤其是第四周,题目难不说,数据还给的很变态,好不容易花了三天时间写出一个正确的算法因为数据量太大(70M多)电脑直接跑崩了(我用Python),只好放弃。

社区:
论坛很活跃,有什么问题很快就能有人解答,最给力的是有很多活雷锋给出各种test,给我测试代码提供了不少帮助 。
顺便说一下,第二第三周的时候Jeff Dean乱入社区,还给我留了言(大神也上基础课啊)

感受:
这门课对我的影响非常大,直接改变了我的思维方式,并且为日后的学习打下了很好的基础。
据说有不少人因为他的语速和板书觉得这门课不好而放弃这门课,我的建议是:千万别!
Don't judge a book by its cover!
Tim的语速是有点快,但是发音和里面的内容都非常清晰,我的英语听力也是在这六周里突飞猛进的。(现在听MOOC已经习惯1.5倍速了)

超級現實的超現實理想主義者 评论了课程: Web Fundamentals

2013-09-14 10:12

HTML/CSS最大的特点就是得动手才能学会,这门课程提供了很好的体验。我也是零基础在学做网页,不过这门课仅仅是入门,想要真正能够建设一个网站还是前路漫漫...

超級現實的超現實理想主義者 评论了课程: Computer Networks

2013-09-14 09:45

内容覆盖非常全面的一门课,可以看出老师的用心。不过正如@wzyer 所说的:“提出问题-》解决方案-》应用实例” 的授课方式,这门课还是显得比较传统,虽然老师的授课水平不用质疑,但是交互体验还是有点欠缺,毕竟计算机网络是一门偏重工程的课程,如果在Link Layer以上的部分能够将一些概念通过现实中的工具进行演示效果可能会更好一点。可能老师也发现了这个问题,于是大家就看到了老师和他的家人为此作出的努力(看过视频大家就知道我在说什么了,哈哈)

另外值得称赞的是老师在课堂论坛社区里也很积极的与学员互动,常常能很快给出反馈

超級現實的超現實理想主義者 评论了课程: Functional Programming Principles in Scala

2013-08-08 17:29

上这门课的时候是今年3月份左右,那时候才刚刚学会一点编程就想直接挑战一下函数式编程。后果也很容易猜到:没有能力上完,但是这段经历给我留下了很深的印象。

整门课总共有5个Lab,我坚持到Lab3的第一题,到后面实在做不下去,于是放弃了。但是在做前面几个Lab的时候发现,原本一个指令式(imperative)语言,例如C或者Java需要十几行甚至更多才能解决的问题,函数式(functional)语言只需要短短几行。以往写代码可能是一边试验一边写(凑代码),而面对函数式编程,你可能需要对着电脑屏幕思索半天无法下手,但一旦下手几行就能解决问题,并且不容易出bug。

这就是这门课的老师,Scala语言的发明人Martin Odersky在课里反复强调的:抽象,抽象,尽可能的抽象。将你的方法尽可能的抽象,剩下的放心交给编译器或解释器解决,这就是函数式语言的基本思想。

看过Paul Graham的《黑客与画家》的朋友应该知道这个故事:Paul Graham在与朋友创业的时候用的是LISP语言,由于LISP的抽象性,导致开发速度非常高效。甚至竞争对手在新闻里提高过某个功能,他们就能在几天内迅速实现,以至于一段时间内没有人知道他们究竟是如何做到这样的。

这门Scala的课程借鉴了很多SICP(Structure and Interpretation of Computer Programs)的内容,熟悉SICP的朋友对于这门课应该会感觉很熟悉。

想要了解函数式编程的朋友不妨学一下这门课,或者Coursera上的另一门课程Programming Languages

超級現實的超現實理想主義者 评论了课程: Coding the Matrix: Linear Algebra through Computer Science Applications

2013-08-08 16:57

这门课上了一大半,八周的课程,做了前四周的作业,说一下感想:

感觉这门课最大的经历都花在讨好auto-grader和弄懂题目想要问什么上,总体上下来感觉并没有收获多少,并且老师的授课水平有待提高。虽然提到了很多东西,但是缺乏深入,甚至很多地方连为什么都没有讲到,只是泛泛而谈,例如Hamming Code等等。

这门课的定位现在回过头来看感觉很奇怪,如果是学习线性代数,这门课显然缺乏系统,很多地方我还得专门去khanacademy(可汗学院)查看;如果是想要学习Python,它又假定你已经熟悉Python;如果是想了解线性代数在实际上的应用,这一点至少从目前来看我比较失望。

如果想说对于这门课的对大收获,那就是Python的List Comprehensions(第一周的作业专门有大量的练习),对于我写出简短的代码很有帮助。

由于觉得收获不大,并且应付auto-grader占去过多时间,思考再三还是决定放弃这门课

超級現實的超現實理想主義者 评论了课程: Machine Learning

2013-06-17 11:04

非常基础的一门课,吴老师将大部分精力用在培养思维方式和直觉上,对于初学者来说是最佳的入门渠道。不过对于喜欢“Get hands dirty”的朋友来说可能会有点失望,因为他的作业框架代码给得太全了

超級現實的超現實理想主義者 评论了课程: The Hardware/Software Interface

2013-06-05 23:37

世界名著CSAPP的配套課程,內容不用多說。課程的精華在于他的五個Lab,直接出自CSAPP,對我這種菜鳥來說挺有挑戰性的。很享受這種從一籌莫展,無從下手到最後搞定的過程。同時也謝謝高人指點,幫我挖出自己不可能找到的“知識死角”

超級現實的超現實理想主義者 评论了课程: Introduction to Databases

2013-05-28 13:36

這門課後來從Coursera上搬到了斯坦福的Class2go上,當時特意買了Jeffery Ullman & Jennifer Widom的教材,後來發現也是基本用不上,Jennifer Widom的講解特別清晰。我比較喜歡Class2go的網頁編程題,對於我這種初學者挺花時間,但也很有收獲。課程的內容不僅包括了傳統的SQL,還有XML,JSON等,並附有相關練習。他們的論壇也很好,在上面問問題反饋非常及時。如果要說缺點的話,那就是Class2go的頁面佈局確實沒有Coursera好,感覺挺亂的。說一點小八卦,Jennifer Widom的丈夫在Coursera上也開課,就是斯坦福的那門Compiler

超級現實的超現實理想主義者 评论了课程: Learn to Program: The Fundamentals

2013-05-23 08:35

我的Python就是在这门课上学的,两位老师手把手教你。不过专门跟这门课感觉没有必要,把视频下载下来当reference就足够了

超級現實的超現實理想主義者 评论了课程: Algorithms: Design and Analysis, Part 1

2013-05-14 23:11

講師是斯坦福副教授。之前為了這門課買了很多書,到後面發現一本也用不到。老師語速極快,但是說話的內容異常準確,學習的過程中一旦發現有模糊的點,都能在他的隻言片語中找到解答。這也是我個人的第一門CS課程,在做第一周的作業的過程中掌握了python,寫的第一段代碼就是merge-sort(split inversion)。作為一個純文科生,如果沒有這個平台我想是不可能有機會完成這樣的跨越,所以這門課對於我來說意義非凡。如果要說缺點的話,就是太難了,掉了不少頭髮。。。

更多评论

超級現實的超現實理想主義者 关注的课程

Algorithms: Design and Analysis, Part 1 (CourseraArchive) 5 个评论 关注

开始时间: 04/22/2022 持续时间: 6 weeks

主页: https://www.coursera.org/course/algo

简介: In this course you will learn several fundamental principles of algorithm design: divide-and-conquer methods, graph algorithms, practical data structures (heaps, hash tables, search trees), randomized algorithms, and more.

Algorithms: Design and Analysis, Part 2 (CourseraArchive) 4 个评论 关注

开始时间: 04/22/2022 持续时间: 6 weeks

主页: https://www.coursera.org/course/algo2

简介: In this course you will learn several fundamental principles of advanced algorithm design: greedy algorithms and applications; dynamic programming and applications; NP-completeness and what it means for the algorithm designer; the design and analysis of heuristics; and more.

Gamification (CourseraArchive) 4 个评论 关注

开始时间: 04/22/2022 持续时间: Unknown

主页: https://www.coursera.org/course/gamification

简介: Gamification is the application of game elements and digital game design techniques to non-game problems, such as business and social impact challenges. This course will teach you the mechanisms of gamification, why it has such tremendous potential, and how to use it effectively.

Machine Learning (CourseraArchive) 29 个评论 关注

开始时间: 04/22/2022 持续时间: Unknown

主页: https://www.coursera.org/course/ml

简介: Learn about the most effective machine learning techniques, and gain practice implementing them and getting them to work for yourself.

Startup Engineering (CourseraArchive) 2 个评论 关注

开始时间: 04/22/2022 持续时间: 12 weeks

主页: https://www.coursera.org/course/startup

简介: Learn the engineering skills needed to build a technology startup from the ground up.

Analytic Combinatorics, Part I (CourseraArchive) 0 个评论 关注

开始时间: 04/22/2022 持续时间: 5 weeks

主页: https://www.coursera.org/course/introACpartI

简介: This course teaches a calculus that enables precise quantitative predictions of large combinatorial structures. Part I covers generating functions and real asymptotics and then introduces the symbolic method in the context of applications in the analysis of algorithms and basic structures such as permutations, trees, strings, words, and mappings.

Natural Language Processing (CourseraArchive) 7 个评论 关注

开始时间: 04/22/2022 持续时间: 10 weeks

主页: https://www.coursera.org/course/nlangp

简介: Have you ever wondered how to build a system that automatically translates between languages? Or a system that can understand natural language instructions from a human? This class will cover the fundamentals of mathematical and computational models of language, and the application of these models to key problems in natural language processing.

An Introduction to Financial Accounting (CourseraArchive) 2 个评论 关注

开始时间: 04/22/2022 持续时间: 10 weeks

主页: https://www.coursera.org/course/accounting

简介: This course will improve your fluency in financial accounting, the language of business. You will learn how to read, understand, and analyze most of the information provided by companies in their financial statements. These skills will help you make more informed decisions using financial information.

Discrete Optimization (CourseraArchive) 3 个评论 关注

开始时间: 04/22/2022 持续时间: 9 weeks

主页: https://www.coursera.org/course/optimization

简介: Tired of solving Sudokus by hand? This class teaches you how to solve complex search problems with discrete optimization, including constraint programming, local search, and mixed-integer programming.

Programming Languages (CourseraArchive) 5 个评论 关注

开始时间: 04/22/2022 持续时间: Unknown

主页: https://www.coursera.org/course/proglang

简介: Investigate the basic concepts behind programming languages, with a strong emphasis on the techniques and benefits of functional programming. Use the programming languages ML, Racket, and Ruby in ways that will teach you how the pieces of a language fit together to create more than the sum of the parts. Gain new software skills and the concepts needed to learn new languages on your own.

更多课程