标签归档:Python编程

一键收藏自然语言处理学习资源大礼包

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

获取方法很简单,关注AINLP公众号,后台回复关键词:ALL4NLP,一键打包收藏NLP学习资源:

这些自然语言处理相关资源列表如下,欢迎收藏:

相关的资源的过往文章大致介绍如下,不限于下述文章:

斯坦福大学自然语言处理经典入门课程-Dan Jurafsky 和 Chris Manning 教授授课

哥伦比亚大学经典自然语言处理公开课,数学之美中盛赞的柯林斯(Michael Collins)教授授课

认真推荐一份深度学习笔记:简约而不简单

Andrew Ng 老师新推的通俗人工智能课程以及其他相关资料

那些值得推荐和收藏的线性代数学习资源

Philipp Koehn大神的神经网络机器翻译学习资料:NMT Book

凸优化及无约束最优化相关资料

斯坦福大学深度学习自然语言处理课程CS224N 2019 全20个视频分享

自然语言处理经典书籍《Speech and Language Processing》第三版最新版下载(含第二版)

强化学习圣经:《强化学习导论》第二版(附PDF下载)

新书下载 | 面向机器学习的数学(Mathematics for Machine Learning)

Springer面向公众开放正版电子书籍,附65本数学、编程、数据挖掘、数据科学、数据分析、机器学习、深度学习、人工智能相关书籍链接及打包下载

最后,欢迎关注AINLP,回复"all4nlp"获取:

Springer面向公众开放正版电子书籍,附65本数学、编程、数据挖掘、数据科学、数据分析、机器学习、深度学习、人工智能相关书籍链接及打包下载

施普林格(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)。

看了一下这份书单包括的书籍还是很棒的,包括数学类(多元微积分和几何、计算几何、偏微分、代数、线性代数、线性规划、概率和统计、统计学、统计学习、数学建模等)、编程类(数据结构与算法、Python编程、R语言、编程语言基础、面向对象分析和设计、数据库等)、数据挖掘、数据分析、数据科学、机器学习、人工智能、深度学习、计算机视觉,机器人等相关的电子书,甚至包括如何学习LaTex,远比想象的丰富很多。

这份清单的第一本书籍就是经典的“统计学习基础(ESL,The Elements of Statistical Learning)”, 进入书籍页面后,直接点击“Download PDF” 即可单独下载该书电子版:

Reddit上有网友提供了一个Google Drive的打包下载链接,包括其中64本书籍的PDF打包下载,可以直接下载:

https://www.reddit.com/r/opendirectories/comments/g91u12/google_drive_with_64_books_from_springer_about
https://drive.google.com/drive/folders/1rDJvZsz8EEuVVgZ43pwSvFRRKUo2TIIY

如果还是不方便,可以关注AINLP公众号,回复"sprg"获取百度网盘链接:

这份书籍清单和链接如下,我简单翻译了一下书名,供感兴趣的朋友参考:

The Elements of Statistical Learning(统计学习基础)

Trevor Hastie, Robert Tibshirani, Jerome Friedman

http://link.springer.com/openurl?genre=book&isbn=978-0-387-84858-7

Introductory Time Series with R(时间序列导论-基于R语言讲解)

Paul S.P. Cowpertwait, Andrew V. Metcalfe

http://link.springer.com/openurl?genre=book&isbn=978-0-387-88698-5

A Beginner’s Guide to R(R语言初学者指南)

Alain Zuur, Elena N. Ieno, Erik Meesters

http://link.springer.com/openurl?genre=book&isbn=978-0-387-93837-0

Introduction to Evolutionary Computing(进化计算导论)

A.E. Eiben, J.E. Smith

http://link.springer.com/openurl?genre=book&isbn=978-3-662-44874-8

Data Analysis(数据分析)

Siegmund Brandt

http://link.springer.com/openurl?genre=book&isbn=978-3-319-03762-2

Linear and Nonlinear Programming(线性和非线性规划)

David G. Luenberger, Yinyu Ye

http://link.springer.com/openurl?genre=book&isbn=978-3-319-18842-3

Introduction to Partial Differential Equations(偏微分方程简介)

David Borthwick

http://link.springer.com/openurl?genre=book&isbn=978-3-319-48936-0

Fundamentals of Robotic Mechanical Systems(机器人机械系统基础)

Jorge Angeles

http://link.springer.com/openurl?genre=book&isbn=978-3-319-01851-5

Data Structures and Algorithms with Python(Python数据结构和算法)

Kent D. Lee, Steve Hubbard

