We're expanding freeCodeCamp's Python section into a full-blown data science curriculum.
Currently, these data science skills are only taught at a few universities around the world. Our goal is for anyone, anywhere to be able to learn these advanced mathematics and machine learning concepts that data scientists use in the field. For free. And in a fun, interactive way.
Update July 15, 2021: We have met our donation goal. 🎉
I'm thrilled to announce that the community has successfully met our Data Science Curriculum Pledge Drive goal. We raised $156,667 from 2,519 donors.
I met with Darrell Silver today, and he gave me a giant check for his matching donation. This effectively doubled the donations everyone had given, and brought the total to $306,667.
A huge thank you to all of you who contributed to the pledge drive. We have already started putting these funds to use.
First, we brought on two new team members.
Edward Patrowski has nearly two decades experience teaching math and computer science at both the high school and university level.
He has already started designing the curriculum and building Jupyter Notebooks. We will use these to teach calculus, statistics, linear algebra, and other concepts that underpin data science and machine learning.
Kylie Ying is a computer science grad student at MIT, working on research in machine learning and particle physics.
She is creating a series of video courses that will accompany the Jupyter Notebooks that make up the Data Science curriculum.
Ed, Kylie, and other contributors have already started planning out much of this curriculum with help from academia and from data scientists working in the field.
We've also built a Jupyter Notebook proof of concept using SymPy – with working automated test cases. We will further refine this over the coming months before releasing the first version of the curriculum.
What Will the Data Science Curriculum Cover?
You'll be able to code your way through a series of hundreds of Python projects to earn certifications in:
- Scientific Computing with Python
- Foundational Mathematics (Arithmetic, Algebra, Geometry, Trigonometry)
- Algorithmic Problem Solving (Data Structures, Brute Force, Divide and Conquer, Shortest Path, Greedy Algorithms, Dynamic Programming)
- Descriptive Statistics
- Data Engineering (Pipelines, ETL, Storage, Data Cleaning + Anomaly Detection Methods)
- Exploratory Data Analysis
- Single and Multivariable Calculus
- Inferential Statistics and Probability
- Linear Algebra and Matrix Algebra
- Supervised Learning Algorithms (Classification, Regression)
- Unsupervised Learning Algorithms (Clustering, Dimensionality Reduction)
- Reinforcement Learning Algorithms (Neural Networks)
You'll be able to build these projects in your browser or offline in your operating system. You'll use Jupyter Notebooks filled with interactive graphs, datasets, and automated tests to check your code. And you'll use tools like:
- and scikit-learn
Imagine being able to learn advanced mathematics and computer science concepts for free in just a few thousand hours. That's what we're going to accomplish by leveraging these state-of-the-art Python ecosystem tools.
Watch the Demo Video (28 minute watch)
This Sounds Ambitious. Can the freeCodeCamp Community Pull This Off?
We have already taught many of these topics through courses on the freeCodeCamp community YouTube channel (subscribe if you haven't yet 😉). The main challenge will be weaving these topics into a cohesive, linear curriculum, and making it interactive with automated tests.
If you're unfamiliar with our nonprofit's track record in general, read our 2020 annual report. We delivered more than 1,300,000,000 minutes of worth of learning last year alone on a budget of only $498,000. (That's ~50 hours of learning per dollar donated.)
How Are You Going to Teach Mathematics, Data Science, and Machine Learning in the Browser?
These topics are not easy to learn. But we have strategies for breaking this corpus of knowledge down into manageable components.
The most important design decision is this: optimizing for developers. Instead of designing the curriculum with schools in mind, we are focusing on individual, motivated adult learners who already have a baseline understanding of web development. (If they don't yet, they can just complete the first half of freeCodeCamp's curriculum. It is the sole prerequisite for this Data Science coursework.)
Since we can assume that learners already know how to code, we can teach mathematics in an entirely new way. Instead of using traditional lectures or homework exercises – tools like pencils, paper, and graphing calculators – we can incorporate Python.
This practical spin gives a new sense of relevance to age-old tasks of solving equations and proving theorems.
What if I Already Know Some of These Topics? Can I Still Earn the Certifications?
As with freeCodeCamp's web development curriculum, most of the coursework is entirely optional.
If you've already learned some of these topics in the past, you can jump ahead and build the certification projects. Once you prove your knowledge, you can claim the certification.
The freeCodeCamp curriculum will remain a straight line with no electives. But you can pick where you want to start on that line, and you can always back-track if you need to review.
Doesn't freeCodeCamp Already Cover All of These Topics on the Community YouTube Channel?
Yes. We have free full-length courses on almost all of these topics on our community YouTube channel.
Videos are much easier to produce than integrated, interactive curricula. They are just the first step toward our goal of fully teaching and certifying data scientists.
These videos will remain a solid supplementary learning resource. They are great for learning on the go, and they delve further into some concepts that our more practical curriculum will only touch on.
What if I am Midway Through the Current freeCodeCamp Curriculum?
No problem. You won't lose any of your progress.
We will turn some of our certifications into legacy certifications (like the current Data Visualization certification) into a legacy certification. But you will still own it, and you will still be able to claim it even after we release the new certifications.
What is the Release Roadmap?
Note that the freeCodeCamp community does not set public launch dates. Instead, we roll new coursework out as it's ready, then continually maintain and refine it.
Here is what we plan to release:
Stage #1: We will publish the certification projects, which you can complete in order to obtain each of these data science certifications. We will also publish video courses that you can use – in combination with other learning resources – to learn the concepts.
Stage #2: We will publish the optional practice projects for each certification. These will replace the videos, which we'll move over to freeCodeCamp's supplemental learning resource section.
We think we can accomplish most of this in the first 2 years. Then...
Stage #3: We will add additional optional practice projects to provide even more practice and repetition. Our eventual goal is to have more programming practice than a single human could reasonably complete in a lifetime. (You could argue that we already have this through our client-side implementation of Project Euler and Rosetta code, but there are still millennia worth of years worth of mathematical knowledge we can eventually cover.)
Learning is a life-long endeavor. And the freeCodeCamp curriculum will continue to evolve to reflect this.
Will All of This be Open Source?
Yes. As with all of freeCodeCamp's other code, it will be licensed using the extremely permissive BSD-3 license. (It's similar to the MIT license but also protects our nonprofit from impersonation.)
And as with the rest of freeCodeCamp's curriculum, all of our coursework will be Creative Commons-licensed. The CC-BY-SA 4.0 to be exact. This license is permissive and has no commercial restrictions. That's right. You could build a business around freeCodeCamp if you wanted to.
How Can I Get Involved in This New Data Science Curriculum?
If you are a teacher, practicing data scientist, or a mathematics enthusiast, we would welcome your feedback.
And for everyone else, you should support our pledge drive. Help us fund a free, open source data science curriculum for you, your family, and your neighbors around the world. Donate here.
How can I learn even more about the Data Science Curriculum and certifications?
You're in luck. I went on The Changelog podcast (a popular open source podcast) to talk about these new certifications we're building. You can give it a listen in the embedded podcast player below. (1 hour listen):
Press play to hear me talk about the Data Science curriculum on The Changelog podcast
Thanks for reading, and happy coding.