虽然知道大多数同学都有资料收藏癖，还是给大家准备一份自然语言处理学习大礼包，其实是之前陆陆续续分享的NLP学习资源，包括自然语言处理、深度学习、机器学习、数学相关的经典课程、书籍和学习笔记，这些资料基本上都是公开渠道可以获得的，整理到一起，方便NLP爱好者收藏把玩。当然，学习的前提依然是”学自然语言处理，其实更应该学好英语“。

获取方法很简单，关注AINLP公众号，后台回复关键词：ALL4NLP，一键打包收藏NLP学习资源： 继续阅读

发表回复

虽然知道大多数同学都有资料收藏癖，还是给大家准备一份自然语言处理学习大礼包，其实是之前陆陆续续分享的NLP学习资源，包括自然语言处理、深度学习、机器学习、数学相关的经典课程、书籍和学习笔记，这些资料基本上都是公开渠道可以获得的，整理到一起，方便NLP爱好者收藏把玩。当然，学习的前提依然是”学自然语言处理，其实更应该学好英语“。

获取方法很简单，关注AINLP公众号，后台回复关键词：ALL4NLP，一键打包收藏NLP学习资源： 继续阅读

施普林格（Springer）是世界著名的科技期刊、图书出版公司，这次疫情期间面向公众免费开放了一批社科人文，自然科学等领域的正版电子书籍（据说是400多本），towardsdatascience 上有学者将其中65本机器学习和数据科学以及统计相关的免费教材下载链接整理了出来，我试了一下，无需注册，可以直接下载相关的PDF书籍，相当方便：Springer has released 65 Machine Learning and Data books for free（https://towardsdatascience.com/springer-has-released-65-machine-learning-and-data-books-for-free-961f8181f189）。 继续阅读

最近被安利了一个极客时间的专栏：《AI技术内参》，作者是洪亮劼老师，美国Etsy工程总监，前雅虎研究院高级研发经理。选了一些章节试读，觉得可以安利一下这个专栏，好东西要分享，希望你能耐心看完这篇文章。通过这个专栏大概可以一窥工业界的一些玩法，工业界和学术界的碰撞，另外从目录来看这个专栏覆盖的范围也很广，包括自然语言处理、计算机视觉、数据科学、推荐系统、广告系统、搜索核心技术的传统机器学习方法和新的深度学习方法。这个专栏目前已经完结，稍微花一些时间大概就可以看完或者听完，从现在开始到5月4日24时，79元，大概一本书的价格，感兴趣的同学可以参与：《AI技术内参》

前十讲主要是关于数据科学的一些经验，分享一下打动我的9个点，关于数据科学，个人觉得这些对于还没有进入工业界的同学特别是想进入人工智能行业的同学来说很有参考意义，AI相关技术的算法工程师不仅仅玩算法，玩框架，更需要有数据科学思维、系统闭环思维、以及面向产品思维：

Coursera上的数据科学课程有很多，这里汇总一批。

1、 Introduction to Data Science Specialization

IBM公司推出的数据科学导论专项课程系列（Introduction to Data Science Specialization），这个系列包括4门子课程，涵盖数据科学简介，面向数据科学的开源工具，数据科学方法论，SQL基础，感兴趣的同学可以关注：Launch your career in Data Science。Data Science skills to prepare for a career or further advanced learning in Data Science.

1) What is Data Science?

2) Open Source tools for Data Science

3) Data Science Methodology

4) Databases and SQL for Data Science

2、Applied Data Science Specialization

IBM公司推出的 应用数据科学专项课程系列（Applied Data Science Specialization），这个系列包括4门子课程，涵盖面向数据科学的Python，Python数据可视化，Python数据分析，数据科学应用毕业项目，感兴趣的同学可以关注：Get hands-on skills for a Career in Data Science。Learn Python, analyze and visualize data. Apply your skills to data science and machine learning.

1) Python for Data Science

2) Data Visualization with Python

3) Data Analysis with Python

4) Applied Data Science Capstone

3、Applied Data Science with Python Specialization

密歇根大学的Python数据科学应用专项课程系列（Applied Data Science with Python），这个系列的目标主要是通过Python编程语言介绍数据科学的相关领域，包括应用统计学，机器学习，信息可视化，文本分析和社交网络分析等知识，并结合一些流行的Python工具包进行讲授，例如pandas, matplotlib, scikit-learn, nltk以及networkx等Python工具。感兴趣的同学可以关注：Gain new insights into your data-Learn to apply data science methods and techniques, and acquire analysis skills.

1) Introduction to Data Science in Python

2) Applied Plotting, Charting & Data Representation in Python

3) Applied Machine Learning in Python

4) Applied Text Mining in Python

5) Applied Social Network Analysis in Python

约翰霍普金斯大学的数据科学专项课程系列（Data Science Specialization），这个系列课程有10门子课程，包括数据科学家的工具箱，R语言编程，数据清洗和获取，数据分析初探，可重复研究，统计推断，回归模型，机器学习实践，数据产品开发，数据科学毕业项目，感兴趣的同学可以关注: Launch Your Career in Data Science-A nine-course introduction to data science, developed and taught by leading professors.

1) The Data Scientist’s Toolbox

2) R Programming

3) Getting and Cleaning Data

4) Exploratory Data Analysis

5) Reproducible Research

6) Statistical Inference

7) Regression Models

8) Practical Machine Learning

9) Developing Data Products

10) Data Science Capstone

5、Data Science at Scale Specialization

华盛顿大学的大规模数据科学专项课程系列（Data Science at Scale ），这个系列包括3门子课程和1个毕业项目课程，包括大规模数据系统和算法，数据分析模型与方法，数据科学结果分析等，感兴趣的同学可以关注: Tackle Real Data Challenges-Master computational, statistical, and informational data science in three courses.

1) Data Manipulation at Scale: Systems and Algorithms

2) Practical Predictive Analytics: Models and Methods

3) Communicating Data Science Results

4) Data Science at Scale – Capstone Project

6、Advanced Data Science with IBM Specialization

