I think, there is one more topic a game developer should know about that fell through the cracks. It's computer algebra systems.
The rationale is simple. If you want to learn math fast, be prepared that you will stumble upon the lack of training as soon as you go from theory to applications. Normally, you need to go through a few books of exercises to start feeling comfortable with calculus or discrete math. And that's where computer algebra systems step in. They do your math for you.
It's much simpler to learn the basics of any CAS than to train yourself to solve all kinds of equations with pen and paper. It's easier (and more fun to be honest) to practice with a CAS and gain experience on the go too.
In my book, an introduction to SymPy takes only a few pages, but enables practicing with linear systems, matrix operations, calculus, polynomial approximation and interpolation, Bezier curves, NURBS, and polynomial transformations as the book progresses.
And SymPy is not even the most potent CAS out there. It is free and easily accessible though. If you know a little Python, you already know a little SymPy.
I used a lot of SageMath (https://www.sagemath.org) when I was an undergrad. Very easy to use piece of softawre for Python in case anyone want to explore computer algebra systems.
Sage is beautiful. And, as far as I understand, it is build on top of SymPy. But it brings in its own language. Nothing wrong with that though.
But what I love about pure SymPy is that it doesn't bring anything new to the language at all. You just write in Python, business as usual, it's just half of your variables are now computable symbols, and you can solve things symbolically whenever you want to.
Yes, +1 for SymPy being the perfect tool for teaching (very little to new learn learn after the initial call to `symbols` to create the symbolic vars).
The best part for me is the SymPy API methods have the same names as the concepts I am trying to teach: solve, expand, simplify, factor, integrate, etc.
Hm... I don't know of any. For precalculus it wouldn't make sense, since the whole point of precalculus is to make sure learners can do the `solve`, `factor`, `expand`, etc. verbs using pen and paper. These are generally useful skills whenever you're manipulating math expressions. It wouldn't make sense to "skip" this part by using SymPy.
For calculus it would make a lot of sense though. You can learn the formulas and general rules so you can do derivative and integrals by hand, but I think we could cut-down significantly on the "integration techniques" topics without any loss. I would love to see a course like that... but I doubt any teacher would be "allowed" to teach it this way, since CALC I and CALC II course curriculum is usually imposed by the university.
I might misinterpret the parent, but I think the parents idea is more that it helps when deriving the math used in a lot of video game programming. (e.g. simplifying expressions in shader code, or deriving closed forms for intersection tests).
Where this might help is if you don't have a strong background in algrabra, and don't know all the properties of e.g. quaternions by heart. You'd implement essentially the answer that you get after playing with a computer algebra system
Computer Algebra Systems basically help you do math. If you want to integrate an expression, or solve a system symbolically, you can, of course, sit down and do that with pen and paper. Or you can "ask" a CAS to do this for you.
The rationale is simple. If you want to learn math fast, be prepared that you will stumble upon the lack of training as soon as you go from theory to applications. Normally, you need to go through a few books of exercises to start feeling comfortable with calculus or discrete math. And that's where computer algebra systems step in. They do your math for you.
It's much simpler to learn the basics of any CAS than to train yourself to solve all kinds of equations with pen and paper. It's easier (and more fun to be honest) to practice with a CAS and gain experience on the go too.
In my book, an introduction to SymPy takes only a few pages, but enables practicing with linear systems, matrix operations, calculus, polynomial approximation and interpolation, Bezier curves, NURBS, and polynomial transformations as the book progresses.
And SymPy is not even the most potent CAS out there. It is free and easily accessible though. If you know a little Python, you already know a little SymPy.