coursera免费课程中国上有哪些值得学习的Python,数据分析的课程

41,864被浏览834,007分享邀请回答coursera.org/course/intrologic 逻辑学入门逻辑学是人类历史中最古老的学问之一,这门来自斯坦福大学的《逻辑学导论》内容覆盖比较全面,重点突出,数据分析和挖掘中,用到了不少逻辑方面的知识,算是一门理论型课程,对训练思维应该有帮助!娱乐 游戏化 吉他入门由鸟叔、王力宏等知名明星的母校——伯克利音乐学院开设,课程将会教授你如何弹奏非电音和电音吉他 摄影艺术健康 斯坦福 食物和健康挺有名的斯坦福课程 ( 置顶课程)市场,经济,金融 市场营销导论沃顿商学院的入门课,按学员说法“课程内容很丰富,知识量比第二天的大姨妈量还大。考试则比较简单,会给你学习MOOC的信心的” from Yale耶鲁大学教授Robert Shiller是2013年诺贝尔经济学奖获得者,当代行为经济学的主要创始人,全世界影响力前100的经济学家之一 from Columbia哥伦比亚大学教授Perry Mehrling是货币银行学、金融理论与政策、金融史等领域的权威人物,他最著名的著作是《新伦巴底街-美联储如何成为了最后交易商 from Columbia货币银行学+宏观经济学+银行会计学的综合体 from GIT前边介绍一些基本的市场理论,后边都是编程问题 from UWU of Washington的经济学教授授课 from Wharton非常棒的会计学入门课程 from MichiganGautam老师上课的时候,神情语调完完全全展现他对finance的热爱,他觉得这辈子最美好的事物之一就是认识了finance的学问,并且真的帮助他在生命中做出很好的决策 from UCI 微观经济原理这门课程系统地介绍了微观经济学,对于一个原来对微观经济学的同学是一个很不错的入门课程。 学堂在线精品课程创业创新 from Stanford教创业中遇到的技术和工具,请到了一些airbnb,square等创业公司的工程师讲发展过程中技术选型和进化 from Virginia领导的号召力从何而来?一个优秀的领导应当让团队中的每一个人都能发挥自己的才能和个性,建立信任、合作的关系。这门课不光教你如何做一个好领导,更传授与人相处的艺术。不管身在哪个领域,情商都是一种软实力,而这恰恰是大多数学校不教授的课程创业之前,你该知道什么?新成立的小公司和大企业相比,有哪些不同之处?创业公司该怎样挣到第一桶金?这门课程告诉你怎样一步步打造自己的公司,规避风险,走向成功 from Penn State创新不是天才灵光一现的产物,每个人都可以通过学习来提高自己的创造力!这门课教你打开思路,培养创新能力,并将它运用到自己的学习和工作中。本课程表中最热血的一门课程!世界著名的公益团体92 Street Y举办的“社会公益峰会”(Social Good Summit)。该峰会集结了全世界最具创造力的企业家、作家、学者和政治领袖,大家讨论了如何用创造性思维和科技来解决全球难题这门课实在是太有趣了,教授为了卖萌,也费尽了心思。对商业竞争策略感兴趣你会获益匪浅。设计思维是当今商业世界中流行的新理念数据科学 from Toronto from JHU 数据科学家修炼宝典,约翰霍普金斯大学数据科学专项系列课程,比较简单 from JHU 微软计算机 深度学习 Google大神主讲 大数据Spark入门 Spark深入这门课号称“让艺术生也会爱上的编程课”,由新南威尔士大学(UNSW)开设。课程视频是现场录制的,大家可以感受到澳洲课堂的氛围Mining Massive Datasets from Stanford
from MIT from UBC from RICE from RiceReddit创始人Steve Huffman教你建网页,与你分享个人经验 from Rice这门课的教学团队由莱斯大学的三位萌教授Luay Nakhleh、Scott Rixner和Joe Warren组成。老师们爱电脑游戏,爱Python编程,讲课也很清晰 from Minnesota from StanfordCoursera创始人之一 Andrew Ng 的课程,同时也是Coursera平台上最经典的课程之一。只要你对计算机科学感兴趣,或者对数据处理感兴趣,我就推荐你上这门课。不用担心自己没有计算机专业背景会听不懂这门课,因为和大多数导论性课程一样ML回避了大部分的数学内容。使用Octave(一种和Matlab语言相同的开源软件)的实验并不需要高级的编程能力,Matlab语言简单易懂,所以即使你没有任何编程经验也不用担心Machine Learning Foundations from 台湾大学 from Stanford作为《Functional Programming Principles in Scala》的后续课程,继续介绍scala里的Haskell的monad,erlang的acotor,这些是构建分布式基础构建,要说scala当前最火的应用Spark,都可随见这些的身影 from UW让你学过之后能写出更好的程式,而且学新的程式语言更容易通过build一个javascript和html的interpreter可以对计算机语言的运行方式有一个更深层次的理解 from Toronto由神经网络和深度学习的宗师 Geoffrey Hinton 开设 from GoogleUdacity创始人Sebastian Thrun的履历几乎与吴恩达不分高下。在斯坦福任教期间,他开发的赛车赢得了2005年的无人驾驶汽车大奖赛,参与发起谷歌X实验室,参与领导谷歌眼镜项目。在这门课取得成功之后,他离开斯坦福,创办Udacity。 from GooglePeter Norvig是Google的研究总监,并且是美国人工智能协会及计算机协会的会员,流行教材《人工智能:一种现代方法》的合著者。加入Google之前,他是NASA Ames研究中心的计算科学部主任。 from Princeton在这门课上,连编译器都值得你观摩学习!Robert Sedgewick教授师从图灵奖和冯·诺依曼奖获得者Donald Knuth,现在他是普林斯顿大学计算机系创始人,Adobe董事会成员。这门课的另一位教授是Kevin Wayne,他们两人合著了经典教材《算法》。Union-Find,Analysis of Algorithms,Stacks and Queues,Elementary Sorts,Mergesort,Quicksort,Priority Queues,Elementary Symbol Tables,Balanced Search Trees,Geometric Applications of BSTs,Hash Tables from Princeton普林斯顿大学的课程都非常傲娇地不给证书,但这两位大牛的课绝对超值:他们是《算法》红宝书的作者,其中一位还是普林斯顿大学计算机系的创始人、Adobe董事。Undirected Graphs,Directed Graphs,Minimum Spanning Trees,Shortest Paths,Maximum Flow,String Sorts,Tries,Substring Search,Regular Expressions,Data Compression,Reductions,Linear Programming,Intractability form PrincetonAnalysis of Algorithms,Recurrences,Solving recurrences with GFs,Asymptotics,The symbolic method,Trees,Permutations,Strings and Tries,Words and Mappings from Stanford from Stanford谁能比Scala发明人Martin Odersky更了解Scala?让他教这门课再合适不过了。他不光能告诉你Scala怎么用,更能让你了解Scala语言背后的设计思想历史人文 大历史 from Harvard哈佛中国课系列由10门迷你课程组成,它将让你从社会、文化、经济、地理等多个角度全面认识中国历史,并看到西方学者研究历史的不同视角。 from PKU将社会学与计算机科学等学科结合起来,把人群放在一个网络中,借助数学模型来分析 from 复旦 柏拉图台大吕世浩讲授,百分之百強力推薦的好课。幽默有趣的腔调去厘清了“历史中的秦始皇”、“秦始皇的历史”,授课重点在于藉由经典历史文献《史记》本身,以一种轻松的日常话语引起大家对历史学的兴趣,扭转应试教育下给人们所建构起的枯燥的“刻板印象”。同时,本课程还会结合考古结果、古代文物等方式去展现大秦帝国的伟业课程选取《史记·项羽本纪》、《原道》、《赤壁赋》、《阿Q正传》这四部时代跨度极长、风格不一的经典文学作品作为课程的核心台大吕世浩老师不光教大家读史书,学历史,更教授一种反思文化与人生的方式。以一种如何治史的角度,即从中国古代史官的伦理道德、品格操守等视角出发去重新解构司马迁的《史记》以唐诗和宋词作为思想资源,李康化老师在二者之间自如游走,为我们呈现了唐宋二代文人墨客的人情爱恨、官场得失、醉生梦死和感怀缱绻等主题,以全景式的角度透视了唐宋知识分子的生存况遇和思想历程。 from PKU“中国的眼光,现代的立场”来重新阐释“世界艺术史”的概念,并具体陈述西方艺术与中国艺术在理念和创作方法上的区别,进而通过艺术史如何建造一条各文明之间互相理解、互相尊重的道路参考9.2K130 条评论分享收藏感谢收起Python爬取Coursera课程资源的详细过程
投稿:hebedich
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Python爬取Coursera课程资源的详细过程,需要的朋友可以参考下
有时候我们需要把一些经典的东西收藏起来,时时回味,而Coursera上的一些课程无疑就是经典之作。Coursera中的大部分完结课程都提供了完整的配套教学资源,包括ppt,视频以及字幕等,离线下来后会非常便于学习。很明显,我们不会去一个文件一个文件的下载,只有傻子才那么干,程序员都是聪明人!
那我们聪明人准备怎么办呢?当然是写一个脚本来批量下载了。首先我们需要分析一下手工下载的流程:登录自己的Coursera账户(有的课程需要我们登录并选课后才能看到相应的资源),在课程资源页面里,找到相应的文件链接,然后用喜欢的工具下载。
很简单是吧?我们可以用程序来模仿以上的步骤,这样就可以解放双手了。整个程序分为三个部分就可以了:
登录Coursera;在课程资源页面里面找到资源链接;根据资源链接选择合适的工具下载资源。
下面就来具体的实现以下吧!
刚开始时自己并没有添加登录模块,以为访客就可以下载相应的课程资源,后来在测试comnetworks-002这门课程时发现访客访问资源页面时会自动跳转到登录界面,下图是chrome在隐身模式访问该课程资源页面时的情况。
要想模拟登录,我们先找到登录的页面,然后利用google的Developer Tools分析账号密码是如何上传到服务器的。
我们在登录页面的表单中填入账号密码,然后点击登录。与此同时,我们需要双眼紧盯Developer Tools——Network,找到提交账号信息的url。一般情况下,如果要向服务器提交信息,一般都用post方法,这里我们只需要先找到Method为post的url。悲剧的是,每次登录账号时,Network里面都找不到提交账户信息的地址。猜测登录成功后,直接跳转到登录成功后的页面,想要找的内容一闪而过了。
于是就随便输入了一组账号密码,故意登录失败,果真找到了post的页面地址,如下图:
地址为:https://accounts.coursera.org/api/v1/login。为了知道向服务器提交了哪些内容,进一步观察post页面中表单中内容,如下图:
我们看到一共有三个字段:
email:账号的注册邮箱password:账号密码webrequest:附加的字段,值为true。
接下来就动手写吧,我选择用python的Requests库来模拟登录,关于Requests官网是这样介绍的。
Requests is an elegant and simple HTTP library for Python, built for human beings.
事实上requests用起来确实简单方便,不亏是专门为人类设计的http库。requests提供了Session对象,可以用来在不同的请求中传递一些相同的数据,比如在每次请求中都携带cookie。
初步的代码如下:
signin_url = ""logininfo = {"email": "...",&&&&&&&&&&&& "password": "...",&&&&&&&&&&&& "webrequest": "true"&&&&&&&&&&&& }
user_agent = ("Mozilla/5.0 (M Intel Mac OS X 10_9_4) "&&&&&&&&&&&&& "AppleWebKit/537.36 (KHTML, like Gecko) "&&&&&&&&&&&&& "Chrome/36.0. Safari/537.36")
post_headers = {"User-Agent": user_agent,&&&&&&&&&&&&&&& "Referer": ""&&&&&&&&&&&&&&& }coursera_session = requests.Session()
login_res = coursera_session.post(signin_url,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& data=logininfo,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& headers=post_headers,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& )if login_res.status_code == 200:&&& print "Login Successfully!"else:&&& print login_res.text
将表单中提交的内容存放在字典中,然后作为data参数传递给Session.post函数。一般情况下,最好是加上请求User-Agent,Referer等请求头部,User-Agent用来模拟浏览器请求,Referer用来告诉服务器我是从referer页面跳转到请求页面的,有时候服务器会检查请求的Referer字段来保证是从固定地址跳到当前请求页的。
上面片段的运行结果很奇怪,显示如下信息:Invalid CSRF Token。后来在github上面搜索到一个Coursera的批量下载脚本,发现人家发送页面请求时headers多了XCSRF2Cookie, XCSRF2Token, XCSRFToken, cookie4个字段。于是又重新看了一下post页面的请求头部,发现确实有这几个字段,估计是服务器端用来做一些限制的。
用浏览器登录了几次,发现XCSRF2Token, XCSRFToken是长度为24的随机字符串,XCSRF2Cookie为"csrf2_token_"加上长度为8的随机字符串。不过一直没搞明白Cookie是怎么求出来的,不过看github上面代码,Cookie似乎只是"csrftoken"和其他三个的组合,试了一下竟然可以。
在原来的代码上添加以下部分就足够了。
def randomString(length):&&& return ''.join(random.choice(string.letters + string.digits) for i in xrange(length))XCSRF2Cookie = 'csrf2_token_%s' % ''.join(randomString(8))XCSRF2Token = ''.join(randomString(24))XCSRFToken = ''.join(randomString(24))cookie = "csrftoken=%s; %s=%s" % (XCSRFToken, XCSRF2Cookie, XCSRF2Token)post_headers = {"User-Agent": user_agent,&&&&&&&&&&&&&&& "Referer": "",&&&&&&&&&&&&&&& "X-Requested-With": "XMLHttpRequest",&&&&&&&&&&&&&&& "X-CSRF2-Cookie": XCSRF2Cookie,&&&&&&&&&&&&&&& "X-CSRF2-Token": XCSRF2Token,&&&&&&&&&&&&&&& "X-CSRFToken": XCSRFToken,&&&&&&&&&&&&&&& "Cookie": cookie&&&&&&&&&&&&&&& }
至此登录功能初步实现。
分析资源链接
登录成功后,我们只需要get到资源页面的内容,然后过滤出自己需要的资源链接就行了。资源页面的地址很简单,为https://class.coursera.org/name/lecture,其中name为课程名称。比如对于课程comnetworks-002,资源页面地址为https://class.coursera.org/comnetworks-002/lecture。
抓取到页面资源后,我们需要分析html文件,这里选择使用BeautifulSoup。BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库,相当强大。具体使用官网上有很详细的文档,这里不再赘述。在使用BeautifulSoup前,我们还得找出资源链接的规律,方便我们过滤。
其中课程每周的总题目为class=course-item-list-header的div标签下,每周的课程均在class=course-item-list-section-list的ul标签下,每节课程在一个li标签中,课程资源则在li标签中的div标签中。
查看了几门课程之后,发现过滤资源链接的方法很简单,如下:
ppt和ppt资源:用正则表达式匹配链接;字幕资源:找到title="Subtitles (srt)"的标签,取其href属性;视频资源:找到title="Video (MP4)"的标签,取其href属性即可。
字幕和视频也可以用正则表达式过滤,不过用BeautifulSoup根据title属性来匹配,有更好的易读性。而ppt和pdf资源,没有固定的title属性,只好利用正则表达式来匹配。
具体代码如下:
soup = BeautifulSoup(content)chapter_list = soup.find_all("div", class_="course-item-list-header")lecture_resource_list = soup.find_all("ul", class_="course-item-list-section-list")ppt_pattern = re.compile(r'https://[^"]*\.ppt[x]?')pdf_pattern = re.compile(r'https://[^"]*\.pdf')for lecture_item, chapter_item in zip(lecture_resource_list, chapter_list):&&& # weekly title&&& chapter = chapter_item.h3.text.lstrip()&&& for lecture in lecture_item:&&&&&&& lecture_name = lecture.a.string.lstrip()&&&&&&& # get resource link&&&&&&& ppt_tag = lecture.find(href=ppt_pattern)&&&&&&& pdf_tag = lecture.find(href=pdf_pattern)&&&&&&& srt_tag = lecture.find(title="Subtitles (srt)")&&&&&&& mp4_tag = lecture.find(title="Video (MP4)")&&&&&&& print ppt_tag["href"], pdf_tag["href"]&&&&&&& print srt_tag["href"], mp4_tag["href"]
既然已经得到了资源链接,下载部分就很容易了,这里我选择使用curl来下载。具体思路很简单,就是输出curl resource_link -o file_name到一个种子文件中去,比如到feed.sh中。这样只需要给种子文件执行权限,然后运行种子文件即可。
为了便于归类课程资源,可以为课程每周的标题建立一个文件夹,之后该周的所有课程均下载在该目录下。为了方便我们快速定位到每节课的所有资源,可以把一节课的所有资源文件均命名为课名.文件类型。具体的实现比较简单,这里不再给出具体程序了。可以看一下一个测试例子中的feed.sh文件,部分内容如下:
mkdir 'Week 1: Introduction, Protocols, and Layering'cd 'Week 1: Introduction, Protocols, and Layering'curl
-o '1-1 Goals and Motivation (15:46).pdf'curl
-o '1-1 Goals and Motivation (15:46).srt'curl
-o '1-1 Goals and Motivation (15:46).mp4'curl
-o '1-2 Uses of Networks (17:12).pdf'curl
-o '1-2 Uses of Networks (17:12).srt'curl
-o '1-2 Uses of Networks (17:12).mp4'
到这里为止,我们已经成功完成爬取Coursera课程资源的目标,具体的代码放在gist上。使用时,我们只需要运行程序,并把课程名称作为参数传递给程序就可以了(这里的课程名称并不是整个课程的完整名字,而是在课程介绍页面地址中的缩略名字,比如Computer Networks这门课,课程名称是comnetworks-002)。
其实,这个程序可以看做一个简单的小爬虫程序了,下面粗略介绍下爬虫的概念。
一点都不简单的爬虫
关于什么是爬虫,wiki上是这样说的
A Web crawler is an Internet bot that systematically browses the World Wide Web, typically for the purpose of Web indexing.
爬虫的总体架构图如下(图片来自wiki):
简单来说,爬虫从Scheduler中获取初始的urls,下载相应的页面,存储有用的数据,同时分析该页面中的链接,如果已经访问就pass,没访问的话加入到Scheduler中等待抓取页面。
当然有一些协议来约束爬虫的行为规范,比如许多网站都有一个robots.txt文件来规定网站哪些内容可以被爬取,哪些不可以。
每个搜索引擎背后都有一个强大的爬虫程序,把触角伸到网络中的所有角落,不断去收集有用信息,并建立索引。这种搜索引擎级别的爬虫实现起来非常复杂,因为网络上的页面数量太过庞大,只是遍历他们就已经很困难了,更不要说去分析页面信息,并建立索引了。
实际应用中,我们只需要爬取特定站点,抓取少量的资源,这样实现起来简单很多。不过仍然有许多让人头疼的问题,比如许多页面元素是javascript生成的,这时候我们需要一个javascript引擎,渲染出整个页面,再加以过滤。
更糟糕的是,许多站点都会用一些措施来阻止爬虫爬取资源,比如限定同一IP一段时间的访问次数,或者是限制两次操作的时间间隔,加入验证码等等。绝大多数情况下,我们不知道服务器端是如何防止爬虫的,所以要想让爬虫工作起来确实挺难的。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Coursera上Python课程(公开课)汇总推荐:从Python入门到应用Python | 课程图谱博客
课程图谱努力做好MOOC爱好者的公开课助手和参谋。欢迎大家关注我们,如有问题也可以和我们直接联系:
课程图谱微信号Python数据分析与展示 | MOOC中国 - 慕课改变你,你改变世界
“我们正步入一个数据或许比软件更重要的新时代。——Tim O’Reilly” 运用数据是精准刻画事物、呈现发展规律的主要手段,分析数据展示规律,把思想变得更精细! ——“弹指之间·享受创新”,通过4周学习,你将掌握利用Python语言表示、清洗、统计和展示数据的能力。
北京理工大学
中国大学MOOC
“我们正步入一个数据或许比软件更重要的新时代。——Tim O’Reilly”
运用数据是精准刻画事物、呈现发展规律的主要手段,分析数据展示规律,把思想变得更精细!
本课程面向各类编程学习者,讲解利用Python语言表达N维数据并结合数据特点合理展示数据的技术和方法,帮助学习者掌握表示、清洗、统计和展示数据的能力。
本课程介绍Python计算生态中最优秀的数据分析和展示技术,所讲授内容是数据领域最优秀的编程模块,在理学、工程、信息、管理、经济等学科领域具有极其广泛的应用潜力。包括必修内容和选修内容两部分。
必修内容包括:
(1)Python第三方库NumPy,讲解N维数据的表达及科学计算的基本概念和运算方法;
(2)Python第三方库Matplotlib,讲解绘制坐标系、雷达图、等高线等直观展示数据趋势和特点的方法。
选修内容(介绍性)包括:
(1)Python第三方库Pandas,强大的专业级数据分析和处理第三方库,介绍并讲解对时间序列数据的基本分析方法以及对缺失数据的基本处理方法。
该课程希望传递“理解和运用计算生态,培养集成创新思维”的理念,重点培养学习者运用当代最优秀第三方专业资源,快速分析和解决问题的能力。
“人生苦短,不要刀耕火种”,嵩老师教你直面问题和需求,用最好的工具解决它!
2017年度全新上线的Python语言系列专题课,带给你不一样的学习体验!
&&Python 网络爬虫与信息提取
http://www.icourse163.org/course/BIT-
&&Python 数据分析与展示
http://www.icourse163.org/course/BIT-
&&Python 机器学习应用
http://www.icourse163.org/course/BIT-
&&Python 科学计算三维可视化
http://www.icourse163.org/course/BIT-
&&Python 游戏开发入门
http://www.icourse163.org/course/BIT-
&&Python 云端系统开发入门
http://www.icourse163.org/course/BIT-
本课程采取百分制,客观题和主观编程题各占50分。60分-79分可获得合格证书,80分以上可获得优秀证书,满分者将获得嵩老师的额外神秘大礼。
本课程需要学习者具备Python语言编程的基本知识和初步技能,建议Python零基础学习者先修嵩老师的“Python语言程序设计”课程。具体地,学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。
根据第三方库内容特点,课程共分8个内容模块和1个实战模块:
模块1:数据表示:一维、二维、N维、高维数据的NumPy表示和文件存取方法
模块2:数据清理:缺失值、异常值、一致性等分析
模块3:数据统计:分布、对比、周期、关联等分析
模块4:数据展示:Matplotlib库的使用
实例:绘制科学坐标系
模块5:数据展示:Matplotlib库的使用
实例:绘制梯度雷达图
模块6:数据展示:Matplotlib库的使用
实例:绘制科学等高线
模块7(实战):实战项目:给一批数据,经过表示、清理、统计和展示达到分析要求
模块8(选修):时间序列数据的理解及专业数据分析工具Pandas的基本使用
模块9(选修):高级数据清理:时序中缺失数据的基本处理实例
Python集成开发环境(IDE)
[1] Anaconda: https://www.continuum.io/ (推荐)
[2] IDLE: Python解释器默认工具
[3] PyCharm: http://www.jetbrains.com/pycharm/
[1] Python零基础入门教程:《Python语言程序设计基础(第2版)》,嵩天、礼欣、黄天羽著,高等教育出版社,2016.12
[2] 专题参考资料:《利用Python进行数据分析》,Wes McKinney著,O’Reilly & 机械工业出版社,2014.1
[1] Python NumPy: http://www.numpy.org/
[2] Python Matplotlib: http://matplotlib.org/
[3] Python Pandas: http://pandas.pydata.org/
Q1:除了Python,这个课程需要其他编程语言基础吗?
A1:不需要,只要具备基本的Python编程能力,就可以学习本课程。
Q2:Python 2.x和Python 3.x,这个课程采用哪个版本?
A2:Python 3.x已经足够成熟,这是Python语言的现在和未来,嵩老师所有Python课程都采用Python 3.x系列版本。
Q3:在线开放课程看不到老师,有问题谁来解答?
A3:为了更好服务同学们,本课程教师和多名助教会每天在线答疑,尽快解决与课程相关的各类问题。
Q4:课程里面除了视频有什么新的形式吗?
A4:大学老师都是一本正经的,但你见过大学老师闲扯吗?课间,嵩老师想说说不一样的话…
OpenLearning
FutureLearn
Open2Study
IOC-Athlete-MOOC
World-Science-U
Codecademy
CourseSites
opencourseworld
ShareCourse
Stanford-Open-Edx
网易云课堂
中国大学MOOC
好大学在线CnMooc
以及更多...
Copyright &
MOOC.CN 慕课改变你,你改变世界3,406被浏览101,008分享邀请回答2添加评论分享收藏感谢收起}

我要回帖

更多关于 coursera课程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信