IBM公司推出的高级数据科学专项课程系列（Advanced Data Science with IBM Specialization），这个系列包括4门子课程，涵盖数据科学基础，高级机器学习和信号处理，结合深度学习的人工智能应用等，感兴趣的同学可以关注：Expert in DataScience, Machine Learning and AI。Become an IBM-approved Expert in Data Science, Machine Learning and Artificial Intelligence.

1) Fundamentals of Scalable Data Science

2) Advanced Machine Learning and Signal Processing

3) Applied AI with DeepLearning

4) Advanced Data Science Capstone

伊利诺伊大学香槟分校的数据挖掘专项课程系列（Data Mining Specialization），这个系列包含5门子课程和1个毕业项目课程，涵盖数据可视化，信息检索，文本挖掘与分析，模式发现和聚类分析等，感兴趣的同学可以关注：Data Mining Specialization-Analyze Text, Discover Patterns, Visualize Data. Solve real-world data mining challenges.

1) Data Visualization

2) Text Retrieval and Search Engines

3) Text Mining and Analytics

4) Pattern Discovery in Data Mining

5) Cluster Analysis in Data Mining

6) Data Mining Project

8、Data Analysis and Interpretation Specialization

数据分析和解读专项课程系列（Data Analysis and Interpretation Specialization），该系列包括5门子课程，分别是数据管理和可视化，数据分析工具，回归模型，机器学习，毕业项目，感兴趣的同学可以关注：Learn Data Science Fundamentals-Drive real world impact with a four-course introduction to data science.

1) Data Management and Visualization

2) Data Analysis Tools

3) Regression Modeling in Practice

4) Machine Learning for Data Analysis

5) Data Analysis and Interpretation Capstone

9、Executive Data Science Specialization

可管理的数据科学专项课程系列（Executive Data Science Specialization），这个系列包含4门子课程和1门毕业项目课程，涵盖数据科学速成，数据科学小组建设，数据分析管理，现实生活中的数据科学等，感兴趣的同学可以关注：Be The Leader Your Data Team Needs-Learn to lead a data science team that generates first-rate analyses in four courses.

1）A Crash Course in Data Science

2）Building a Data Science Team

3）Managing Data Analysis

4）Data Science in Real Life

5）Executive Data Science Capstone

10、其他相关的数据科学课程

1) Data Science Math Skills

2) Data Science Ethics

3) How to Win a Data Science Competition: Learn from Top Kagglers

注：本文首发“课程图谱博客”：http://blog.coursegraph.com

同步发布到这里, 本本文链接地址：http://blog.coursegraph.com/coursera上数据科学相关课程数据科学公开课汇总推荐 http://blog.coursegraph.com/?p=851

数学课程是基础，Coursera上有很多数学公开课，这里做个汇总，注意由于Coursera上有一批很有特色的统计学相关的数学课程，我们将在下一期里单独汇总。

1 斯坦福大学 Introduction to Mathematical Thinking（数学思维导论）

http://coursegraph.com/coursera-mathematical-thinking

引用老版课程一个同学的评价，供参考：

这门课是高中数学到大学数学的一个过度。高中数学一般重计算不太注重证明，这门课讲了基本的逻辑，数学语言（两个 quantifier，there exists， for all）和证明的几个基本方法，比如证明充要条件要从两个方向证、证伪只需要举个反例，原命题不好证的时候可以证等价的逆否命题以及很常用的数学归纳法。课程讲了数论里一些基本定理，然后通过让你证一些看起来显然而不需要证明的证明题来训练你证明的技能和逻辑思考的能力，看起来显然的命题也是要证明才能说服人的，课程最后简略的讲了下数学分析里面实数的引入，但这部分讲的不完整。Keith Devlin 是个 old school 的讲师，上课只用纸和笔，也是属于比较热情的讲师，他每周都会录几个答疑的视频。这门比较适合大一的新生上，开得也比较频繁。

课程简介：

Learn how to think the way mathematicians do – a powerful cognitive process developed over thousands of years. Mathematical thinking is not the same as doing mathematics – at least not as mathematics is typically presented in our school system. School math typically focuses on learning procedures to solve highly stereotyped problems. Professional mathematicians think a certain way to solve real problems, problems that can arise from the everyday world, or from science, or from within mathematics itself. The key to success in school math is to learn to think inside-the-box. In contrast, a key feature of mathematical thinking is thinking outside-the-box – a valuable ability in today’s world. This course helps to develop that crucial way of thinking.

2 加州大学尔湾分校 初级微积分系列课程

1）Pre-Calculus: Functions（初级微积分：函数）

http://coursegraph.com/coursera-pre-calculus

This course covers mathematical topics in college algebra, with an emphasis on functions. The course is designed to help prepare students to enroll for a first semester course in single variable calculus. Upon completing this course, you will be able to: 1. Solve linear and quadratic equations 2. Solve some classes of rational and radical equations 3. Graph polynomial, rational, piece-wise, exponential and logarithmic functions 4. Find integer roots of polynomial equations 5. Solve exponential and logarithm equations 6. Understand the inverse relations between exponential and logarithm equations 7. Compute values of exponential and logarithm expressions using basic properties

2）Pre-Calculus: Trigonometry(初级微积分：三角）

http://coursegraph.com/coursera-trigonometry

This course covers mathematical topics in trigonometry. Trigonometry is the study of triangle angles and lengths, but trigonometric functions have far reaching applications beyond simple studies of triangles. This course is designed to help prepare students to enroll for a first semester course in single variable calculus. Upon completing this course, you will be able to: 1. Evaluate trigonometric functions using the unit circle and right triangle approaches 2. Solve trigonometric equations 3. Verify trigonometric identities 4. Prove and use basic trigonometric identities. 5. Manipulate trigonometric expressions using standard identities 6. Solve right triangles 7. Apply the Law of Sines and the Law of Cosines

3 宾夕法尼亚大学的 单变量微积分系列课程

1）Calculus: Single Variable Part 1 - Functions（单变量微积分1：函数）

http://coursegraph.com/coursera-single-variable-calculus

Calculus is one of the grandest achievements of human thought, explaining everything from planetary orbits to the optimal size of a city to the periodicity of a heartbeat. This brisk course covers the core ideas of single-variable Calculus with emphases on conceptual understanding and applications. The course is ideal for students beginning in the engineering, physical, and social sciences. Distinguishing features of the course include: 1) the introduction and use of Taylor series and approximations from the beginning; 2) a novel synthesis of discrete and continuous forms of Calculus; 3) an emphasis on the conceptual over the computational; and 4) a clear, dynamic, unified approach. In this first part--part one of five--you will extend your understanding of Taylor series, review limits, learn the *why* behind l'Hopital's rule, and, most importantly, learn a new language for describing growth and decay of functions: the BIG O.