http://link.springer.com/openurl?genre=book&isbn=978-3-319-13072-9

Introduction to Partial Differential Equations(偏微分方程简介)

Peter J. Olver

http://link.springer.com/openurl?genre=book&isbn=978-3-319-02099-0

Methods of Mathematical Modelling(数学建模方法)

Thomas Witelski, Mark Bowen

http://link.springer.com/openurl?genre=book&isbn=978-3-319-23042-9

LaTeX in 24 Hours(24小时掌握LaTeX)

Dilip Datta

http://link.springer.com/openurl?genre=book&isbn=978-3-319-47831-9

Introduction to Statistics and Data Analysis(统计与数据分析导论)

Christian Heumann, Michael Schomaker, Shalabh

http://link.springer.com/openurl?genre=book&isbn=978-3-319-46162-5

Principles of Data Mining(数据挖掘原理)

Max Bramer

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-7307-6

Computer Vision(计算机视觉)

Richard Szeliski

http://link.springer.com/openurl?genre=book&isbn=978-1-84882-935-0

Data Mining(数据挖掘)

Charu C. Aggarwal

http://link.springer.com/openurl?genre=book&isbn=978-3-319-14142-8

Computational Geometry(计算几何)

Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars

http://link.springer.com/openurl?genre=book&isbn=978-3-540-77974-2

Robotics, Vision and Control(机器人,视觉与控制)

Peter Corke

http://link.springer.com/openurl?genre=book&isbn=978-3-319-54413-7

Statistical Analysis and Data Display(统计分析和数据展示)

Richard M. Heiberger, Burt Holland

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-2122-5

Statistics and Data Analysis for Financial Engineering(金融工程统计与数据分析)

David Ruppert, David S. Matteson

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-2614-5

Stochastic Processes and Calculus(随机过程与微积分)

Uwe Hassler

http://link.springer.com/openurl?genre=book&isbn=978-3-319-23428-1

Statistical Analysis of Clinical Data on a Pocket Calculator(袖珍计算器上的临床数据统计分析)

Ton J. Cleophas, Aeilko H. Zwinderman

http://link.springer.com/openurl?genre=book&isbn=978-94-007-1211-9

Clinical Data Analysis on a Pocket Calculator(袖珍计算器的临床数据分析)

Ton J. Cleophas, Aeilko H. Zwinderman

http://link.springer.com/openurl?genre=book&isbn=978-3-319-27104-0

The Data Science Design Manual(数据科学设计手册)

Steven S. Skiena

http://link.springer.com/openurl?genre=book&isbn=978-3-319-55444-0

An Introduction to Machine Learning(机器学习导论)

Miroslav Kubat

http://link.springer.com/openurl?genre=book&isbn=978-3-319-63913-0

Guide to Discrete Mathematics(离散数学指南)

Gerard O’Regan

http://link.springer.com/openurl?genre=book&isbn=978-3-319-44561-8

Introduction to Time Series and Forecasting(时间序列和预测简介)

Peter J. Brockwell, Richard A. Davis

http://link.springer.com/openurl?genre=book&isbn=978-3-319-29854-2

Multivariate Calculus and Geometry(多元微积分和几何)

Seán Dineen

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-6419-7

Statistics and Analysis of Scientific Data(科学数据统计与分析)

Massimiliano Bonamente

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-6572-4

Modelling Computing Systems(建模计算系统)

Faron Moller, Georg Struth

http://link.springer.com/openurl?genre=book&isbn=978-1-84800-322-4

Search Methodologies(搜索方法论)

Edmund K. Burke, Graham Kendall

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-6940-7

Linear Algebra Done Right(线性代数应该这样学)

Sheldon Axler

http://link.springer.com/openurl?genre=book&isbn=978-3-319-11080-6

Linear Algebra(线性代数)

Jörg Liesen, Volker Mehrmann

http://link.springer.com/openurl?genre=book&isbn=978-3-319-24346-7

Algebra(代数)

Serge Lang

http://link.springer.com/openurl?genre=book&isbn=978-1-4613-0041-0

Understanding Analysis(理解分析学)

Stephen Abbott

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-2712-8

Linear Programming(线性规划)

Robert J Vanderbei

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-7630-6

Understanding Statistics Using R(通过R语言学习统计学)

Randall Schumacker, Sara Tomek

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-6227-9

An Introduction to Statistical Learning(统计学习导论)

Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-7138-7

Statistical Learning from a Regression Perspective(回归视角的统计学习)

Richard A. Berk

