MOOC《数据科学》学习体验

约翰霍普金斯大学在Coursera开设的专项课程《数据科学》(Data Science),或许是最火爆赚钱的MOOC课程了(参见2015-02-11:【快报】Coursera数据科学专项课程已经赚了350万美元!)。
课程共有9门课,每课4周时长,每月开班,免费或$29;全部9门课完成后还有毕业项目,8周时长,每年开设3次,交专项课程费用后参加($290,全部9门+毕业项目)。
课程清单(目前前4门课已有中文字幕)
1 数据科学家的工具箱
2 R语言程序开发
3 获取和整理数据
4 探索性数据分析
5 可重复性研究
6 统计推断
7 回归模型
8 实用机器学习
9 数据产品开发
数据课程毕业项目

借用某书的命名方法,此课程可称之为《数据科学及其R实现》:以R及其周边应用为工具,分专题讲述“数据科学”的整个流程。
这是入门级课程,对于有编程基础的非IT人员也适用。事实上3位教师都是生物统计专业的,应该是以R为工具做统计分析、机器学习、可视化展示等等。从科学研究的“可重复性”角度,教师比较偏爱非图形界面(命令行)的工具。

今年春节后,用4个月时间完成了9门课,很辛苦,但也很有收获,了解了数据科学的基本方法与理念,学习了R语言及若干工具。
作为一个在DOS时代学过编程的人,对命令行界面倒也不陌生。但作为一个统计学盲,全英文学课程中大量的统计知识实在抓狂,只能借一堆中文书自学,才算混将过去。最终能坚持下来,也说明课程还不是那么难。当然从同学互批作业看,也有同学隔几个月重修,结果还是不如人意。
最后,实际感受:学是学完了,但要能自主使用,还有相当长的路要走。
昨日自己结束了全部课程,虽然本月修的最后二门课的成绩要下周才会出来,通过应该没有悬念。在此分享本课程体验如下。

一、选课
9门课程间有依赖关系(Coursera Johns Hopkins Specialization in Data Science course dependency information),通常按顺序选没有问题。但如果同时选多门课,特别需要注意第7门“回归模型”以第6门“统计推断”为先修知识,如果没有统计基础,两门课不宜同一时间段选。

二、时间安排
有些MOOC课程是完全自主安排时间的。本系列则是在课程开始时一次性发布所有课程资料,按周设定测验与作业的提交截止时间。
除第1门入门课外,其他每周课时标明为4-9小时或7-9小时。如此看一周多选几门课似乎问题不大,实际还要考虑更多情况:
1、学习时间,依赖于学习者的原有基础。有几门课大量涉及统计学知识,没有相应基础的话,需要时间就会大大增加。如我这样的统计学白痴,借了好几本中文书看,才勉强跟上,需要付出大量额外时间。另外R语言本身,单靠听课对于完成作业也是远远不够的。
2、作业时间。除每周正常学习、测验(Quiz)外,每门课还会有一到二次课程项目(作业),单完成作业就可能需要数小时。课程作业通常在第三周(有一门课竟然第一周就有作业),同时修几门课,时间叠加起来就比较难应付了。又由于R本身作为开源软件、使用各色人等制作的安装包(package),提示出错找原因、解决也需要额外时间。某次作业因读入文件数据不完整导致出不了正确结果,各种折腾,最后才弄明白应当如何正确解决因中文环境所致的问题。
3、作业提交时间(天朝特有的网络问题)。作业以提交到Amazon AWS和GitHub居多,一个点击即可完成上传,对我们来说却是一定要预留足够时间的。本人最悲摧的一次,前晚同步不到GitHub,原本依常规次日一早推几次就行的,却不料直到当天下午2点才最终成功。如果不是提早一天完成了作业,截止期限早就过了,20-40%的分数没了,这门课就只有重修了。【70分通过,90分优秀】