2）Calculus: Single Variable Part 2 - Differentiation（单变量微积分2：微分）

http://coursegraph.com/coursera-differentiation-calculus

Calculus is one of the grandest achievements of human thought, explaining everything from planetary orbits to the optimal size of a city to the periodicity of a heartbeat. This brisk course covers the core ideas of single-variable Calculus with emphases on conceptual understanding and applications. The course is ideal for students beginning in the engineering, physical, and social sciences. Distinguishing features of the course include: 1) the introduction and use of Taylor series and approximations from the beginning; 2) a novel synthesis of discrete and continuous forms of Calculus; 3) an emphasis on the conceptual over the computational; and 4) a clear, dynamic, unified approach. In this second part--part two of five--we cover derivatives, differentiation rules, linearization, higher derivatives, optimization, differentials, and differentiation operators.

3）Calculus: Single Variable Part 3 - Integration（单变量微积分3：积分）

http://coursegraph.com/coursera-integration-calculus

Calculus is one of the grandest achievements of human thought, explaining everything from planetary orbits to the optimal size of a city to the periodicity of a heartbeat. This brisk course covers the core ideas of single-variable Calculus with emphases on conceptual understanding and applications. The course is ideal for students beginning in the engineering, physical, and social sciences. Distinguishing features of the course include: 1) the introduction and use of Taylor series and approximations from the beginning; 2) a novel synthesis of discrete and continuous forms of Calculus; 3) an emphasis on the conceptual over the computational; and 4) a clear, dynamic, unified approach. In this third part--part three of five--we cover integrating differential equations, techniques of integration, the fundamental theorem of integral calculus, and difficult integrals.

4) Calculus: Single Variable Part 4 - Applications（单变量微积分4：应用）

http://coursegraph.com/coursera-applications-calculus

Calculus is one of the grandest achievements of human thought, explaining everything from planetary orbits to the optimal size of a city to the periodicity of a heartbeat. This brisk course covers the core ideas of single-variable Calculus with emphases on conceptual understanding and applications. The course is ideal for students beginning in the engineering, physical, and social sciences. Distinguishing features of the course include: 1) the introduction and use of Taylor series and approximations from the beginning; 2) a novel synthesis of discrete and continuous forms of Calculus; 3) an emphasis on the conceptual over the computational; and 4) a clear, dynamic, unified approach. In this fourth part--part four of five--we cover computing areas and volumes, other geometric applications, physical applications, and averages and mass. We also introduce probability.

4 杜克大学 Data Science Math Skills（数据科学中的数学技巧）

http://coursegraph.com/coursera-datasciencemathskills

这门课程主要介绍数据科学中涉及的相关数学概念，让学生了解基本的数学概念，掌握基本的数学语言，内容涵盖集合论、求和的Sigma符号、数学上的笛卡尔（x，y）平面、指数、对数和自然对数函数，概率论以及叶斯定理等：

Data science courses contain math—no avoiding that! This course is designed to teach learners the basic math you will need in order to be successful in almost any data science math course and was created for learners who have basic math skills but may not have taken algebra or pre-calculus. Data Science Math Skills introduces the core math that data science is built upon, with no extra complexity, introducing unfamiliar ideas and math symbols one-at-a-time. Learners who complete this course will master the vocabulary, notation, concepts, and algebra rules that all data scientists must know before moving on to more advanced material.

5 加州大学圣迭戈分校 Introduction to Discrete Mathematics for Computer Science Specialization（面向计算机科学的离散数学专项课程)

http://coursegraph.com/coursera-specializations-discrete-mathematics

面向计算机科学的离散数学专项课程（Introduction to Discrete Mathematics for Computer Science Specialization），这个系列包含5门子课程，涵盖证明、组合数学与概率、图论，数论和密码学，配送问题项目等，感兴趣的同学可以关注: Build a Foundation for Your Career in IT-Master the math powering our lives and prepare for your software engineer or security analyst career

Discrete Math is needed to see mathematical structures in the object you work with, and understand their properties. This ability is important for software engineers, data scientists, security and financial analysts (it is not a coincidence that math puzzles are often used for interviews). We cover the basic notions and results (combinatorics, graphs, probability, number theory) that are universally needed. To deliver techniques and ideas in discrete mathematics to the learner we extensively use interactive puzzles specially created for this specialization. To bring the learners experience closer to IT-applications we incorporate programming examples, problems and projects in our courses.

http://coursegraph.com/coursera-what-is-a-proof

There is a perceived barrier to mathematics: proofs. In this course we will try to convince you that this barrier is more frightening than prohibitive: most proofs are easy to understand if explained correctly, and often they are even fun. We provide an accompanied excursion in the “proof zoo” showing you examples of techniques of different kind applied to different topics. We use some puzzles as examples, not because they are “practical”, but because discussing them we learn important reasoning and problem solving techniques that are useful. We hope you enjoy playing with the puzzles and inventing/understandings the proofs. As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.

2）Combinatorics and Probability（组合和概率）

