Discussing Upcoming Maths/DS Curriculum

Yeah, an exam is different than learning. But there is also some correlation with learning and how well you do on an exam. In my experience, the people that understood the best also did best on exams. They were also the people that tended to put in the most work. It’s not a perfect correlation, but there is some correlation.

And you mention “with practice”. That is what I’m talking about. You can get that practice in the classroom. Yes, some real world examples should be mixed in there. But ultimately it’s that practice that really teaches you. I taught some academics but I also taught a lot of music. I could show a student a scale and they could understand it. But it wasn’t until they’d played it 1000 times that it got “under their fingers”. I should show someone the basics of jazz improv, but until they actually applied those over and over they didn’t really get it.

That gets us to what I think the problem of online education - it is too easy to slack. It is too easy to game the system. Sure, someone can learn well, but too many don’t. At least if someone completes 3 semesters of calculus at a uni, I can be reasonably sure that they have a base level of theoretical and practical knowledge. I don’t have that same confidence in online, bite-sized-chunk, none-of-the-boring-parts, gamified education that I see online. To me, it’s just pandering to laziness and a desire to get by with as little effort as possible.

For web dev, it kind of still works because you know that they will have to apply these practical skills. (In all fairness, it’s more “hope” than “know”.) Is there going to be 5 linear algebra projects that bring it all together? I don’t know, maybe. I just can’t see how that would work.

Again, I’m not saying what we can do will have no value. Duolingo is a nice way to get exposed to the basics of a language, but it’s not going to make you fluent. You give me someone that studies French for a year in university and put them against someone doing an online app for a year, and we’ll see who does better. But again, most online sites judge themselves on quantity of signups and lessons given and likes on social media. They’re not sitting around analyzing how many of their users actually get proficiency and how that compares to traditional paths.

2 Likes

my experience, where integrations are part of normal things, they have actually become numbers. <ψ(i)|ψ(j)> is a number, and <ψ(i)|H|ψ(j)> is a matrix element

sometimes to demonstrate something we also actually calculate an integral, even if not numerically.

But that, and probabilities of an event happening, I know how they relate to the functions, because I have internalized what an integral is. Calculating one manually is usually done only in small examples, to see the result coming along, and how everything relates together.
after that, in practice, there are programs that crunch the numbers together

everything is so abstract and the same time you have the numbers just there…
the weird of doing quantum stuff

I don’t know how more in depth the curriculum is going to be in statistics, and the different approach will be interesting to see

2 Likes

The proposed layout does seem to be applicable to only relatively specific people: solve_equations_by_addition - Jupyter Notebook (gesis.org)

I am thinking on the basis of how many dislike the Orbital Period (Keplar’s 3rd) Challenge in the JS section.

1 Like

On that same line, do you think that there is no value to having a student work on a problem like:

12 X 17 =

and that it must be

A school need to provide a dozen pencils to each new student. There are 17 new students. How many pencils should Nancy in procurement order?

I think there is value in abstraction. I remember reading about the history of math and it talked about what a great advancement it was when people figured out that there was a concept of something that has “two-ness” that it was an abstract concept, that you could talk about the number “2” without reference to the real world.

I think we all agree that either extreme is too much. But I also think that people are getting a little hyperbolic in their condemnation of abstraction.

It reminds me of a practical application. A group of us were working on some code at work. I pointed out that if we applied De Morgan’s Law, we could simplify the logic. No one knew what I was talking about. (Most of the people were not university educated and were also not interested in things that didn’t have immediate application.) I could see it because I understood it as an abstract concept, one that I’d had to drill over and over in a logic class. It was stuck in my head. True, if I’d just rotely done a bunch of abstract problems, it probably wouldn’t have stuck - it was the balance of the too that helped.

The problem is that as a student, I long heard people complain about all this abstract learning. With a few exceptions, I found the balance to be right. I’m glad the program didn’t pander to the desires of the lowest common denominator.

1 Like

Let me back up a bit. I think there are two things here.


Problem the First

To me, a fundamental problem right now is that mathematical and statistical knowledge is difficult to access for individuals that do not have the financial means or a convenient country of birth.

Focusing on math as a elite skill that requires thousands of hours of investment is harmful to equity.

I honestly believe that the core mathematical knowledege that is required for data science, machine learning, and artificial intelligence can be taught in far less time. And I think this mathematical and statistical knowledge can be better communicated in the context of the applications in which they will be used.

I think this is the approach freeCodeCamp is focused on for the new curriculum


Problem the Second

