2013年下半学期MOOC总结:编程基础和推荐系统

一门需要努力的课程搭配一门水课,似乎是我在不放弃追美剧的前提下,每学期能兼顾的最大额度了。

Learn to Program: The Fundamentals
对于计算机专业的孩纸来说,很明显这是门水课。当初选这门的动机是想认真地从头学一下python,算是顺利达成目标,只是内容有些浅,而且老师们完全无意重开高一阶的课程,只是说有兴趣的可以去看以前的课程,这个有点儿遗憾。
两个老师语速都偏慢,讲解细致,又有可视化工具Python Visualizer用于详细了解程序具体执行步骤,可以说是零基础学习python编程的最佳选择。普通高中生学这门课应该都没有压力。课程中的Quiz、作业以及考试都中规中矩的,没什么特别惊喜。

编程基础SOA证书

Introduction to Recommender Systems
理论上这门课的内容应该算是我熟悉的领域,但还是消耗掉了大量时间,当然收获也不小。
明尼苏达大学是最早开始推荐系统研究的几所学校之一。还有那个鼎鼎大名的数据集Movielens也是出自这里,实际上课程所有编程作业的数据集也是取自于Movielens系统,只不过这次用户和评分来源于上课的学生在第一次课后的打分。

  • 内容:课程从概述、非个性化推荐、基于用户的推荐、评估、基于物品的推荐、降维等几个方面进行讲解。整个课程总共14周,平均到每个部分也就只有2周的时间,虽然课程视频非常多,但是每部分也只能做到了解基本概念和最常用的算法,更多细节和深入研究就只能靠大家课余自修了。关于推荐系统那些需要翻故纸堆的历史、发展脉络和基本概念老师可是讲得非常清楚呢,对于想补上基本概念这块的孩纸是值得一听的。这门课比较有意思的地方是课程中的那些interview,可以说推荐系统方面方向活跃的知名人物都有请到,虽然由于时间关系以及谈论的内容要与当时课程刚讲过的相关,所以访谈的内容比较浅,很多只是蜻蜓点水,但还是非常难得,里面有许多可以深入思考的点。由于课程过程中,恰逢ACM recsys会议在香港召开,专门有一次视频是老师讲了他们筹备第一次recsys会议的事情,以及请这次去参会的同学谈收获。有兴趣了解那次会议内容的也可以看看豆瓣阿稳同学写的论文导读( http://www.wentrue.net/blog/?p=1557 )。事实上,recsys课程是秋季开课,如果下次依旧会做网络公开课的话,课程进行中还是会遭遇在加州召开的下一届recsys。大家总是能从这个课程中听到一些recsys最新的发展动态
  • 视频:长啊好长啊,时常出现40分钟甚至1个小时的视频,尤其以评估那部分为最,真的是看得累死我了。两个老师语速都不快,也没有奇怪的口音,赶时间或者着急的同学可以把视频播放速度调到1.25倍甚至1.5倍,即便这样还是会比那些语速快的老师慢,但是调再快我觉得会出现变调的问题,听着不舒服。视频部分如果说有什么不满,就是每次课后问答的视频,总是听不清提问的学生问的问题,每次都是听着老师的回答再猜问题。要是能听清问题,自己先思考一下答案会更好。
  • 作业:分为编程和论述题,中间因为大家对peer view意见好大,也出过一次选择题。不过从我看到成绩来说,那次选择题是大家writing assignment的最低分,呵呵,这是不作不会死的节奏吗?!
    • 编程题,由于两个讲师中的Michael D Ekstrand是lenskit的开发者,所以编程作业和很多关于编程部分的讲述都是基于lenskit的。唉,以难用著称的lenskit啊~虽然最终都是上传结果,不用框架自己用python或者R什么的也可以完成作业。但是还是会觉得不爽啊,有讲lenskit使用的时间多讲些算法方面的细节多好。在老师谈及是否会再次开课中,说要看Michael的时间,其实我到觉得换个可以让大家自己编写算法的老师,对后面同学其实是件好事。恩,我是框架的anti粉,所以这事就不辩论了。我看过的那篇很腹黑的关于recsys各个开源软件评价的blog找不到了,放个CSDN上的温和评价版吧–推荐系统开源软件列表汇总和点评。( http://blog.csdn.net/cserchen/article/details/14231153 )

推荐系统开源软件列表

    • 写作题,这部分题主要是从决策者和架构师的角度来描述、设计推荐系统。在论坛上被很多同学所诟病的peer review指的就是这部分。其实我个人还蛮喜欢peer review的,当然给别人打分数是一件挠头的事情,自己得到的分数和自己预期的会不一样。但是其实也没有差那么多,每次writing assignment在总成绩中占6分,的确有我预期自己的分数应该大于5,最终分数就是5分的时候;但也有我以为自己只能拿到5分多点,实际却拿到6分的惊喜状况出现。何况对课件学习多上一些心,在两次exam中弥补那1分的偏差是非常容易的事情。peer review还意味着你会看到其他人的设计、分析,看到其他人是如何分析问题的,时间允许的情况下,每次review的时候我都会尽量多看几份。大家的作业都写的很认真,有些想法和设计也很有新意。而且老师事先写的评分指南,实际也是我们在设计系统时,应如何循序渐渐逐渐深入思考问题的指南。
    • 除了算分数的两部分作业,我特别要赞一下的是视频中的Quiz(直接下载视频看的同学就看不到这部分了)。Quiz题目出得很好,都是对前面讲的那部分的总结,或者容易辨识不清的知识点,也是两次考试的热身,考试也是同样形式的选择题。当然考试的题目和Quiz是绝对不会重复的,热爱题海战术的孩纸就不要想了。
  • 评分系统:总分100分,由编程题、写作题和两次考试组成。可以拿到SOA证书的条件是总分大于50分。课程分为所有作业都做的Programming Track和只做写作作业的Concepts Track。其中参加Concepts Track的同学,能拿到的满分是64分,在这种情况下,如果想拿到证书的话,对考试就一定要认真对待了,不要错得太离谱,考试的内容包括授课内容和访谈。看了几个得49,49.5分没有拿到证书的孩纸在论坛哭诉的帖子,被诟病的peer review的得分都不低,但是两次exam的分数就。。。

恩,最后说一下这门课适合的人群,理工科的大学生上着应该都没问题,包括经管类的同学。即使只上Concepts Track,只要仔细听课,拿到证书应该也没问题的。老师讲解很细致,经常是一个概念点,先描述,后举例,然后再和其他类似概念进行对比。课堂上讲了大量现实生活中推荐系统应用实例,对于只是想了解一下“推荐系统”这个流行词究竟是什么的孩纸也同样适合哦。说到底,推荐系统只是一个在互联网上被大量运用的应用,因为有一定的自身特性,被人单独拿出来大书特书。对于想了解更多算法、优化之类细节的,我建议还是去选机器学习或者数据挖掘方向更专一些的课程。这门课程里介绍到的算法,只是相对普适、被广泛证明有效、特别出名的,且以了解该算法是什么为主要目的。和其他第一次开课的课程一样,课件里有各种typo错误,不过相对来说算是出错比较少的一门,老师在论坛里回复也很及时,课件编排、作业和考试的设计都十分用心,总体来说这是一门值得推荐的特定专业方向的入门级课程。
最后贴一下 @MrDeadline 备份的课件  ( http://pan.baidu.com/s/1sjGrV2l )  给有兴趣的同学,即使再次开课也是2014年秋季,没有这么快会听到消息啦。

推荐系统SOA证书ps. 题外话,这次课程的各种统计分析也被老师们写成论文” Teaching Recommender Systems at Large Scale: Evaluation and Lessons Learned from a Hybrid MOOC” 将于2014年3月美国亚特兰大召开的ACM Learning @ Scale会议上发表。

pps. 用于抓取coursera课程视频和ppt的工具:
https://github.com/siddharthasahu/coursera-downloader
https://github.com/coursera-dl/coursera

分享到: 更多

Leave a Reply