Counting is one of the basic mathematically related tasks we encounter on a day to day basis. The main question here is the following. If we need to count something, can we do anything better than just counting all objects one by one? Do we need to create a list of all phone numbers to ensure that there are enough phone numbers for everyone? Is there a way to tell that our algorithm will run in a reasonable time before implementing and actually running it? All these questions are addressed by a mathematical field called Combinatorics. In this course we discuss most standard combinatorial settings that can help to answer questions of this type. We will especially concentrate on developing the ability to distinguish these settings in real life and algorithmic problems. This will help the learner to actually implement new knowledge. Apart from that we will discuss recursive technique for counting that is important for algorithmic implementations. One of the main `consumers’ of Combinatorics is Probability Theory. This area is connected with numerous sides of life, on one hand being an important concept in everyday life and on the other hand being an indispensable tool in such modern and important fields as Statistics and Machine Learning. In this course we will concentrate on providing the working knowledge of basics of probability and a good intuition in this area. The practice shows that such an intuition is not easy to develop. In the end of the course we will create a program that successfully plays a tricky and very counterintuitive dice game. As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.

3）Introduction to Graph Theory（图论导论）

We invite you to a fascinating journey into Graph Theory — an area which connects the elegance of painting and the rigor of mathematics; is simple, but not unsophisticated. Graph Theory gives us, both an easy way to pictorially represent many major mathematical results, and insights into the deep theories behind them. In this course, among other intriguing applications, we will see how GPS systems find shortest routes, how engineers design integrated circuits, how biologists assemble genomes, why a political map can always be colored using a few colors. We will study Ramsey Theory which proves that in a large system, complete disorder is impossible! By the end of the course, we will implement an algorithm which finds an optimal assignment of students to schools. This algorithm, developed by David Gale and Lloyd S. Shapley, was later recognized by the conferral of Nobel Prize in Economics. As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.

4) Number Theory and Cryptography（数论和密码学）

We all learn numbers from the childhood. Some of us like to count, others hate it, but any person uses numbers everyday to buy things, pay for services, estimated time and necessary resources. People have been wondering about numbers’ properties for thousands of years. And for thousands of years it was more or less just a game that was only interesting for pure mathematicians. Famous 20th century mathematician G.H. Hardy once said “The Theory of Numbers has always been regarded as one of the most obviously useless branches of Pure Mathematics”. Just 30 years after his death, an algorithm for encryption of secret messages was developed using achievements of number theory. It was called RSA after the names of its authors, and its implementation is probably the most frequently used computer program in the word nowadays. Without it, nobody would be able to make secure payments over the internet, or even log in securely to e-mail and other personal services. In this short course, we will make the whole journey from the foundation to RSA in 4 weeks. By the end, you will be able to apply the basics of the number theory to encrypt and decrypt messages, and to break the code if one applies RSA carelessly. You will even pass a cryptographic quest! As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.

5）Solving Delivery Problem（解决旅行商问题）

http://coursegraph.com/coursera-delivery-problem

We’ll implement together an efficient program for a problem needed by delivery companies all over the world millions times per day — the travelling salesman problem. The goal in this problem is to visit all the given places as quickly as possible. How to find an optimal solution to this problem quickly? We still don’t have provably efficient algorithms for this difficult computational problem and this is the essence of the P versus NP problem, the most important open question in Computer Science. Still, we’ll implement several efficient solutions for real world instances of the travelling salesman problem. While designing these solutions, we will rely heavily on the material learned in the courses of the specialization: proof techniques, combinatorics, probability, graph theory. We’ll see several examples of using discrete mathematics ideas to get more and more efficient solutions.

6 伦敦帝国理工学院 Mathematics for Machine Learning Specialization（面向机器学习的数学专项课程系列）

http://coursegraph.com/coursera-specializations-mathematics-machine-learning

伦敦帝国理工学院的面向机器学习的数学专项课程系列（Mathematics for Machine Learning Specialization），该系列包含3门子课程，涵盖线性代数，多变量微积分，以及主成分分析（PCA），这个专项系列课程的目标是弥补数学与机器学习以及数据科学鸿沟，感兴趣的同学可以关注：Mathematics for Machine Learning。Learn about the prerequisite mathematics for applications in data science and machine learning

For a lot of higher level courses in Machine Learning and Data Science, you find you need to freshen up on the basics in maths - stuff you may have studied before in school or university, but which was taught in another context, or not very intuitively, such that you struggle to relate it to how it’s used in Computer Science. This specialisation aims to bridge that gap, getting you up to speed in the underlying maths, building an intuitive understanding, and relating it to Machine Learning and Data Science. In the first course on Linear Algebra we look at what linear algebra is and how it relates to data. Then we look through what vectors and matrices are and how to work with them. The second course, Multivariate Calculus, builds on this to look at how to optimise fitting functions to get good fits to data. It starts from introductory calculus and then uses the matrices and vectors from the first course to look at data fitting. The third course, Dimensionality Reduction with Principal Components Analysis, uses the maths from the first two courses to do simple optimisation for the situation where you don’t have an understanding of how the data variables relate to each other. At the end of this specialisation you will have gained the prerequisite mathematical knowledge to continue your journey and take more advanced courses in machine learning.

1） Mathematics for Machine Learning: Linear Algebra（面向机器学习的数学：线性代数）

http://coursegraph.com/coursera-linear-algebra-machine-learning

In this course on Linear Algebra we look at what linear algebra is and how it relates to vectors and matrices. Then we look through what vectors and matrices are and how to work with them, including the knotty problem of eigenvalues and eigenvectors, and how to use these to solve problems. Finally we look at how to use these to do fun things with datasets - like how to rotate images of faces and how to extract eigenvectors to look at how the Pagerank algorithm works. Since we're aiming at data-driven applications, we'll be implementing some of these ideas in code, not just on pencil and paper. Towards the end of the course, you'll write code blocks and encounter Jupyter notebooks in Python, but don't worry, these will be quite short, focussed on the concepts, and will guide you through if you’ve not coded before. At the end of this course you will have an intuitive understanding of vectors and matrices that will help you bridge the gap into linear algebra problems, and how to apply these concepts to machine learning.

2）Mathematics for Machine Learning: Multivariate Calculus（面向机器学习的数学：多变量微积分）

http://coursegraph.com/coursera-multivariate-calculus-machine-learning

This course offers a brief introduction to the multivariate calculus required to build many common machine learning techniques. We start at the very beginning with a refresher on the “rise over run” formulation of a slope, before converting this to the formal definition of the gradient of a function. We then start to build up a set of tools for making calculus easier and faster. Next, we learn how to calculate vectors that point up hill on multidimensional surfaces and even put this into action using an interactive game. We take a look at how we can use calculus to build approximations to functions, as well as helping us to quantify how accurate we should expect those approximations to be. We also spend some time talking about where calculus comes up in the training of neural networks, before finally showing you how it is applied in linear regression models. This course is intended to offer an intuitive understanding of calculus, as well as the language necessary to look concepts up yourselves when you get stuck. Hopefully, without going into too much detail, you’ll still come away with the confidence to dive into some more focused machine learning courses in future.

3）Mathematics for Machine Learning: PCA（面向机器学习的数学：主成分分析）

http://coursegraph.com/coursera-pca-machine-learning

This course introduces the mathematical foundations to derive Principal Component Analysis (PCA), a fundamental dimensionality reduction technique. We'll cover some basic statistics of data sets, such as mean values and variances, we'll compute distances and angles between vectors using inner products and derive orthogonal projections of data onto lower-dimensional subspaces. Using all these tools, we'll then derive PCA as a method that minimizes the average squared reconstruction error between data points and their reconstruction. At the end of this course, you'll be familiar with important mathematical concepts and you can implement PCA all by yourself. If you’re struggling, you’ll find a set of jupyter notebooks that will allow you to explore properties of the techniques and walk you through what you need to do to get on track. If you are already an expert, this course may refresh some of your knowledge.

注：本文首发“课程图谱博客”：http://blog.coursegraph.com

同步发布到这里, 本文链接地址：http://blog.coursegraph.com/coursera上数学类相关课程数学公开课汇总推荐 http://blog.coursegraph.com/?p=804

Python是深度学习时代的语言，Coursera上有很多Python课程，从Python入门到精通，从Python基础语法到应用Python，满足各个层次的需求，以下是Coursera上的Python课程整理，仅供参考，这里也会持续更新。

1. 密歇根大学的“Python for Everybody Specialization（人人都可以学习的Python专项课程）”

这个系列对于学习者的编程背景和数学要求几乎为零，非常适合Python入门学习。这个系列也是Coursera上最受欢迎的Python学习系列课程，强烈推荐。这个Python系列的目标是“通过Python学习编程并分析数据，开发用于采集，清洗，分析和可视化数据的程序（Learn to Program and Analyze Data with Python-Develop programs to gather, clean, analyze, and visualize data.” ，以下是关于这个系列的简介：

This Specialization builds on the success of the Python for Everybody course and will introduce fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. In the Capstone Project, you’ll use the technologies learned throughout the Specialization to design and create your own applications for data retrieval, processing, and visualization.

这个系列包含4门子课程和1门毕业项目课程，包括Python入门基础，Python数据结构, 使用Python获取网络数据（Python爬虫），在Python中使用数据库以及Python数据可视化等。以下是具体子课程的介绍：

1.1 Programming for Everybody (Getting Started with Python)

Python入门级课程，这门课程暂且翻译为“人人都可以学编程-从Python开始”，如果没有任何编程基础，就从这门课程开始吧：

This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course. This course will cover Chapters 1-5 of the textbook “Python for Everybody”. Once a student completes this course, they will be ready to take more advanced programming courses. This course covers Python 3.

1.2 Python Data Structures（Python数据结构）

Python基础课程，这门课程的目标是介绍Python语言的核心数据结构（This course will introduce the core data structures of the Python programming language.），关于这门课程：

This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis. This course will cover Chapters 6-10 of the textbook “Python for Everybody”. This course covers Python 3.

1.3 Using Python to Access Web Data（使用Python获取网页数据--Python爬虫）

Python应用课程，只有使用Python才能学以致用，这门课程的目标是展示如何通过爬取和分析网页数据将互联网作为数据的源泉（This course will show how one can treat the Internet as a source of data）：

This course will show how one can treat the Internet as a source of data. We will scrape, parse, and read web data as well as access data using web APIs. We will work with HTML, XML, and JSON data formats in Python. This course will cover Chapters 11-13 of the textbook “Python for Everybody”. To succeed in this course, you should be familiar with the material covered in Chapters 1-10 of the textbook and the first two courses in this specialization. These topics include variables and expressions, conditional execution (loops, branching, and try/except), functions, Python data structures (strings, lists, dictionaries, and tuples), and manipulating files. This course covers Python 3.

1.4 Using Databases with Python(Python数据库）

Python应用课程，在Python中使用数据库。这门课程的目标是在Python中学习SQL，使用SQLite3作为抓取数据的存储数据库：

This course will introduce students to the basics of the Structured Query Language (SQL) as well as basic database design for storing data as part of a multi-step data gathering, analysis, and processing effort. The course will use SQLite3 as its database. We will also build web crawlers and multi-step data gathering and visualization processes. We will use the D3.js library to do basic data visualization. This course will cover Chapters 14-15 of the book “Python for Everybody”. To succeed in this course, you should be familiar with the material covered in Chapters 1-13 of the textbook and the first three courses in this specialization. This course covers Python 3.

1.5 Capstone: Retrieving, Processing, and Visualizing Data with Python（毕业项目课程：使用Python获取，处理和可视化数据）

Python应用实践课程，这是这个系列的毕业项目课程，目的是通过开发一系列Python应用项目让学生熟悉Python抓取，处理和可视化数据的流程。

In the capstone, students will build a series of applications to retrieve, process and visualize data using Python. The projects will involve all the elements of the specialization. In the first part of the capstone, students will do some visualizations to become familiar with the technologies in use and then will pursue their own project to visualize some other data that they have or can find. Chapters 15 and 16 from the book “Python for Everybody” will serve as the backbone for the capstone. This course covers Python 3.

2. 多伦多大学的编程入门课程"Learn to Program: The Fundamentals(学习编程：基础) "

Python入门级课程。这门课程以Python语言传授编程入门知识，实为零基础的Python入门课程。感兴趣的同学可以参考课程图谱上的老课程评论 ：http://coursegraph.com/coursera_programming1 ，之前一个同学的评价是 “两个老师语速都偏慢，讲解细致，又有可视化工具Python Visualizer用于详细了解程序具体执行步骤，可以说是零基础学习python编程的最佳选择。”

Behind every mouse click and touch-screen tap, there is a computer program that makes things happen. This course introduces the fundamental building blocks of programming and teaches you how to write fun and useful programs using the Python language.

3. 莱斯大学的Python专项课程系列：Introduction to Scripting in Python Specialization

入门级Python学习系列课程，涵盖Python基础， Python数据表示, Python数据分析, Python数据可视化等子课程，比较适合Python入门。这门课程的目标是让学生可以在处理实际问题是使用Python解决问题：Launch Your Career in Python Programming-Master the core concepts of scripting in Python to enable you to solve practical problems.

This specialization is intended for beginners who would like to master essential programming skills. Through four courses, you will cover key programming concepts in Python 3 which will prepare you to use Python to perform common scripting tasks. This knowledge will provide a solid foundation towards a career in data science, software engineering, or other disciplines involving programming.

这个系列包含4门子课程，以下是具体子课程的介绍：

3.1 Python Programming Essentials（Python编程基础）

Python入门基础课程，这门课程将讲授Python编程基础知识，包括表达式，变量，函数等，目标是让用户熟练使用Python:

This course will introduce you to the wonderful world of Python programming! We'll learn about the essential elements of programming and how to construct basic Python programs. We will cover expressions, variables, functions, logic, and conditionals, which are foundational concepts in computer programming. We will also teach you how to use Python modules, which enable you to benefit from the vast array of functionality that is already a part of the Python language. These concepts and skills will help you to begin to think like a computer programmer and to understand how to go about writing Python programs. By the end of the course, you will be able to write short Python programs that are able to accomplish real, practical tasks. This course is the foundation for building expertise in Python programming. As the first course in a specialization, it provides the necessary building blocks for you to succeed at learning to write more complex Python programs. This course uses Python 3. While many Python programs continue to use Python 2, Python 3 is the future of the Python programming language. This first course will use a Python 3 version of the CodeSkulptor development environment, which is specifically designed to help beginning programmers learn quickly. CodeSkulptor runs within any modern web browser and does not require you to install any software, allowing you to start writing and running small programs immediately. In the later courses in this specialization, we will help you to move to more sophisticated desktop development environments.

3.2 Python Data Representations（Python数据表示）

Python入门基础课程，这门课程依然关注Python的基础知识，包括Python字符串，列表等，以及Python文件操作：

This course will continue the introduction to Python programming that started with Python Programming Essentials. We'll learn about different data representations, including strings, lists, and tuples, that form the core of all Python programs. We will also teach you how to access files, which will allow you to store and retrieve data within your programs. These concepts and skills will help you to manipulate data and write more complex Python programs. By the end of the course, you will be able to write Python programs that can manipulate data stored in files. This will extend your Python programming expertise, enabling you to write a wide range of scripts using Python This course uses Python 3. While most Python programs continue to use Python 2, Python 3 is the future of the Python programming language. This course introduces basic desktop Python development environments, allowing you to run Python programs directly on your computer. This choice enables a smooth transition from online development environments.

3.3 Python Data Analysis(Python数据分析）

Python基础课程，这门课程将讲授通过Python读取和分析表格数据和结构化数据等，例如TCSV文件等：

This course will continue the introduction to Python programming that started with Python Programming Essentials and Python Data Representations. We'll learn about reading, storing, and processing tabular data, which are common tasks. We will also teach you about CSV files and Python's support for reading and writing them. CSV files are a generic, plain text file format that allows you to exchange tabular data between different programs. These concepts and skills will help you to further extend your Python programming knowledge and allow you to process more complex data. By the end of the course, you will be comfortable working with tabular data in Python. This will extend your Python programming expertise, enabling you to write a wider range of scripts using Python. This course uses Python 3. While most Python programs continue to use Python 2, Python 3 is the future of the Python programming language. This course uses basic desktop Python development environments, allowing you to run Python programs directly on your computer.

3.4 Python Data Visualization（Python数据可视化）

Python应用课程，这门课程将基于前3门课程学习的Python知识，抓取网络数据，然后清洗，处理和分析数据，并最终可视化呈现数据：

This if the final course in the specialization which builds upon the knowledge learned in Python Programming Essentials, Python Data Representations, and Python Data Analysis. We will learn how to install external packages for use within Python, acquire data from sources on the Web, and then we will clean, process, analyze, and visualize that data. This course will combine the skills learned throughout the specialization to enable you to write interesting, practical, and useful programs. By the end of the course, you will be comfortable installing Python packages, analyzing existing data, and generating visualizations of that data. This course will complete your education as a scripter, enabling you to locate, install, and use Python packages written by others. You will be able to effectively utilize tools and packages that are widely available to amplify your effectiveness and write useful programs.

4. 莱斯大学的计算（机）基础专项课程系列：Fundamentals of Computing Specialization

入门级Python编程学习课程系列，这个系列覆盖了大部分莱斯大学一年级计算机科学新生的学习材料，学生通过Python学习现代编程语言技巧，并将这些技巧应用到20个左右的有趣的编程项目中。

This Specialization covers much of the material that first-year Computer Science students take at Rice University. Students learn sophisticated programming skills in Python from the ground up and apply these skills in building more than 20 fun projects. The Specialization concludes with a Capstone exam that allows the students to demonstrate the range of knowledge that they have acquired in the Specialization.

这个系列包括Python交互式编程设计，计算原理，算法思维等6门课程和1门毕业项目课程，目标是让学生像计算机科学家一样编程和思考（Learn how to program and think like a Computer Scientist），以下是子课程的相关介绍：

4.1 An Introduction to Interactive Programming in Python (Part 1)（Python交互式编程导论上）

Python入门级课程，这门课程将讲授Python编程基础知识，例如普通表达式，条件表达式和函数，并用这些知识构建一个简单的交互式应用。

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse. In part 1 of this course, we will introduce the basic elements of programming (such as expressions, conditionals, and functions) and then use these elements to create simple interactive applications such as a digital stopwatch. Part 1 of this class will culminate in building a version of the classic arcade game "Pong".

4.2 An Introduction to Interactive Programming in Python (Part 2)（Python交互式编程导论下）

Python入门级课程，这门课程将继续讲授Python基础知识，例如列表，词典和循环，并将使用这些知识构建一个简单的游戏例如Blackjack:

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse. In part 2 of this course, we will introduce more elements of programming (such as list, dictionaries, and loops) and then use these elements to create games such as Blackjack. Part 1 of this class will culminate in building a version of the classic arcade game "Asteroids". Upon completing this course, you will be able to write small, but interesting Python programs. The next course in the specialization will begin to introduce a more principled approach to writing programs and solving computational problems that will allow you to write larger and more complex programs.

4.3 Principles of Computing (Part 1)（计算原理上）

编程基础课程，这门课程聚焦在了编程的基础上，包括编码标准和测试，数学基础包括概率和组合等。

This two-part course builds upon the programming skills that you learned in our Introduction to Interactive Programming in Python course. We will augment those skills with both important programming practices and critical mathematical problem solving skills. These skills underlie larger scale computational problem solving and programming. The main focus of the class will be programming weekly mini-projects in Python that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games. In part 1 of this course, the programming aspect of the class will focus on coding standards and testing. The mathematical portion of the class will focus on probability, combinatorics, and counting with an eye towards practical applications of these concepts in Computer Science. Recommended Background - Students should be comfortable writing small (100+ line) programs in Python using constructs such as lists, dictionaries and classes and also have a high-school math background that includes algebra and pre-calculus.

4.4 Principles of Computing (Part 2)（计算原理下）

编程基础课程，这门课程聚焦在搜索、排序、递归等主题上：

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games. In part 2 of this course, the programming portion of the class will focus on concepts such as recursion, assertions, and invariants. The mathematical portion of the class will focus on searching, sorting, and recursive data structures. Upon completing this course, you will have a solid foundation in the principles of computation and programming. This will prepare you for the next course in the specialization, which will begin to introduce a structured approach to developing and analyzing algorithms. Developing such algorithmic thinking skills will be critical to writing large scale software and solving real world computational problems.

4.5 Algorithmic Thinking (Part 1)（算法思维上）

编程基础课程，这门课程聚焦在算法思维的培养上，讲授图算法的相关概念并用Python实现:

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part course builds on the principles that you learned in our Principles of Computing course and is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to real-world computational problems. In part 1 of this course, we will study the notion of algorithmic efficiency and consider its application to several problems from graph theory. As the central part of the course, students will implement several important graph algorithms in Python and then use these algorithms to analyze two large real-world data sets. The main focus of these tasks is to understand interaction between the algorithms and the structure of the data sets being analyzed by these algorithms. Recommended Background - Students should be comfortable writing intermediate size (300+ line) programs in Python and have a basic understanding of searching, sorting, and recursion. Students should also have a solid math background that includes algebra, pre-calculus and a familiarity with the math concepts covered in "Principles of Computing".

4.6 Algorithmic Thinking (Part 2)（算法思维下）

编程基础课程，这门课程聚焦在培养学生的算法思维，并了解一些高级算法主题，例如分治法，动态规划等：

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems. In part 2 of this course, we will study advanced algorithmic techniques such as divide-and-conquer and dynamic programming. As the central part of the course, students will implement several algorithms in Python that incorporate these techniques and then use these algorithms to analyze two large real-world data sets. The main focus of these tasks is to understand interaction between the algorithms and the structure of the data sets being analyzed by these algorithms. Once students have completed this class, they will have both the mathematical and programming skills to analyze, design, and program solutions to a wide range of computational problems. While this class will use Python as its vehicle of choice to practice Algorithmic Thinking, the concepts that you will learn in this class transcend any particular programming language.

4.7 The Fundamentals of Computing Capstone Exam（计算基础毕业项目课程）

Python应用课程，基于以上子课程的学习，计算基础毕业项目课程将用Python和所学的知识完成 20+ 项目：

While most specializations on Coursera conclude with a project-based course, students in the "Fundamentals of Computing" specialization have completed more than 20+ projects during the first six courses of the specialization. Given that much of the material in these courses is reused from session to session, our goal in this capstone class is to provide a conclusion to the specialization that allows each student an opportunity to demonstrate their individual mastery of the material in the specialization. With this objective in mind, the focus in this Capstone class will be an exam whose questions are updated periodically. This approach is designed to help insure that each student is solving the exam problems on his/her own without outside help. For students that have done their own work, we do not anticipate that the exam will be particularly hard. However, those students who have relied too heavily on outside help in previous classes may have a difficult time. We believe that this approach will increase the value of the Certificate for this specialization.

5. 密歇根大学的 Applied Data Science with Python（Python数据科学应用专项课程系列）

Python应用系列课程，这个系列的目标主要是通过Python编程语言介绍数据科学的相关领域，包括应用统计学，机器学习，信息可视化，文本分析和社交网络分析等知识，并结合一些流行的Python工具包，例如pandas, matplotlib, scikit-learn, nltk以及networkx等Python工具。

The 5 courses in this University of Michigan specialization introduce learners to data science through the python programming language. This skills-based specialization is intended for learners who have basic a python or programming background, and want to apply statistical, machine learning, information visualization, text analysis, and social network analysis techniques through popular python toolkits such as pandas, matplotlib, scikit-learn, nltk, and networkx to gain insight into their data. Introduction to Data Science in Python (course 1), Applied Plotting, Charting & Data Representation in Python (course 2), and Applied Machine Learning in Python (course 3) should be taken in order and prior to any other course in the specialization. After completing those, courses 4 and 5 can be taken in any order. All 5 are required to earn a certificate.

这个系列课程有5门课程，包括Python数据科学导论课程（Introduction to Data Science in Python），Python数据可视化（Applied Plotting, Charting & Data Representation in Python），Python机器学习(Applied Machine Learning in Python) ，Python文本挖掘(Applied Text Mining in Python) , Python社交网络分析（Applied Social Network Analysis in Python），以下是具体子课程的介绍：

5.1 Introduction to Data Science in Python（Python数据科学导论）

Python基础和应用课程，这门课程从Python基础讲起，然后通过pandas数据科学库介绍DataFrame等数据分析中的核心数据结构概念，让学生学会操作和分析表格数据并学会运行基础的统计分析工具。

This course will introduce the learner to the basics of the python programming environment, including how to download and install python, expected fundamental python programming techniques, and how to find help with python programming questions. The course will also introduce data manipulation and cleaning techniques using the popular python pandas data science library and introduce the abstraction of the DataFrame as the central data structure for data analysis. The course will end with a statistics primer, showing how various statistical measures can be applied to pandas DataFrames. By the end of the course, students will be able to take tabular data, clean it, manipulate it, and run basic inferential statistical analyses. This course should be taken before any of the other Applied Data Science with Python courses: Applied Plotting, Charting & Data Representation in Python, Applied Machine Learning in Python, Applied Text Mining in Python, Applied Social Network Analysis in Python.

5.2 Applied Plotting, Charting & Data Representation in Python（Python数据可视化）

Python应用课程，这门课程聚焦在通过使用matplotlib库进行数据图表的绘制和可视化呈现：

This course will introduce the learner to information visualization basics, with a focus on reporting and charting using the matplotlib library. The course will start with a design and information literacy perspective, touching on what makes a good and bad visualization, and what statistical measures translate into in terms of visualizations. The second week will focus on the technology used to make visualizations in python, matplotlib, and introduce users to best practices when creating basic charts and how to realize design decisions in the framework. The third week will describe the gamut of functionality available in matplotlib, and demonstrate a variety of basic statistical charts helping learners to identify when a particular method is good for a particular problem. The course will end with a discussion of other forms of structuring and visualizing data. This course should be taken after Introduction to Data Science in Python and before the remainder of the Applied Data Science with Python courses: Applied Machine Learning in Python, Applied Text Mining in Python, and Applied Social Network Analysis in Python.

5.3 Applied Machine Learning in Python（Python机器学习）

Python应用课程，这门课程主要聚焦在通过Python应用机器学习，包括机器学习和统计学的区别，机器学习工具包scikit-learn的介绍，有监督学习和无监督学习，数据泛化问题（例如交叉验证和过拟合）等。

This course will introduce the learner to applied machine learning, focusing more on the techniques and methods than on the statistics behind these methods. The course will start with a discussion of how machine learning is different than descriptive statistics, and introduce the scikit learn toolkit. The issue of dimensionality of data will be discussed, and the task of clustering data, as well as evaluating those clusters, will be tackled. Supervised approaches for creating predictive models will be described, and learners will be able to apply the scikit learn predictive modelling methods while understanding process issues related to data generalizability (e.g. cross validation, overfitting). The course will end with a look at more advanced techniques, such as building ensembles, and practical limitations of predictive models. By the end of this course, students will be able to identify the difference between a supervised (classification) and unsupervised (clustering) technique, identify which technique they need to apply for a particular dataset and need, engineer features to meet that need, and write python code to carry out an analysis. This course should be taken after Introduction to Data Science in Python and Applied Plotting, Charting & Data Representation in Python and before Applied Text Mining in Python and Applied Social Analysis in Python.

5.4 Applied Text Mining in Python（Python文本挖掘）

Python应用课程，这门课程主要聚焦在文本挖掘和文本分析基础，包括正则表达式，文本清洗，文本预处理等，并结合NLTK讲授自然语言处理的相关知识，例如文本分类，主题模型等。

This course will introduce the learner to text mining and text manipulation basics. The course begins with an understanding of how text is handled by python, the structure of text both to the machine and to humans, and an overview of the nltk framework for manipulating text. The second week focuses on common manipulation needs, including regular expressions (searching for text), cleaning text, and preparing text for use by machine learning processes. The third week will apply basic natural language processing methods to text, and demonstrate how text classification is accomplished. The final week will explore more advanced methods for detecting the topics in documents and grouping them by similarity (topic modelling). This course should be taken after: Introduction to Data Science in Python, Applied Plotting, Charting & Data Representation in Python, and Applied Machine Learning in Python.

5.5 Applied Social Network Analysis in Python（Python社交网络分析）

Python应用课程，这门课程通过Python工具包 NetworkX 介绍社交网络分析的相关知识。

This course will introduce the learner to network analysis through the NetworkX library. The course begins with an understanding of what network analysis is and motivations for why we might model phenomena as networks. The second week introduces the concept of connectivity and network robustness.. The third week will explore ways of measuring the importance or centrality of a node in a network. The final week will explore the evolution of networks over time and cover models of network generation and the link prediction problem. This course should be taken after: Introduction to Data Science in Python, Applied Plotting, Charting & Data Representation in Python, and Applied Machine Learning in Python.

您可以继续在课程图谱上挖掘Coursera上新的Python课程，也欢迎推荐到这里。

注：本文首发“课程图谱博客”：http://blog.coursegraph.com ，同步发布到这里，原文链接地址：http://blog.coursegraph.com/coursera%E4%B8%8Apython%E8%AF%BE%E7%A8%8B%EF%BC%88%E5%85%AC%E5%BC%80%E8%AF%BE%EF%BC%89%E6%B1%87%E6%80%BB%E6%8E%A8%E8%8D%90%EF%BC%9A%E4%BB%8Epython%E5%85%A5%E9%97%A8%E5%88%B0%E5%BA%94%E7%94%A8python