In colleges, I think there also needs to be a revamp of mathematics education.

There is a lot of focus on older techniques and computations by hand. While I find some of this really valuable for context and understanding, a lot of these courses cover materiel that is not relevant to supporting the students’ use of the knowledge in later courses.

A lot of college mathematics is a barrier rather than a support to engineering students. Some of this is due to poor secondary education, but the buck has to stop somewhere. College math departments have poor pass/fail rates. As an educator, I want to support students achieving their dreams rather than turning them away from their dreams. I don’t see this as pandering. I tutor here because it is a passion of mine to help share knowledege.


Somehow I am not being clear. I am not condemning abstraction. I am computational mathematician. My entire job is utilizing abstraction. I object to focused drilling on old skills over contextualizing knowledge to solve actual problems.

3 Likes

There’s damn little abstraction in 4363272 * 973, just a lot of rote mechanical repetition. It’s a great thing to know, but when it’s all you do, you’ve learned to transform symbols that don’t mean anything into another meaningless symbol. You can’t teach just the abstraction first, because people typically reason from the concrete to the abstract, but if there’s no reasoning step, what’s the point. When students ask “When am I ever going to use this?”, it’s more an indictment of the curriculum than the subject.

I get the same eyebrow twitch every time recursion is explained with the stack model, explaining the model of the computer instead of what it actually means. Because it turns out the meaning is a hell of a lot simpler to reason about.

1 Like

Perhaps apropos of nothing in here, but speaking of abstraction, this is how I wish maths were taught in school: Up and Down the Ladder of Abstraction

1 Like

I think we disagree. That is 100% abstraction. “4363272” is an abstract concept, separated from any of the infinite things that it could represent in the concrete world. Multiplication is an abstract concept. I am absolutely perplexed by your assertion that it contains “damn little abstraction”. What part of that isn’t an abstraction?

Is it “rote”? There is nothing “rote” in the problem you are showing, that would be in the teaching method. And people love to use “rote” as a dirty word, but it is a core technique by which humans learn. Sure, you can make it more “fun” so it doesn’t seem “rote”, but repetition is how humans learn things well. Whether or not it is “mechanical” is a subjective and is a reflection of the students’ (and society’s) attitudes - one persons “that was such a dumb page of mechanical exercises” can be another’s “wow, I finally understand it - I can actually remember how this works now”. I saw that play out in university all the time. As an educator for decades, I saw that unfold over and over. One nice thing about a self-paced format is that people can skip over the parts they already know. The bad thing is that it lets less rigorous people skip over the parts that they don’t like or they don’t see the value in it. Again, my experience is that students are poor judges of what they need to learn. And if we pander to the “I don’t want to learn unless you can show me a concrete example for everything”, I think that is a dead-end. You’ll get a lot of (in the short term) happy students that way - I’m not sure you’ll have more people that truly learned.

I remember in another book on the history of mathematics I read and it was talking about the difference between Greek and Roman math. To the Greeks it was all about abstraction, trying to find the divine connection, as exhibited by Plato. They did math abstracted from the real world. They talked about abstract triangles and spheres and irrational numbers. The author compared that to a Roman math problem, like “An army needs to build a ramp to go over an enemy fortification that is 10 cubita tall. If the ramp must be 10 pedes wide and cannot be more than 10%, how much soil will be needed?”

When students ask “When am I ever going to use this?”, it’s more an indictment of the curriculum than the subject.

Wow, I have the exact opposite reaction. First of all, I did occasionally wonder that myself. Time usually showed me how it helped me. And the people complaining about application the most were usually the worst and laziest students. Perhaps your experience is different. But I would argue that students who know nothing about a subject are poor judges of what they should be taught and how they should be taught.

I get the same eyebrow twitch every time recursion is explained with the stack model, explaining the model of the computer instead of what it actually means .

I think you’re drawing a false dichotomy here. It is not either/or. Unless you are saying that there is no value in teaching the stack model? Actually, the few times that I’ve tutored people in recursion, they’d never heard of the stack and showing them how that worked was the lightbulb that made recursion makes sense. But in your defense, I remember learning recursion in high school (AP Pascal, if you can believe it) and not truly understanding what was going on. It wasn’t until I was at home one night solving a pagoda puzzle and I thought about how to abstract that into an algorithm that I had an epiphany that that was recursion. But I also couldn’t have understood it without understanding how the call stack was working.

