WALL-E

我的经历,感受和想法

Coursera上学记

其实很早之前就听说过MOOC这个概念以及Coursera这个东西。稍微有点印象的是听appcell大神在Coursera上面刷课,然后又见到Cee有一次用平板给我秀他上的课,不过一直没多考虑。大约不到一年前的某一天,不知道怎么回事突然想起来Coursera这个东西,就上去看了看,从此走上了不归路……

关于MOOC和Coursera就不介绍了,类似Coursera的平台还有很多,不过目前我上的课都是Coursera上的,只是习惯了。很感谢Coursera,通过它我了解了太多平时没有机会接触的知识。我现在有些后悔没有更早地关注这个平台。至于学了这些有什么用,恐怕目前看用处不是太大,但我的确已经多多少少用到了里面的东西,尤其是CS的几门课。

知乎上有一个问题:Coursera 上有哪些课程值得推荐?我也先列一下自己觉得值得推荐的课(或专项课程):

下面按时间序说一下我上过和正在上的课程。

首先是The Data Scientist’s Toolbox,R Programming和The Music of the Beatles。前两门课是挺简单的,不过毕竟入门课嘛。这两门课有互评作业。The Music of the Beatles说实话,上了几节课之后感觉没什么意思了,毕竟主要是讲历史,而罗切斯特大学似乎在版权问题上非常谨慎,整门课没有放过一秒钟的音乐,包括分析曲目的地方,可想而知是什么感觉。尽管说自己很容易网上找到这些资源,但毕竟这样很不方便,效果也不如真是课堂上那么好。论坛上有人发表过和我类似的观点,结果是别大家狠狠地投了负分票,也真是有点呵呵。没错,老师很用心地准备了这门课,但听起来确实很没意思不是吗?

然后是Machine Learning和Model Thinking两门课。这两门课可以算是Coursera上最有名的课程了,不过我不是很喜欢。Machine Learning涵盖的内容很全,但我感觉好像是为那种高中毕业或者大一的同学准备的,我上这门课的感觉就是老师讲得太慢,明明很简单的东西老师要说上好几分钟。课程中Andrew Ng大力推广Octave这个软件,说得不好听点实际上就是开源的山寨MATLAB的软件,在语法上几乎和MATLAB完全一样。作业和编程作业里面有些地方很没意思,基本上就是考察一些基本的语法是否掌握,何必呢?在运用中掌握语法不是很好吗?我现在很希望当时可以选择其它的课堂更加精炼、作业更有意思和挑战性的机器学习课程。Model Thinking里面包含了很多经济学等学科中使用的模型,知识点比较碎,而且讲得非常基础,也就是了解一下就完事了,作业和考试很简单。

之后上了东京大学的Welcome to Game Theory。这门课是相当基础的,讲的都是博弈论里面最基本的一些概念,时间只有4个星期,内容相当少。看样子是第一次开课,作业里面有过好几次错误,不过我都没看出来,真是很佩服一些在论坛里面发言的同学。这门课想拿高分甚至拿满分都不难。

寒假和后面一段时间上了Programming Mobile Applications for Android Handheld Systems的两个部分。课件写得很明白,上课简直完全是按照同一个模板在走,不过算不上无聊。编程作业还算有意思,并不简单,需要想各种办法去实现,对于没有Android编程经验、对SDK还不够熟悉的的人还是有点挑战的。这个系列前面两个是Maryland的老师,后来几门包括concurrency、communication等课都是Vaderbuilt的老师上,我看了一眼课件,全是字,就没有心情上了,这个系列后来的课程也就都没上……

后来上了UIUC的Microeconomics Principles。这门课还是很有意思的,不过我一直没跟上,后来在截止日期前花了一个周末把所有视频和作业做了。。。没有进度的课就会是这个后果,简直。。。视频里面插入了一些采访和真实课堂的视频,两次真实课堂的视频真是让我印象非常深刻,第一次是说明“交易产生价值”,第二次大概是说明“劳动力的增加而导致的产量的增加是有限度的”,我觉得看过那两个视频的简直永远都没法忘掉这两个结论。每周的作业不算难,都是对概念的辨析,但我学得并不仔细所以做得也不是很好。

我在EPFL的Digital Signal Processing这门课上花了不少精力。这门课本身内容比较多,基本上是讲完了他们的一本书,作业也比较难。课上讲的难度还行,等到看到作业直接就傻了。这门课刚开始的时候感觉还行,到了后来几乎是跪着完成这门课的,最终得分只有70多一些。如果没有学过这方面的课程,想挑战一下自己,完全可以试试上这门课。对了,这门课的课件做得很不错。

接下来上了Maryland的网络安全系列课程,包括Cryptography,Software Security和Hardware Security。Usable Security还没开课。这几门当中算是Cryptography最难,Hardware Security最简单了。Cryptography的编程作业比较有挑战性,会走不少弯路,需要花不少时间;Software Security讲得很清晰,实验作业也很有意思,很好玩;Hardware Security基本都是理论,听听课做作业差不多了。上完这几门课后我发现很喜欢Maryland这个学校(尽管申请他们学校被拒了),包括前面两门Android课程在内,这个学校做的课件都非常简洁、清晰(Hardware Security的那个中国老师相对差一些),老师讲课也非常清楚,课后作业也设计得很好,要是什么时候大陆的这些大学都能做到他们一半那么好就非常不错了。

贴一张Software Security的课件:

后来上了Fundamentals of Digital Image and Video Processing这门课。这门课涵盖的内容也很全,只是有点可惜,课后作业留得太少、太简单,恐怕只涵盖了课堂中不到15%的内容,编程作业的要求也很低。虽然说这门课是Fundamentals,但我很希望这门课能多一些有挑战性的作业来帮助更好地理解课堂中的内容。老师有口音且语速慢。

Exploring Quantum Physics这门课也是Maryland的,不过和前面几门CS课的风格不太一样。这门课有好几位老师,和国内外正常的量子力学课程都不太一样,不知道他们学校自己物理系是不是就是这样的。老师还是很注重推导的,另外作业里面重视学生自己通过读文献、查资料来解决问题。作业也稍有难度。本来是打算用这门课过一遍量子力学复习一下的,结果顺便接触到了不少新的东西。

我现在在上Stanford和Princeton的算法课,不过我恐怕没法完成了。Stanford的课要比Princeton简单很多。Princeton的课真的是非常用心,课件做得很漂亮,作业设计得也很好,编程作业练习让人有一种好像真正在大公司里面干活的那种感觉。我要是什么时候把这两门课完成了再回来说吧。此外,正在上Introduction to Finance,印度人说话慢还有口音,手还到处乱动,真是尼玛……课上讲的都是基础概念和基础的例子,但是作业都是“综合题”,需要仔细分析,还是比较难的。

顺便再说一下另外两门课,Stanford的Cryptography和Yale的Introduction to Classical Music。Cryptography要比Maryland的课量大,难度也大一些,我当时比较忙不够后来就放弃了;Introduction to Classical Music真的是非常好的课,感觉可以完爆南大某老师好几条街,那门课量比较大当时也比较忙,所以就把视频下载下来了没有做作业完成课程。

此外,还有Social Psychology,Think Again: How to Reason and Argue,General Game Playing等几门课听说都不错,我也看了一下但没时间仔细看,如果有机会再回来写一写吧。