I think that the way good games teach things is basically being engaging by constantly presenting content that’s in the learner’s zone of proximal development, offering any guidance needed for mastering that, and then gradually increasing the level of difficulty so as to constantly keep things in the ZPD. The player is kept constantly challenged and working at the edge of their ability, but because the challenge never becomes too high, the challenge also remains motivating all the time, with the end result being continual improvement.
For example, in a game where your character may eventually have access to 50 different powers, throwing them at the player all at once would be overwhelming when the player’s still learning to master the basic controls. So instead the first level just involves mastering the basic controls and you have just a single power that you need to use in order to beat the level, then when you’ve indicated that you’ve learned that (by beating the level), you get access to more powers, and so on. When they reach the final level, they’re also likely to be confident about their abilities even when it becomes difficult, because they know that they’ve tackled these kinds of problems plenty of times before and have always eventually been successful in the past, even if it required several tries.
The “math education is all about teaching people how to stay focused on hard abstract problems” philosophy sounds to me like the equivalent of throwing people at a level where they had to combine all 50 powers in order to survive, right from the very beginning. If you intend on becoming a research mathematician who has to tackle previously unencountered problems that nobody has any clue of how to solve, it may be a good way of preparing you for it. But forcing a student to confront needlessly difficult problems, when you could instead offer a smoothly increasing difficulty, doesn’t seem like a very good way to learn in general.
When our university began taking the principles of something like cognitive apprenticeship—which basically does exactly the thing that Viliam Bur mentioned, presenting problems in a smoothly increasing difficulty as well as offering extensive coaching and assistance—and applying it to math (more papers), the end result was high student satisfaction even while the workload was significantly increased and the problems were made more challenging.
If you intend on becoming a research mathematician who has to tackle previously unencountered problems that nobody has any clue of how to solve, it may be a good way of preparing you for it.
Not only research mathematicians but basically anyone who’s supposed to research previously unencountered problems. That’s the ability that universities are traditionally supposed to teach.
If that’s not what you want to teach, why teach calculus in the first place? If I need an integral I can ask a computer to calculate the integral for me. Why teach someone who wants to be a software engineer calculus?
There a certain idea of egalitarianism according to which everyone should have an university education. That wasn’t the point why we have universities. We have universities to teach people to tackle previously unencountered problems.
If you want to be a carpenter you don’t go to university but be an apprentice with an existing carpenter. Universities are not structured to be good at teaching trades like carpenting.
Not only research mathematicians but basically anyone who’s supposed to research previously unencountered problems.
Isn’t that rather “problems that can’t be solved using currently existing mathematics”? If it’s just a previously unencountered problem, but can be solved using the tools from an existing branch of math, then what you actually need is experience from working with those tools so that you can recognize it as a problem that can be tackled with those tools. As well as having had plenty of instruction in actually breaking down big problems into smaller pieces.
And even those research mathematicians will primarily need a good and thorough understanding of the more basic mathematics that they’re building on. The ability to tackle complex unencountered problems that you have no idea of how to solve is definitely important, but I would still prioritize giving them a maximally strong understanding of the existing mathematics first.
But I wasn’t thinking that much in the context of university education, more in the context of primary/secondary school. Math offers plenty of general-purpose contexts that may greatly enhance one’s ability to think in precise terms: to the extent that we can make the whole general population learn and enjoy those concepts, it might help raise the sanity waterline.
I agree that calculus probably isn’t very useful for that purpose, though. A thorough understanding of basic statistics and probability would seem much more important.
There an interesting paper about how doing science is basically about coping with feeling stupid.
No matter whether you do research in math or whether you do research in biology, you have to come to terms with tackling problems that aren’t easily solved.
One of the huge problems with Reddit style New Atheists is that they don’t like to feel stupid. They want their science education to be in easily digestible form.
As well as having had plenty of instruction in actually breaking down big problems into smaller pieces.
I agree, that’s an important skill and probably undertaught.
The ability to tackle complex unencountered problems that you have no idea of how to solve is definitely important, but I would still prioritize giving them a maximally strong understanding of the existing mathematics first.
Nobody understands all math. For practical purposes it’s often more important to know which mathematical tools exist and having an ability to learn to use those tools.
I don’t need to be able to solve integrals. It’s enough to know that integrals exists and that Wolfram Alpha will solve them for me.
And even those research mathematicians will primarily need a good and thorough understanding of the more basic mathematics that they’re building on.
I’m not saying that one shouldn’t spend any time on easy exercises. Spending a third of the time on problems that are really hard might be a ratio that’s okay.
A thorough understanding of basic statistics and probability would seem much more important.
Statistics are important, but it’s not clear that math statistics classes help. Students that take them often think that real world problems follow a normal distribution.
If that’s not what you want to teach, why teach calculus in the first place? If I need an integral I can ask a computer to calculate the integral for me. Why teach someone who wants to be a software engineer calculus?
Calculus isn’t as important to software engineering as some other branches of math, but it can still be handy to know. I’ve mostly encountered it in the context of physical simulation: optics stuff for graphics rendering, simplified Navier-Stokes for weather simulation, and orbital mechanics, to name three. Sometimes you can look up the exact equation you need, but copying out of the back of a textbook won’t equip you to handle special cases, or to optimize your code if the general solution is too computationally expensive.
Even that is sort of missing the point, though. The reason a lot of math classes are in a traditional CS curriculum isn’t because the exact skills they teach will come up in industry; it’s because they develop abstract thinking skills in a way that classes on more technical aspects of software engineering don’t. And a well-developed sense of abstraction is very important in software, at least once you get beyond the most basic codemonkey tasks.
The reason a lot of math classes are in a traditional CS curriculum isn’t because the exact skills they teach will come up in industry
To that extend the CS curriculum shouldn’t be evaluated by how well people do calculus but how well they do teach abstract thinking.
I do think that the kind of abstract thinking where you don’t know how to tackle a problem because the problem is new is valuable to software developers.
I think that the way good games teach things is basically being engaging by constantly presenting content that’s in the learner’s zone of proximal development, offering any guidance needed for mastering that, and then gradually increasing the level of difficulty so as to constantly keep things in the ZPD. The player is kept constantly challenged and working at the edge of their ability, but because the challenge never becomes too high, the challenge also remains motivating all the time, with the end result being continual improvement.
For example, in a game where your character may eventually have access to 50 different powers, throwing them at the player all at once would be overwhelming when the player’s still learning to master the basic controls. So instead the first level just involves mastering the basic controls and you have just a single power that you need to use in order to beat the level, then when you’ve indicated that you’ve learned that (by beating the level), you get access to more powers, and so on. When they reach the final level, they’re also likely to be confident about their abilities even when it becomes difficult, because they know that they’ve tackled these kinds of problems plenty of times before and have always eventually been successful in the past, even if it required several tries.
The “math education is all about teaching people how to stay focused on hard abstract problems” philosophy sounds to me like the equivalent of throwing people at a level where they had to combine all 50 powers in order to survive, right from the very beginning. If you intend on becoming a research mathematician who has to tackle previously unencountered problems that nobody has any clue of how to solve, it may be a good way of preparing you for it. But forcing a student to confront needlessly difficult problems, when you could instead offer a smoothly increasing difficulty, doesn’t seem like a very good way to learn in general.
When our university began taking the principles of something like cognitive apprenticeship—which basically does exactly the thing that Viliam Bur mentioned, presenting problems in a smoothly increasing difficulty as well as offering extensive coaching and assistance—and applying it to math (more papers), the end result was high student satisfaction even while the workload was significantly increased and the problems were made more challenging.
Not only research mathematicians but basically anyone who’s supposed to research previously unencountered problems. That’s the ability that universities are traditionally supposed to teach.
If that’s not what you want to teach, why teach calculus in the first place? If I need an integral I can ask a computer to calculate the integral for me. Why teach someone who wants to be a software engineer calculus?
There a certain idea of egalitarianism according to which everyone should have an university education. That wasn’t the point why we have universities. We have universities to teach people to tackle previously unencountered problems.
If you want to be a carpenter you don’t go to university but be an apprentice with an existing carpenter. Universities are not structured to be good at teaching trades like carpenting.
Isn’t that rather “problems that can’t be solved using currently existing mathematics”? If it’s just a previously unencountered problem, but can be solved using the tools from an existing branch of math, then what you actually need is experience from working with those tools so that you can recognize it as a problem that can be tackled with those tools. As well as having had plenty of instruction in actually breaking down big problems into smaller pieces.
And even those research mathematicians will primarily need a good and thorough understanding of the more basic mathematics that they’re building on. The ability to tackle complex unencountered problems that you have no idea of how to solve is definitely important, but I would still prioritize giving them a maximally strong understanding of the existing mathematics first.
But I wasn’t thinking that much in the context of university education, more in the context of primary/secondary school. Math offers plenty of general-purpose contexts that may greatly enhance one’s ability to think in precise terms: to the extent that we can make the whole general population learn and enjoy those concepts, it might help raise the sanity waterline.
I agree that calculus probably isn’t very useful for that purpose, though. A thorough understanding of basic statistics and probability would seem much more important.
There an interesting paper about how doing science is basically about coping with feeling stupid.
No matter whether you do research in math or whether you do research in biology, you have to come to terms with tackling problems that aren’t easily solved.
One of the huge problems with Reddit style New Atheists is that they don’t like to feel stupid. They want their science education to be in easily digestible form.
I agree, that’s an important skill and probably undertaught.
Nobody understands all math. For practical purposes it’s often more important to know which mathematical tools exist and having an ability to learn to use those tools.
I don’t need to be able to solve integrals. It’s enough to know that integrals exists and that Wolfram Alpha will solve them for me.
I’m not saying that one shouldn’t spend any time on easy exercises. Spending a third of the time on problems that are really hard might be a ratio that’s okay.
Statistics are important, but it’s not clear that math statistics classes help. Students that take them often think that real world problems follow a normal distribution.
Calculus isn’t as important to software engineering as some other branches of math, but it can still be handy to know. I’ve mostly encountered it in the context of physical simulation: optics stuff for graphics rendering, simplified Navier-Stokes for weather simulation, and orbital mechanics, to name three. Sometimes you can look up the exact equation you need, but copying out of the back of a textbook won’t equip you to handle special cases, or to optimize your code if the general solution is too computationally expensive.
Even that is sort of missing the point, though. The reason a lot of math classes are in a traditional CS curriculum isn’t because the exact skills they teach will come up in industry; it’s because they develop abstract thinking skills in a way that classes on more technical aspects of software engineering don’t. And a well-developed sense of abstraction is very important in software, at least once you get beyond the most basic codemonkey tasks.
To that extend the CS curriculum shouldn’t be evaluated by how well people do calculus but how well they do teach abstract thinking. I do think that the kind of abstract thinking where you don’t know how to tackle a problem because the problem is new is valuable to software developers.