原文:We're Building a Data Science Curriculum with Advanced Mathematics and Machine Learning,译者:Quincy Larson

我们正在将 freeCodeCamp 的 Python 课程扩展为完善的数据科学课程。我们需要你的帮助。

目前,全球仅有少数大学在教授这些数据科学技能。我们的目标是让世界各地的人们都能以一种有趣的互动方式免费学习这些高等数学和机器学习知识,以及数据科学家们在该领域中实际运用的知识。

2021 年 7 月 15 日更新:我们已经实现了筹款目标 🎉

我很高兴地宣布 freeCodeCamp 社区已成功实现数据科学课程筹款目标。2,519 名捐助者共捐款 156,667 美元。

我今天和 Darrell Silver 见面了,他给了我一张巨额支票作为他的配捐款项。这就使捐款总额达到 306,667 美元。

via GIPHY

非常感谢所有捐款人!

我们已经开始使用这些资金。首先,我们的团队招募了两名新成员。

Edward Patrowski 拥有近 20 年的高中和大学数学和计算机科学教学经验。他已经开始设计课程并构建 Jupyter Notebook。我们将使用这些来教授微积分、统计学、线性代数和其他支撑数据科学和机器学习的概念。

Kylie Ying 是麻省理工学院的计算机科学研究生,致力于机器学习和粒子物理学的研究。

她正在创建一系列视频课程,这些课程将和 Jupyter Notebooks 一起构成数据科学课程。

在学术界和在该领域工作的数据科学家的帮助下,Ed、Kylie 和其他贡献者已经开始规划本课程的大部分内容

image-23
我们的课程规划文件是可以公开访问的,这是其中一个工作表

我们还使用 SymPy 构建了 Jupyter Notebook 概念验证 ——含可运行的自动测试用例。在发布第一版课程之前,我们将进一步完善此功能。

数据科学课程将涵盖哪些内容?

你将会编程构建数百个 Python 项目,从而获得以下认证:

  • 使用 Python 进行科学计算
  • 基础数学(算术、代数、几何、三角学)
  • 算法(数据结构、Brute Force 算法、分治算法、最短路径、贪婪算法、动态规划)
  • 描述性统计分析
  • 数据工程(管道、ETL、存储、数据清理+异常检测方法)
  • 探索性数据分析
  • 单变量和多变量微积分
  • 统计推断与概率
  • 线性代数和矩阵代数
  • 监督学习算法(分类、回归)
  • 无监督学习算法(聚类、降维)
  • 强化学习算法(神经网络)

你将能够在线或离线构建这些项目。你可以使用带有交互式图形、数据集和自动测试的 Jupyter Notebooks 来检查代码,并且可能使用以下工具:

  • SQL
  • NumPy
  • SciPy
  • SymPy
  • Matplotlib
  • Pandas
  • TensorFlow
  • Keras
  • and scikit-learn

想象一下,只需要几千小时,就可以免费学习高等数学和计算机科学概念。我们将利用这些最新的 Python 生态系统工具来实现这个目标。

freeCodeCamp 如何在财务上支持开发这些课程?

我们需要你的支持,以实现这个目标。设计课程和开发课程将花费上万个开发工时,而托管 Jupyter Notebook 集群还将增加我们每月的服务器成本。前两年开发和维护这套课程的总费用大概是 30 万美元。

我们很激动地和大家分享一个好消息:Darrell Silver 同意对筹款进行 100% 配捐,最高配捐 15 万美元。所以,我们启动了一项 15 万美元的募捐活动(点击原文查看详情)。你每捐款 1 美元,freeCodeCamp 将获得 2 美元。

感谢大家支持这个计划。每一笔捐款都很重要,都让我们离免费教授核心机器学习和高等数学知识这个目标更进一步!

通过视频 demo 了解更多:

freeCodeCamp 社区多久可以实现这一目标?

我们乐观地认为,我们将在 2022 年推出许多这些新项目和认证。

我们已经通过 freeCodeCamp 社区 YouTube 频道上的视频教程教授了许多这些主题(如果你还没有订阅,请订阅 😉)。我们官网的项目课程将会把这些视频教程的内容合并成一个线性的课程,并添加自动化测试。

如果你不太了解我们的公益组织此前的成绩,欢迎你阅读我们的 2020 年年度报告。 仅去年一年,我们就提供了超过 13 亿分钟的教学,而我们去年的总花费仅为 498,000 美元(每一美元捐款对应大约 50 个小时的教学)。

freeCodeCamp_historic_usage_-_Google_Sheets-1
人们使用 freeCodeCamp.org 官网课程和视频课程的时间(x 百万分钟),每年大概增长 60%