I think there is room for both and there is value in both. But I also think that it is “cool” to poo-poo the “ivory towered institutions or learning”. People enjoy iconoclasm. But I think a balance is good. My concern is that the modern trend is just pandering to the likes and dislikes a students that don’t want to do the work (unless it’s a fun game).

This online approach is going to lend itself to certain aspects of leaning math. But I also think it is going to struggle with certain other aspects, taking hard work. But if we just decide that anything that is hard or unpopular can just be dropped, that work won’t get done. That’s where we have to work extra hard. Otherwise it’s just sour grapes.

1 Like

The part that isn’t abstract is “4363272”. It’s a concrete instantiation of an abstract symbol. x is abstract. But it’s a relative scale: things can be abstract in one context and concrete in another. The small amount of category theory I’ve learned makes the * operator the most interesting symbol in that calculation. Throw in the + operator and you have the starting point to teach someone what a monoid is.

Obviously no one can learn computational mathematics effectively unless they understand computation. But I don’t have to start every app I write in assembly either.

Speaking of Greeks and Romans, it used to be a prevailing attitude that you didn’t know anything about the written word unless you were versed in Latin and Greek. Anyway, Pythagoras left us a pretty long-enduring theorem. That Euclid fellow was no slouch either.

As one Haskeller told me, it’s not math I hate, it’s just numbers. For 99% of people out there, numbers and math are indistinguishable. And that’s sad.

1 Like

I may be wrong, but I think we are completely talking past each other here.

  • I am not to worried about ‘fun’ or ‘happy students’. I think learning should have some fun, but I am worried about what is the highest priority content to focus on to reach end goals.

  • I am not thinking about pandering to the ‘lowest common denominator’ as it is sometimes described. I’m thinking about how we can help people without foundational mathematical training or with a fear of mathematics.

  • I am a part of the ivory tower. I do not think knowledege should stay inside of my tower.

There is a lot of cool math out there that is valuable to learn. But I want to be able to stop telling learners that they cannot do data science, machine learning, or artificial intelligence professionally unless they can invest the time and money into getting into and graduating from a university.

2 Likes

I strongly disagree. The concept of a number, that is divorced from the concrete world is by definition an abstraction. Tens of thousands of years ago someone realized that talking about two apples or two days or two miles (or whatever) shared the abstract concept of “two-ness” that could be abstracted from its real world examples and thought of and understood just as the concept of “two” without any reference to the real world. This was a major step in the birth of mathematics that we take for granted. Yes, assigning it to a variable is a further and different kind of abstraction, but that doesn’t make the other any less of an abstraction.

Speaking of Greeks and Romans, it used to be a prevailing attitude that you didn’t know anything about the written word unless you were versed in Latin and Greek.

Do you honestly believe that they thought that someone “didn’t know anything about the written word”? I’m not sure how to respond to that? “Anything”? Someone was incapable of understanding anything about the written word unless they knew Greek and Latin? Seriously? You seem to be using a lot of hyperbole that I find difficult to decipher. I’m not sure what is a real, cogent argument that you 100% believe and what is an exaggeration for emphasis.

But I’m arguing the same points over and over. Time to bow out. We’ll see in a few years if the FCC calculus program delivers an education on par with a university eduction in the subject, or at least in a way that will be on par with with a Data Science specialist needs.

In any case, please don’t be offended if I don’t respond. I’m going to ignore the thread so I don’t let my weakness rule me and continue arguing. If someone has a dying need, they can PM me.

By the way, this thing is really freaking cool

Do you honestly believe that they thought that someone “didn’t know anything about the written word”?

There was the whole thing called a “classical education”, so yeah, a lot of people really did subscribe to that. As for the categorical claim of “everyone”, to keep on with the Greek terms, hyperbole is a pretty common thing when used in common phrases like “you don’t know jack about X unless you know Y”.

My overall point isn’t about abstraction or any mythical One Right Way To Teach, it’s that I’ve seen the enthusiasm of otherwise engaged and curious learners still gets regularly snuffed out by teaching methodologies that emphasize rigor over every other concern. I’d have enjoyed discussing it more, but I guess it doesn’t always go that way. :man_shrugging:

1 Like

Yes – the entire curriculum will be linear, so by the time learners get to the math certifications, we will assume they have already completed all the “full stack” certifications, and thus are able to use coding as a way to understand and apply math concepts.

5 Likes

