Discussing Upcoming Maths/DS Curriculum

original topic: Plans to add curriculum for TypeScript? - Contributors - The freeCodeCamp Forum

We’re Building a Data Science Curriculum with Advanced Mathematics and Machine Learning (freecodecamp.org)

This is exactly why I am so excited about the new curriculum. Mathematical and statistical literacy is becoming increasingly important, and there aren’t a lot of places teaching the foundational mathematical knowledge in the context of becoming a professional programmer.

As it stands, my advice to anyone who wishes to become a professional developer in any domain that requires mathematical or statistical knowledge is to go to college. But this is incredibly limiting. The whole idea behind freeCodeCamp is that anyone should be able to become a developer regardless of their ability to afford college.

This new curriculum will be huge in expanding the prospects for people who want to become professional developers but cannot afford college tuition.

6 Likes

Integrating technology in mathematics teaching is a huge hot topic in pedagogy research for the last 5-10 years. I’m curious to see what direction the curriculum goes and I’m hoping to contribute a lot to the new curriculum.

I work in scientific computing and I have experience teaching college math(to engineers, mathematicians, and programmers), so have some ideas on how ‘old school’ math education with a focus on memorizing rules and tricks can be revamped and integrated with programming education to remove the ‘traditional’ bits that don’t help a lot. There is so much cool research and improvements going on in this area, so I’m super excited for freeCodeCamp to bring this knowledge out in an accessible way.

5 Likes

I’m also pretty excited about the possiblilities of the math curricula. I don’t have anywhere near @JeremyLT’s background, but I used to tutor math for remedial students who weren’t being well served by a traditional approach.

I don’t know if freeCodeCamp will take this approach, but if the expectation is that the students have already learned programming fundamentals, that opens up a range of possibilities. If you can assume that your students understand the types of abstractions needed for programming, then I think that can give you a strong advantage when you’re teaching algebra. I’ve felt for a long time that the abstraction and formulaic approaches that students should learn in algebra are often a significant hurdle.

Anyway, I’m excited to see what the team can do.

4 Likes

Yeah, I can see that the FCC type format could be helpful to learning some high-level concepts in the way that Brilliant and sites/services do that, in more of a qualitative than quantitative way. That’s all well and good, but when I think back to the 2 and a half years of calculus and higher classes I had, that was usually the easiest part of the learning. Understanding what an integral does qualitatively is not difficult. Learning how to quantitatively calculate it was difficult and required hours and hours of studying and working out problems on paper, doing proofs and solving problems - I don’t see how you do that in an FCC format. Granted, I would argue that the qualitative understanding is more useful to me today (because I’m not an engineer) and does positively affect how I think of some problems. I don’t know, maybe in DS you never have to sit down and calculate an actual integration by parts or calculate a Fourier transform, maybe you just need to understand the concept. But when I hear someone talk about teaching calculus, to me it implies a lot of quantitative analysis. This is being compared to what people learn in university - I don’t see how this can even come close to the level of understanding that I had in university. Even if it could, it would take years. I mean, I easily put 200 hours into each of those classes, and that doesn’t include years of geometry and trig and and algebra and algebra II and pre-calc that set me up for that. To do it right, we’re talking about thousands of hours, much of which is spent staring at a sheet of paper and scratching your head, trying to solve problems. Not everything can be taught with flashing lights and dancing clowns and broken up into tiny, fun chunks.

But it seems we’re going to try. It will be interesting. I hope I get proven wrong.

Addendum:

Put another way, one of the reasons it works for teaching development is because we know that the students will continue working on and using these concepts on their own and that there is a wealth of reference materials out there. I don’t know how much we can count on campers to spend hours and hours practicing linear algebra.

But maybe I’m wrong. And this is well off the original topic so I should probably drop it.

4 Likes

This is the sort of thing I was talking about when I said

Simply put, a huge portion of college calculus class content is holdover materiel from when calculus and analysis were the same course.