freeCodeCamp 如何在浏览器中教授数学、数据科学和机器学习知识?

这些知识学起来很难,但是我们将通过合理的规划把这些知识分解为可操作的部分。

最重要的设计决策是:面向开发人员进行优化。在设计课程时我们不是以学校为重心,而是以对 web 开发有基本了解的、可以驱动自己学习的成年学员为重心。如果学员还不了解 web 开发,那么 ta 们可以先完成 freeCodeCamp 课程的前半部分,而这部分知识是学习数据科学课程所要求的唯一前提。

我们假设学员已经知道如何编程,然后我们可以用一种全新的方式教授数学。我们将结合 Python 进行教学,而不是基于传统讲座或家庭作业(使用铅笔、纸和图形计算器等工具)。

学员将通过一种新的方式完成解方程和证明定理等等熟悉的任务。

如果我已经了解其中一些主题怎么办? 我还能获得认证吗?

与 freeCodeCamp 的 web 开发课程一样,大部分题目都是选做的。

如果你已经学习过其中一些主题,则可以直接构建认证项目。当你证明自己已掌握了相应的知识,就可以申请认证。

freeCodeCamp 课程是线性的,我们建议你按照顺序完成课程。但是,你可以自由选择从哪个点开始学习,也可以随时回头学习前面的课程。

freeCodeCamp 社区的 YouTube(和 bilibili)视频教程不是已经涵盖了这些主题吗?

是的,我们社区的视频教程已经涵盖了几乎所有这些主题,而且都是免费的。

与集成的交互式课程相比,视频教程制作起来容易得多。视频只是实现“全方位教学,认证数据科学家”这一目标的第一步。

我们的交互式课程会粗略地介绍一些概念,而视频教程会深入剖析这些概念,所以视频将是非常好的补充学习资源。

如果我正在学习 freeCodeCamp 现有的课程,我该怎么办?

没有问题,你的学习进度将被保存。

我们会将部分认证转变为 legacy certification(例如目前的数据可视化认证),即使我们发布了新的认证,你也仍然可以申请之前的认证。

发布路线图是怎样的?

请注意,freeCodeCamp 社区不会设置公开的发布日期。我们会在准备就绪时推出新课程,然后不断进行维护和完善。

这是我们计划发布的内容:

第 1 阶段:我们将发布认证项目(certification projects),你可以完成这些项目,以获得各个数据科学认证。我们还将发布视频课程,你可以将其与其他学习资源一起使用,来学习各种概念。

第 2 阶段:我们将发布每个认证的选做的练习项目(practice projects),用这些替换视频,然后将视频移至 freeCodeCamp 的补充学习资源部分。

我们应该可以在两年内完成大部分工作,然后......

第 3 阶段:我们将增加更多可选的练习项目,让学员进行重复练习。我们最终的目标是:创建大量编程实践项目,正常情况下一个人在有生之年都做不完这些项目。你可能会说:freeCodeCamp 的 Project Euler 和 Rosetta 部分课程,已经是我们做不完的了。但是,我们的课程还可以再包含大量数学知识,需要上千年时间才能学完。

学习是一件终身的事业,而 freeCodeCamp 将通过持续更新课程来倡导这一点。

所有课程都会是开源的吗?

是的,和 freeCodeCamp 的所有其他代码一样,这些课程将使用极为宽松的 BSD-3 协议(类似于 MIT 协议,但可以保护我们的公益组织免受假冒行为的侵害)。

与 freeCodeCamp 的其他课程一样,所有课程都将在 Creative Commons 协议下发布。 确切地说,是 CC-BY-SA 4.0,没有商业限制。所以,如果你想基于 freeCodeCamp 的课程运营业务,也是可以的。

我怎么参与到新的数据科学课程中?

如果你是老师、数据科学家或数学爱好者,我们欢迎你提供反馈

此外,你可以通过捐款支持我们,帮助我们为你、你的家人和世界各地的朋友提供免费的开源的数据科学课程。

我如何获得捐款收据来抵扣税费?

你通过这个链接捐款后,PayPal 会发给你一份收据。请将收据通过邮件发给 donors@freecodecamp.org,然后我们会给你发一份可用于抵税的收据。

我如何更加了解数据科学课程和认证?

我在 Changelog 播客(一个出名的开源播客)上讨论了我们正在构建的这些新认证。你可以在下面的嵌入式播客播放器中试听(1 小时):

点击“播放”按钮,收听我在 Changelog 播客上讨论的数据科学课程相关的事情。

感谢阅读,happy coding!