I read this interesting article on mathematics and software engineering. Like many software engineers, I’ve had extensive mathematics training during my computer science education and of course in high school. The problem is, I don’t seem to remember much of it. I passed courses on statistics, probability theory, linear algebra, discrete mathematics 1 & 2, temporal logic, etc. I have a vague idea that linear algebra was about mostly about matrix manipulation and resolving formulas. But I haven’t really used any of that stuff since. I did use probability theory on a number of occasions when trying to figure out Bayesian belief networks. But even that is eight years ago now. At the time, I was wrapping my mind around the core algorithms of that technology (which involves some exposure to Bayes’ theory of course) but right now I wouldn’t get very far describing how a Bayesian belief network works. However, I know how to pick up the basics in afternoon of reading and even what to read. If ever needed, I’ll be able to brush up my skills.

And that is the main point of the article. Current mathematics education, especially in highschools, does not teach students the skills they need: namely to be able to aqcuire the mathematics knowledge they need. Instead mathematics education is all about force feeding large amounts of algorithms in the hope that some of it will be remembered. For most people this is not true. The few people that do remember end up studying mathematics. This is what the author of the post I’m citing calls depth first mathematics. They throw lots of stuff on integration theory at you in high school without actually explaining where it is coming from, how it will be useful to you in the future and how this fits in the overall mathematic tradition. So you dutifully learn by doing, pass the exam and then forget all about it in period of two years. That’s how I got through highschool and I even enjoyed doing some of the math.

The author instead pleads for breadth first mathematics. That is, don’t dive straight in to the algorithms but explain where it all comes from, what the concepts are, how they relate to each other. The article I posted a few days ago on an ebook on flying an airplane is a good example of how people can acquire math knowledge. The book assumes a basic understanding of physics. The concepts should trigger some memories of boring physics lessons in highschool. The author does a good job of explaining all the concepts relevant and before you know it you have a aqcuired some in depth knowledge on some crucial aerodynamics. The knowledge is immediately useful because it helps understand why the damn plane doesn’t drop out of the sky. It sticks too, as long the topic of keeping the plane up remains interesting to you.

try programming 3d engines / physics engines for games…. there’s lots of mathematics involved.

Sure, but learning it is a lot easier on the job than beforehand. I learned most of the linear algebra you typically need for 3d graphics during a linear algebra course. I learned it, passed the exams and I’ve forgotten most of it now.

Programming 3D graphics would have been a good oppprtunity to put it to use and really learn it. Without any practical application of the knowledge your brain just filters it out as irrelevant.