http://link.springer.com/openurl?genre=book&isbn=978-3-319-44048-4

Applied Partial Differential Equations(应用偏微分方程)

J. David Logan

http://link.springer.com/openurl?genre=book&isbn=978-3-319-12493-3

Robotics(机器人技术)

Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, Giuseppe Oriolo

http://link.springer.com/openurl?genre=book&isbn=978-1-84628-642-1

Regression Modeling Strategies(回归建模策略)

Frank E. Harrell , Jr.

http://link.springer.com/openurl?genre=book&isbn=978-3-319-19425-7

A Modern Introduction to Probability and Statistics(概率统计的现代视角导论)

F.M. Dekking, C. Kraaikamp, H.P. Lopuhaä, L.E. Meester

http://link.springer.com/openurl?genre=book&isbn=978-1-84628-168-6

The Python Workbook(Python手册)

Ben Stephenson

http://link.springer.com/openurl?genre=book&isbn=978-3-319-14240-1

Machine Learning in Medicine — a Complete Overview(医学中的机器学习-完整概述)

Ton J. Cleophas, Aeilko H. Zwinderman

http://link.springer.com/openurl?genre=book&isbn=978-3-319-15195-3

Object-Oriented Analysis, Design and Implementation(面向对象的分析,设计与实现)

Brahma Dathan, Sarnath Ramnath

http://link.springer.com/openurl?genre=book&isbn=978-3-319-24280-4

Introduction to Data Science(数据科学导论)

Laura Igual, Santi Seguí

http://link.springer.com/openurl?genre=book&isbn=978-3-319-50017-1

Applied Predictive Modeling(应用预测建模)

Max Kuhn, Kjell Johnson

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-6849-3

Python For ArcGIS(面向ArcGIS的Python指南)

Laura Tateosian

http://link.springer.com/openurl?genre=book&isbn=978-3-319-18398-5

Concise Guide to Databases(简明数据库指南)

Peter Lake, Paul Crowther

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-5601-7

Digital Image Processing(数字图像处理)

Wilhelm Burger, Mark J. Burge

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-6684-9

Bayesian Essentials with R(通过R学习贝叶斯基础)

Jean-Michel Marin, Christian P. Robert

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-8687-9

Robotics, Vision and Control(机器人,视觉与控制)

Peter Corke

http://link.springer.com/openurl?genre=book&isbn=978-3-642-20144-8

Foundations of Programming Languages(编程语言基础)

Kent D. Lee

http://link.springer.com/openurl?genre=book&isbn=978-3-319-70790-7

Introduction to Artificial Intelligence(人工智能导论)

Wolfgang Ertel

http://link.springer.com/openurl?genre=book&isbn=978-3-319-58487-4

Introduction to Deep Learning(深度学习导论)

Sandro Skansi

http://link.springer.com/openurl?genre=book&isbn=978-3-319-73004-2

Linear Algebra and Analytic Geometry for Physical Sciences(物理科学的线性代数和解析几何)

Giovanni Landi, Alessandro Zampini

http://link.springer.com/openurl?genre=book&isbn=978-3-319-78361-1

Applied Linear Algebra(应用线性代数)

Peter J. Olver, Chehrzad Shakiban

http://link.springer.com/openurl?genre=book&isbn=978-3-319-91041-3

Neural Networks and Deep Learning(神经网络与深度学习)

Charu C. Aggarwal

http://link.springer.com/openurl?genre=book&isbn=978-3-319-94463-0

Data Science and Predictive Analytics(数据科学与预测分析)

Ivo D. Dinov

http://link.springer.com/openurl?genre=book&isbn=978-3-319-72347-1

Analysis for Computer Scientists(面向计算机科学家的分析学)

Michael Oberguggenberger, Alexander Ostermann

http://link.springer.com/openurl?genre=book&isbn=978-3-319-91155-7

Excel Data Analysis(Excel数据分析)

Hector Guerrero

http://link.springer.com/openurl?genre=book&isbn=978-3-030-01279-3

A Beginners Guide to Python 3 Programming(Python 3编程入门指南)

John Hunt

http://link.springer.com/openurl?genre=book&isbn=978-3-030-20290-3

Advanced Guide to Python 3 Programming(Python 3编程高级指南)

John Hunt

http://link.springer.com/openurl?genre=book&isbn=978-3-030-25943-3

感兴趣的同学可以关注下方公众号,回复"sprg"获取打包下载网盘链接:

Coursera上Python课程(公开课)汇总推荐:从Python入门到应用Python

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