The focus on learning integration rules, differentiation rules, formal limit definitions, and solving problems only on pencil and paper is all a holdover. Math and engineering faculty know that our calc curriculum is outdated. Some departments see it as a bonus to ‘weed out’ students that they believe are unsuited to receive their education. Mostly though, we keep doing that old stuff because no college wants to be the first to reform their calc curriculum and lose reciprocal credit transfer with every other college in the nation.

But for real scientific and computational problems, either we cannot do the math involved by hand or that math was already done years ago. I think that it would be far more useful to teach the ideas behind calculus and then implement those ideas with the numerical methods that are actually used in modern scientific problems than focus on wrote memorization of rules.

The same idea applies with other areas of math. Variable manipulation in algebra and code is very similar. Statistics is much more approachable with data than with formulae. Math education should be strongly linked with programming, imho.

A practical and modern approach to teaching math has the benefit of focusing on the ideas in an approachable way, teaching the concepts in the context of how they are used, reinforcing programming and mathematics knowledege by pairing them, and removing mathematical knowledge from the bizarre pedestal that society has placed it upon that keeps it out of reach.

2 Likes

@Jeremy

I don’t know, reading that I see a lot of generalizations about what what educators believe and what is better and what is old-fashioned and unnecessary. (As an educator, I was constantly hearing that “this is the new better way to teach!”, that usually didn’t pan out.) You seem really to be enjoying the iconoclasty of it all. I have a few college professor friends (granted, only one of whom is STEM) that seem to come down on the opposite side - they regularly express frustration that many students have been spoiled by modern learning techniques and that those are usually the worst students in their classes. who can’t focus unless a cute animation is telling them what to do. You seem to think that that is backwards thinking. I’d want to see some actual data to support that before I go down that road, especially since it so strongly contradicts my experience as an engineering student, and grad student, and as an educator for decades.

But yeah, this is off topic and a moot point because it’s going to be attempted either way and the proof will be in the pudding. This is also very hypothetical so I’m not sure how much discussion will benefit.

But if this gets ported to a different thread, I’d be happy to continue a friendly debate. But I’ll have to ignore this thread to keep from getting sucked back in.

2 Likes

For context, I’ve taught Calc I, Calc II, Calc III, differential equations, linear algebra, ODEs, PDEs, numerical methods, and discrete math at the college level and I’ve tutored stats and programming. I haven’t dug into the latest pedagogy studies in a while though, so my opinions are a mix of older pedagogy (5 years ago) and first hand experience. I should look at newer studies but just haven’t had the time lately.


To clarify, I am not advocating for ‘cute animations’ or gamification. I am advocating for a revamp of the content in these courses to focus on how mathematics is used professionally and computationally.

2 Likes

@JeremyLT I edited your first post to include some context. I hope you do not mind me putting some words in your mouth

2 Likes

I tend to agree with Kevin on the need for teaching/learning old-fashioned techniques.

I think it should be a mixture of both. I would say, the main qualm I have with how my education has been delivered is the sheer breadth of the topics covered. Partially, I blame myself for taking mechanical engineering, and having classes with every major under the STEM sun.

I fully agree with the amount of outdated techniques I was taught, because, otherwise, I would feel completely out of depth with the relevant, common techniques used today. That is, whilst no engineer in their right mind solves finite element models from first principles, I would not be able to design optimal software to run FEAs on models.

Now, my courses taught me very little programming, and spread me quite thin on the amount of tools I was meant to be adequate in, but not proficient in. So, I would say this should change. However, I would not want any more programming with ‘common numerical methods’, because I would not have time/brain-space.

So, the issue I have seen is:

  • In order to teach the beginnings, common practices have been sacrificed.

But, I would not remove any of the theory. Perhaps, just narrow the scope of the subjects taught (e.g. Literature in grade 12, with something related to the student’s (me) field of future study)

Just my experience, and I am sure there is variation in the subjects taught across varsities/countries. I have never felt like I have been taught too much theory - just too many unrelated subjects.