三、学习过程
1、听课和自学
看视频、PPT是主要学习方式,PPT会提供大量参考资料,包括维基百科(对文科教师是不可思议的了)。在测验、作业中会遇到老师根本就没讲过的内容,需要搜索、自学。更有一门课我完全听不懂,正好除了通常的PPT外还提供有教材,于是完全不看视频直接自学教材+中文图书。
课程推荐RStudio中的swirl包确实是交互学习的好工具,多门课程有对应的学习包,载入学习后还可加分,真可谓一举两得。
2、课程论坛(Forum)
遇到R代码运行出错或者不明白的问题,实际感受是搜索引擎多半不如课程论坛。课程论坛针对性强,更有助教(Community TA)及时跟进解决问题,不会出现无助的情况。应该说Coursera或本系列课程在此点上做得相当好。
3、每周测验(Quiz)
最终成绩约60%来自测验。测验通常是选择题。本系列都允许做三次,取成绩最好的一次。有时候,再做时供选择的答案会改变,结果正确选项几乎是昭然若揭——外国老师永远不明白,对于深谙考试规则的中国学生,这根本就是在送分。
4、作业的互评与自评(Peer-evaluate & Self-evaluate)
最终成绩约40%来自课程作业。作业基本上由同学互评(评4位,未完成扣20%)。真是很好的学习机会,尤其对我这样比较初级的学习者,总是能够发现做得很好的作业,以及老师课上没有讲过的知识点。
有一门课有自评。在评过同学作业后再重温自己作业,对自己的评分自然会更客观。
5、英语
前几门课有中文字幕,好像到第4门课后面部分就没有了。希望有中文字幕的越来越多,这样对授课内容的理解会更好。
不过单是字幕解决不了所有问题,因为作业还是要用英语写的,另外论坛提问自然也是用英语。更有同学互评时,还有可能要求写10个甚至50个词的评语。
好消息是需要自己写的文字不多,作业内容中代码与作图为多。并且评分时,也不会因为语言原因而降低得分。

四、墙
无所不在的墙,不知道浪费了我们多少宝贵时光。除前述上传作业的情况外,还有更简单的:太长的链接老师会给个短网址,goo.gl的,不先找个还原网站就不知道访问哪里。
并且,课程中涉及的一些内容无法正常实现。比如GoogleViz,比如交互图形rChart中嵌入的Google代码,……。当然课程中老师们都很贴心地提供有替代选项,虽然功能不尽相同,但不至于因此完不成课程。

附本人课程项目3个
机器学习:由运动数据推测运动方式
说明:
1、用Knitr由R Markdown文件生成的HTML5文件,带R代码运行结果
2、文首没有摘要,完全忘了“可重复性研究”课程作业强调的格式
3、最佳模型应该是随机森林,只因数据量较大、预测变量太多,电脑竟然拖不动、N久出不了结果,无奈以70%准确率的lda模型交差
照猫画虎的小应用,图个热闹
说明:
1、使用shiny做的app
2、评估同学作业后学到不少,界面做了更新,主要是分页、加了简介
– 介绍前述shiny应用功能与用法的PPT
说明:
1、用RStudio Presentation生成,5页HTML5幻灯片,使用默认模板(比较丑)、只改了页面切换方式
2、末页图片由R代码直接生成

MOOC初感受

新年终于注册了Coursera,准备参加半年前就计划学习的课程:密歇根大学的“人人都懂的编程课(Python)”(Programming for Everybody (Python))。11周课程,刚学完了2周,以此课程总结一下对MOOC的观感(无疑是很片面的)。

