Six years ago I was laid off from an engineering job, and I decided it was time, after 16 years in the field, to review some of the fundamentals that I had forgotten in the intervening time. One of my co-workers, before I left, had been working with his daughter on Algebra using the site Purple Math. I also read James Gleick’s book Chaos at that time, and that got me interested in doing a little exploring.
I started by reviewing geometry, algebra, calculus, and differential equations using the The Easy Way series. I checked them out of the library and this led me to reading some of the other books on the shelves there. I came to realize that there was a whole world of mathematics that I really had no idea existed, especially after I made the attempt to read a math paper from arXiv and realized that I had no idea what the first paragraph was saying. Hilbert Spaces? Riemannian Geometry? Topological forms? Rings? Lie Groups? What were these things? More importantly, why had we not studied those in school? They were interesting, much more interesting, than the calculations that I had to master in high school and college.
In any case, I’ve found that math is also important in programming, both for solving problems like the permutations program that I covered recently, as well as others. It’s also important for designing algorithms, and so on. Logic is a part of mathematics and is the basis for all computer programs.
So what I’d like to do in this occasional series is look at some of the concepts I come across in the course of learning to program. I figure the first couple will look at permutations, and some basic set theory. I will also look at the trials and tribulations I am having of learning to put math equations in LaTeX for my blog posts!