I just finished reading through this thread, and I wanted to share a few thoughts that might provide clarity and spur further discussion.

  • This curriculum will be 10 to 11 certifications long, each taking around 300 hours (a conservative estimate). So we will have plenty of time to drill learners with (spaced) repetition of concepts. People can learn a lot in 3,000 hours.

  • This will be rigorous and it will be hard. Not necessarily as hard as doing an undergraduate engineering degree, since instead of chalk boards and textbooks, we’ll have Jupyter Notebooks and SymPy, which should be much more practical and hands-on. But still, it will be hard.

  • We should explore any opportunities we can find to make it marginally easier for learners. Anything that felt like wasted time for you all while you were studying math or CS in school – those are opportunities to trim some fat. Anything that seemed much harder to grok than it should have been – those are opportunities to get creative and find “flashing lights and dancing clowns” (as @kevinSmith said) to explain these concepts in a way that’s more engaging. And why not? I have no illusions of learning math feeling like playing an MMORPG any time soon. It’s mostly just going to be staring at a Jupyter Notebook and scratching your head. But we can try. :slight_smile:

Some advantages we have here over the way math is taught in university programs:

  • We’re not trying to weed anyone out. University programs have limited seats, and limited professor time for office hours. But freeCodeCamp has literally 100,000s of learners actively working through the curriculum, and we don’t need to weed people out to reduce costs.

  • We don’t care about transferability of credits.

  • We control the entire sequence of topics, and don’t have to make subjects modular. Since everyone is learning the same linear curriculum, the prerequisite dependency chain is simple.

  • We can spend as long or as little time as we want on each topic. There’s no need to pad a topic for the sake of filling out a semester-length course.

  • We aren’t teaching math to a mixture of engineers, physicists, math majors, and pre-med students. We are teaching math to busy adults who want to turn around and use that math to do data science. We have a relatively homogenous audience.

  • Busy adult learners who have already been working, raising kids, and in many cases have already finished a university degree – they are going to be way more motivated and organized than your typical university student.

Yes, designing a math and computer science curriculum is going to be hard. To give you an idea of how hard I think it’s going to be, here’s what I’ve done:

  • I’ve started raising a $300,000 fund to be able to bring on experienced teachers to help design these courses over the course of the next 2 years. (I will recruit these teachers personally from the freeCodeCamp contributor community, and I imagine most of them will work in a part time capacity on top of existing roles at high schools and universities).

  • As usually, I’ve emphasized that we do not have a release date scheduled. The amount of work is indeterminate. We will release when we can, but we don’t want to have a Cyberpunk 2077 on our hands.

  • I’ve built a list of creative commons-licensed math textbooks that we can reference in designing this curriculum, so that we don’t need to completely reinvent the wheel.

We have already started working on this as a team of 3 people:

A number of other community members (including @JeremyLT have filled out the form at the bottom of the announcement article with feedback). And I have some other contributors (both to the YouTube channel and the publication) whom we may bring on to help as well once we are confident we’ll reach our fundraiser goal.

OK - that was a long post. I just wanted to reassure you all that I have put a lot of thought into this. (I actually worked with some contributors on a math curriculum all the way back in 2017 but we shelved it to focus on localization and the Python curriculum.)

This is imho the next logical step for our curriculum. And I’m confident we have the talent and expertise right here in the freeCodeCamp curriculum to build a world-class interactive math and CS curriculum.

Thanks again to all of you for helping moderate, for contributing to the codebase, for those of you who are able to support our nonprofit through donations, and for all of you who will ultimately have your fingerprints on the first release of these Data Science curriculum projects. :pray:

7 Likes

Hi @QuincyLarson !

I have also been following along with this thread and it has been really interesting for me.

I am excited for this new curriculum because I think it will resonate with a lot of adult learners that have a similar story like mine.

I hated math growing up as a public school kid because I just felt like we memorizing stuff.
They didn’t really talk about practical applications because teachers were pressured to get kids ready for the end of the year state exams.

But now I am willing to give it another shot if I can see how math works within the context of computer science.

I really do think that you will attract a lot of people like me with non STEM backgrounds who are willing to try again with FCC. :grinning:

6 Likes

Thanks, Jessica. I suspect that perhaps even a majority of adults dislike math as a result of the way it is taught and tested in school. As an adult,

For example, I’ve only learned math from a perspective of getting specific things done. I have never taken a proper calculus course, and I just sort of went through the motions in graduate school exams without really understanding how the underlying calculus works.

This is an opportunity for us to give those adult learners another shot, as you put it, at learning math theory in the context of practical application (rather than just because “it’s going to be on the test”).

We will know that this curriculum is a success if people like you and me are able to go through it and come out on the other side energized and enthusiastic about math.

4 Likes

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.