2 Likes

@JeremyLT

I can’t speak to your experience and knowledge, I can only speak to mine.

What I hear is analogous to when I hear kids ask, “What is the point to teaching how to multiply large numbers by hand? I can do it on my phone.” Yes, it can be done easily on a phone now, but you also learn valuable things by doing the hard work of doing it by hand.

And as an educator, for years people kept trying to tell me “Don’t teach it this way, that’s old fashioned.” I head a lot of mockery of people that were skeptical. I’ve done this dance sooooo many times.

I’m not saying education techniques can’t be examined. But I also know that there are some things that have worked for centuries. Also as an educator, over the span of decades I watched as each crop of student came in, less able than the previous one to be able to perform basic 3 R tasks and less able to focus. Some educators think the solution is to dumb it down and gamify it and remove the “boring” parts. I can only speak for myself, but I learned the most from the boring parts.

To clarify, I am not advocating for ‘cute animations’ or gamification. I am advocating for a revamp of the content in these courses to focus on how mathematics is used professionally and computationally.

Right, that is an age old debate in education, going back centuries - how much focus to put on the theoretical and how much to put on the practical. I think you can have a healthy debate on where to draw that line, but I also think that you need both. I understand that the web tutorial can do a good job teaching the abstract concept of what a derivative is. It can even do a good job of visually showing how that is applied. I don’t see how that teaches a true understanding though.

Again, to get back to the multiplication argument, sure, I could write an app that shows the concept of multiplication, holds your hand through some problems, and shows you some practical applications. But do you really learn multiplication? It was pages and pages of multiplication problems that taught me how to do multiplication. True, I can do that on my apple watch now, but there was (is) still value in learning how to do it the hard, old-fashioned way.

It makes me think about things like duolingo. It is great and breaking things down into small, easy to digest chunks. And sure, it is immensely popular. But popular does not necessarily mean better. One of my complaints about a lot of these platforms is that they judge success by the number of people that sign up instead of how many actually reach a high level of proficiency.

True, an app can show you what a derivative is. It can hold your hand through calculating a few. It can show you some practical applications. But as I said before, I always found those the easiest parts. It was the hard work of being given a word problem, having to figure out how to apply what I learned and trying and failing to come up with the answer - that was the most valuable part to me. I learned far, far more from that.

Again, I haven’t done any data science so maybe that deep understanding isn’t needed. But when I hear what is being proposed compared to what is taught in the university, my eyes go wide. This is not going to be anything close to what is taught in university. Do you honestly think that any of these people would be able to finish a Calculus 101 exam after doing the tutorial? If the online curriculum were framed as “an introduction to the concepts of calculus and how they apply to DS”, that would have been different. Even accounting for puffery, some of the claims just seem bizarre to me.

Again, I still think having a higher level understanding, even if it lacks the rigor of having to drill on all those problems, has value.

Again, I think things can be improved. When I learned calculus, the first chapter was the history of calculus and how how Newton and Leibniz derived it. True, I find that stuff fascinating now, but as a high school student, it was boring and inscrutable. About of 1/4 of the class dropped in the first week because we had no idea what was going on. I’m glad I didn’t because once we started digging into limits, things started making sense. You could have removed that entire first chapter (or maybe made it an appendix, or put it later in the book) and greatly improved the course. But all that work I did? That was very instructive.

2 Likes

that starts to becoming about all of education
my experience in higher education has been much more focused
my first semester was general chemistry, maths and phisycs, and it was just the maths and phisics needed in chemistry (after that only chemistry courses)
it would have been terrible to have a lot of other stuff there too

I’m really curious about what the new course will bring.
it will be interesting

2 Likes

Yeah, that gets into a centuries-old argument. I remember in my Philosophy of Education class, the question, “Does a plumber need to know Shakespeare?”