1、每周课程
(1)课程视频(Video Lectures):每周视频数量不等,短的10分钟左右、长的20分钟左右,每周课程视频时长合计不到1小时。视频中有时会弹出窗口,提示看外部链接的内容等。[补充:ppt更像板书,充分利用不同颜色字符,表示不同类别语句、变量、符号等,辅以演示笔,演示解说很清晰]
(2)作业(Assignment):本课程是编程,采用外部的自动评分应用(autograder),每周1-2次。
(3)测验(Quiz):每周课程结束做,选择题,即时见结果;测验可反复做100次,保留最好的结果。测验时提示签名确认诚信(独立完成、不泄题等),供勾选。
(4)附加内容(Bonus):每周结束一次,内容为业界人物访谈。
本课程注明每周学习时间2-4小时。由于程度较浅,有编程基础者基本不需要反复看课程视频,加上作业、测试,2小时应该可以完成。
所有视频均可下载,有独立字幕文件(subtitle),听不懂有救了。有的还有配套PPT等。另外在iTunes中有Podcast。
视频在网易上,看起来很流畅,但链接的YouTube、Google Docs之类……

2、教材
本课程所用教材设有专门网站:Python for Informatics: Exploring Information。提供多种文件格式免费下载(HTML, PDF, EPUB, MOBI, iBooks;也提供购买纸书链接(9.99美元)。

3、时间安排
课程时间安排比较宽松。本次课程第1周2月2日开始,周测验截止期为11日[后又推迟到18日,但作业仍为10日截止],共有10天;第2周安排上应该2月9日(星期一)开始,实际5日(前一个星期四)就上线了[论坛上社区助教说是为了让学生可以在周末学习],测验截止期为18日,共有2周。这样即使有一小段时间没空,也可前后错开时间听课并完成作业和测验。
为鼓励错过作业与测验的同学,在课程最后还会提供一小段时间供补做。

4、评分
课程分数由平时作业(Assignment,每次完成即得10分)、每周测验(Quiz,满分10分)和期末考试(Final Exam,满分20分)合计,达到75%即通过(Statement of Accomplishment),要得到证书(Certificate)须达到90%。
另外还有途径取得加分(extra credit),此安排有助提高课程的通过率。本课程中安装Python作为可选要求,如完成后上传截屏文件,并按要求给2-5位同学上传的截屏打分,最高可获得10分,相当于一次作业。

5、互动与参与
老外讲课肢体语言比较丰富,也比较随便,看视频感觉不那么单调。此外还有其他互动安排,弥补远程课程的不足:
(1)讨论(Discussion Forums):课程视频下有链接,观看过程中可随时点击前往论坛提问或参与讨论。论坛很热闹,同学老师都会提供解答。看到招聘老师,就是参与讨论、给某些作业打分的吧。
(2)资源wiki:学生共同维护的课程相关资源(不知为何登录认证失败,未见真相)。
(3)同学互评(Peer Grade):见“4、评分”之加分。同学打分占6分,另4分由老师评分。同学互评除了打分,还可写点评(comments)。评分提示:一般有小错也给满分(6分),评论应当善意、有帮助,乱评会有处罚等。
本课程大概参加者不少,因而互评速度很快——我上传文件后刚给一位同学评完分,一刷新就看到4位同学给我评了分,其中一位还给了指点。
给他人评分也是一种学习,看到其他人比自己完成得好,有助于自己提高。
(4)师生见面(Office Hours):每周一次,老师每次到不同城市,有视频附在课程中,可增加学习气氛。[update 2015-3-1 不是每周都有。另:有一次课开始时展示教学楼、经常上课的教室等,既是学校广告,也同样增加学习气氛]
(5)另外还有Facebook小组之类的就不说了。
[updae 2015-2-13](6)课程开始前有一个自愿参加的人口统计学调查,了解听课者的姓名、年龄、出生地、居住地、语言(是否西班牙/拉美)、种族、学历、是否在校生、所学专业、工作状况、工作行业、英语水平(写、读、说)、英语之外所说语言(中文有普通话、广东话、吴语)。

6、平台
除了用电脑,还可以用手机完成课程。
适应不同浏览器,既有flash版,也有HTML5版,也可手动切换版本。

7、证书
课程免费,要获得认证电子证书(Certificate),除交费外,还需参加签名追踪(signature track),以保证课程确实为本人完成。
要求电脑带摄像头、使用物理键盘:
(1)记录您的打字习惯:您的打字习惯是独一无二的—就像指纹一样。
(2)给自己照张像:微笑!用您的摄像头自拍一张照片。
(3)给您的身份证拍一张照片:使用摄像头对您的 带照片的身份证明。
(4)确认您的身份:在提交作业时提供相符的打字样本和照片。
认证基于数据分析,感觉很有意思,曾想花49美元给自己弄张证书。没开始前怕听不懂、完不成,想先学了再说;开始学了,口语确实听不太懂,但实在是非常浅的入门课,看视频,听不懂也不影响一天内学完两周课程,就放弃了。留着给更有挑战性的课程吧。

[update 2015-11-2] 课程费用已涨至59美元,并推出4门课+毕业项目(79美元)的专项课程(合计315美元/一次性支付减10%)——看着专项课程赚钱,都来了!

学网站制作,上W3学校

远洋师在书社会推荐W3Schools,说XML很容易学。不意在家访问w3school.com这个纯IT学习网站竟然要翻墙,架上梯子看一眼,加入收藏的一瞬,想到自己很久没有正儿八经地学新东西了,下次再打开这个网站又不知何时。那天正是周五晚,周末后还有中秋假,于是下决心在接下来的三天中学会XML。
说干就干,马上开始学。开篇说很容易学,翻到下一页,说学前要先了解HTML和Javascript。HTML略有所知,于是转到JavaScript去看个究竟。也说很容易学,翻到下一页,说要先了解HTML和CSS。于是转到CSS页面去看,翻到下一页,说需要先了解HTML/XHTML。前期知识一串串的,崩溃。
虽然书社会多位网友都说不必学那些前期知识的,但因为自己并没有系统学过HTML,也没有制作过什么网页,绝大多数HTML知识是通过看页面原代码得来的,因此决定从头学一遍。当晚从HTML/XHTML开始,接着是CSS(部分)、JavaScript,整整两天完成准备知识(其中外出FB一次)。第3天晚上开始学XML,到第4天下午完成,说出的大话终于不用收回。晚上外出散步,走着走着,满天厚厚的云层突然一扫而光,中秋日皓月当空。

不得不说,W3学校真是很棒的学习网站:
√ 每页一个知识点,只提供最基础的信息,让初学者不至于陷入过多新知而失去学习的信心。完整的参考附在最后,可供扩展学习。
√ 可以边学边看到实例及实现效果,还可以自己编辑例子后看显示结果,互动感很强。
√ 告知标准的最新进展,免得用过时内容(比如<font>标签到HTML4不推荐,Frames框架未来将不支持)。
√ 课程开始前告知准备知识,学完课程后告知接下来还可以学什么,让人目标清晰而不至迷失(五方面课程:HTML/CSS,XML语言,浏览器脚本、服务器脚本、多媒体)。
√ 课程结束后有一个自测,20道题、满分100,答题不限时,会让学习者特有成就感。
──如此速成,学完后自然不可能马上做出好网站,但看网页眼光会毒不少,也知道某些功能可以如何实现了。
[update 2011-10-15:
1、目前已不用架梯可访问;
2、网站的中文站目前有HTML部分]

附记:关于XML学习
XML课程中提到要更深入地了解某些方面,分别需要学习DTD、XML Schema、XSLT和XML DOM,准备留着今后哪天再下决心。远洋师认为可以直接去看MARCXML的schema或者VRA Core 4来学XML Schema。MARCXML的schema是看过的,当时没啥感觉──这次学完XML也还没啥感觉,准备学完XML Schema再去看那两个Schema实例。我想对菜鸟来说,还是从基础知识学起比较好。
接受远洋师建议,未来准备跳过DTD和XML DOM,但XSLT还是想学一下。自当年在数图研讨班(JASDL)上听秦健老师讲样式表的那些很酷的应用实例,一直念念不望的──念了这么些年还没有些许行动,对自己也无语了。