freeCodeCamp / CurriculumExpansion

Creative Commons Attribution Share Alike 4.0 International
313 stars 105 forks source link

Planning the Math for Programmers Curriculum #93

Closed QuincyLarson closed 7 years ago

QuincyLarson commented 7 years ago

The freeCodeCamp community has started building an interactive, browser-based Math for Programmers curriculum. It's just a matter of designing the thousands of LaTeX-driven challenges necessary to teach campers all the math they'll need to succeed in software engineering roles.

The interactive prototype

We have a prototype for our testable LaTeX math for programmers challenges here.

This prototype can be used for developing challenges. And we're working to incorporate all this functionality directly into freeCodeCamp's challenge platform.

The challenges will be written in the same JSON seed file structure we're using with freeCodeCamp's web development challenges, which looks like this.

We're working to incorporate this functionality directly into our learning platform. We'll be able to copy these JSON seed files over directly, then roll out new Math for Programmers challenges as they're ready.

How to contribute

We are seeking volunteer contributors to help with this massive effort. It will involve creating instructions and tests for thousands of mathematical concepts and their tests.

If you're interested in helping out with this endeavor - regardless of your math or programming background - shoot me an email at quincy@freecodecamp.org.

The curriculum outline so far

We'll start off by teaching some basic LaTeX syntax - preferably while also teaching basic arithmetic. Here's a reference for LaTeX mathematical notation

Each of these topics should probably have several consecutive challenges to give practice with the concept and drive it home. Then we should create what @SaintPeter called "checkpoints" that bring several concepts together for review.

One topic that is missing currently is Statistics, which will be vitally important to the Data Science & Machine Learning curriculum that will follow on the challenge map.

Here's the current proposed curriculum put together by @makkoli, a Virginia Tech math major and freeCodeCamp alum-turned software engineer. It contains around 1,800 topics and subtopics we plan to cover.

Anyone with freeCodeCamp write permission can directly update this post to add additional topics and subtopics they think we should cover.

no-stack-dub-sack commented 7 years ago

@QuincyLarson I have to say that I'd be a bit concerned about this. This feels like scope creep to me. It takes me quite a while just to scroll through this list, let alone code the challenges and integrate them in.

I don't mean to sound negative, but we're currently sitting on a major curriculum update that's overdue by quite some time, which many people's hard work has gone into, which is still not in good enough shape to release.

Even once the app overhaul is done, there is still a huge amount of work to do just to bring it to completion, some of which simply can't be done right now because there isn't support yet for writing ES6 tests. The thought of adding these challenges, plus project Euler, plus a Data Science and Machine Learning curriculum, long before the original curriculum overhaul is completed feels like biting off more than the community can chew.

I've tried to continue contributing to see the current curriculum update through, but find myself blocked by our current limitations, even when suggestions are made on how to fix them. I think if we commit to something like this, and shift our focus away from the priorities at hand, we can probably count on waiting a good deal longer before seeing the curriculum update in production.

QuincyLarson commented 7 years ago

@no-stack-dub-sack thanks for sharing your concern here.

The Math for Programmers curriculum will be done in complete parallel, by different contributors than are working on the beta web development curriculum and platform.

We will roll these out as they're ready. None of these extra challenges - the Math for Programmers, Interview Prep, or data science & machine learning - should cause any additional delay for the beta web development curriculum.

To be clear, the reason beta is taking so long is not because of the challenges - most of those are in good enough shape to ship. It is because of all of the overhaul of the coding platform itself, and all the technical debt it addresses.

The Math for Programmers curriculum alone will require thousands of additional challenges. We are confident that this is something most campers would benefit from learning, and there's no reason to delay getting started with it.

w96k commented 7 years ago

Wow Quincy, it's huge, looks promising and great, I hope I will get into React soon to help.

QuincyLarson commented 7 years ago

@w96k You can work through the alpha React challenges (designed by @bonham000 and @no-stack-dub-sack) here: http://hysterical-amusement.surge.sh/

@BerkeleyTrue is in the process of getting these to run well on the freeCodeCamp platform. It's one of the final steps before we can ship beta.

thomask-gh commented 7 years ago

Looks great, but doesn't Khan Academy have some kind of similar Maths curriculum? Why create another one?

w96k commented 7 years ago

@thomaskuntzz Khan Academy is great, but it has a different format and target audience I guess. Plus Quincy course will teach latex, which is the great tool for writing math & science docs.

Catherinesjkim commented 7 years ago

Hi Quincy, the list looks great. I was just thinking that I need to improve on my math skills. Thank you for your hard work! Please let me know if I can assist.

QuincyLarson commented 7 years ago

@w96k Khan Academy's curriculum is primarily aimed at kids. This math curriculum will be designed specifically for adult-aged developers.

zuzana-kunckova commented 7 years ago

This is fantastic. I definitely want to contribute - will send you an email shortly.

ericabell commented 7 years ago

I agree -- this looks fantastic. As a former Calculus and DiffEq teacher turned developer, I have quite a bit of LaTeX materials. Would love to help where I can.

heggy231 commented 7 years ago

I just sent Quincy an email. With my background in Math and Stat, I will volunteer in basic section first and see how it goes. Thank you for initiating this project for the community, Quincy.

UsamaHameed commented 7 years ago

I would love to contribute to this. Let me know what is the plan.

kaileeagray commented 7 years ago

I hope to contribute as long as life and new baby allow. I have a undergrad and masters in math. Taught pre algebra, college algebra, intro to discrete math for a few years. I love teaching intro to proofs - I have some videos on YouTube already (youtube.com/c/kaileegray) warning: lots of room for improvement, I know 😬... PLUS LaTex was my segway into coding and one of the reasons I am a web dev now. I have never contributed to open source but this seems like the perfect project for me. I am so excited for this! I hope this comment helps me stay accountable to my desire to help. ❤️

thomask-gh commented 7 years ago

@QuincyLarson I'd love to know what's used to handle LaTeX expressions on this site, is it an existing tool or is it a homemade solution? 🙂

thomask-gh commented 7 years ago

Oh, looks like it MathJax, is it?

QuincyLarson commented 7 years ago

@thomaskuntzz Yes - we're using MathJax to handle this. We're still working on some of the structure and getting all of this running on the beta.freeCodeCamp.org platform.

In the meantime, if you, @UsamaHameed and @kaileeagray want to help, I recommend you contribute directly to the math section of the freeCodeCamp Guide: https://guide.freecodecamp.org

If you haven't read this announcement, it will give you a better idea of what the guide is and what its goals are: https://medium.freecodecamp.org/heres-a-new-way-to-learn-coding-tools-and-concepts-right-when-you-need-them-ee82d15c576d