I would argue that well-rounded education benefits the student and helps them become a better thinker. Different things are learned differently and they all contribute to how you learn and how you understand. It changes how you approach problems. I like to think of myself as a well rounded thinker with a varied background. In my last job, there were a lot of good coders, but most of them were … errr … not exactly well-rounded. I had a bit of a reputation for talking about principles and ideas that had nothing to do with coding directly, but (at least I and a few others thought) enhanced the understanding of the problem at hand, drawing from math, science, history, philosophy, art, etc.

So, I do think a plumber benefits from knowing Shakespeare. It makes him a better human being and therefore a better plumber. Obviously you can take that too far, but there is a healthy balance.

Obviously something like FCC cannot do that. But that also doesn’t mean that there isn’t value in it or that the universities should stop doing it.

2 Likes

we have different experiences there, but our highschools may have more in depth subjects, and last longer (I got my diploma at 19, doing everything on time). If I went to uni to redo what I did in highschool I would be really contrite.
I have heard of that from people going to USA with Erasmus projects, feeling they lost time in doing general education stuff instead of focusing on their subject of choice


about teaching Maths, Khan Academy does a good job as a way to teach Maths online, with a lot of interactive exercises in which you need to have lots of paper to solve them, and a lot of repetition until you manage to get them right

2 Likes

I’m no mathematician, but I think learning the concepts of integrals and derivatives and their applications is far more useful than being made to laboriously compute them by hand. I grew up hating math, and the main reason for that was that the actual applications got lost in all the busywork. Traditional math education is like a language class that focuses entirely on spelling instead of meaning.

2 Likes

Yeah, if I remember you are in Europe.

There is a failing in the US that while our universities are on par with the rest of the world, our secondary education is lagging far behind. It is not uncommon for US university students to spend an extra year just because they have to catch up. I remember in a grad class on research techniques we had to come up with a thesis sentence for our first paper. Half of the ones that students provided weren’t even coherent thoughts, and about 1/4 weren’t even complete sentences. I have my theories about how this has gotten this bad, but that would take us further off topic.

3 Likes

Yeah, I would totally keep roughly the same amount of theory. But I don’t really see much utility in drilling students on the quotent rule for integration.

To take a practical example, let’s think about data science.

To do data science correctly, you need to understand statistics. To understand statistics you need to understand probability distributions. To do that, you need integration.

I think it is far more valuable for a student to be able to numerically integrate a cumulative distribution to compute a probability than for a student to be able to use one of a myriad of tricks to do that by hand.


At the end of the day, I’m perfectly happy when I see a student that can correctly model and set up a problem but can’t quite get the fiddly details straight on an exam, because those students will be able to iron out implementation details with practice. But I don’t see an emphasis on tricks that is the default is college calc doing a lot to help students get to that point.


Aside:

I actually sorta do that, but that’s because I write FEM software.

1 Like

Yeah, you can string words together… I can say, “learning to paint by painstakingly painting is like teaching cooking without the light on.” I can put those ideas together but that doesn’t make it a cogent argument. I don’t really understand your simile.

I could just as easily say that “teaching calculus without exercises is like teaching swimming without actually getting in the water”.

2 Likes

I think there should be exercises. However, I think that those exercises should be about using calculus to solve problems with some context instead of drilling hand integration rules that are only used in a handful of academic classes.

I go back and forth on this:

  • I find many advancements made in subjects (computational maths, especially) come from these specific tricks.
  • Yes, teach a student the basics (non-tricks), and watch them explore in their own time (if they are so inclined) to the point where they are inventing the tricks once more.
  • I have only benefitted from being taught the tricks, though. Sure, partially because I am forced to need to come across the situations where the tricks are necessary, but also because I find if I am over-taught a subject, I can easily get the job done.

This was my point - had you just been taught to use the software, it would be have a huge extra on you to self-learn the foundation on which the software sits.

1 Like

I like to think freeCodeCamp is complimenting a lot of the missing features in curricula, with the direction it is heading.

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.

2 Likes