One of the joys of being a parent is helping them learn. I'm very lucky, in that regard, because my kids love learning. In fact, my son Zac really loves Math. He gets that from both his Mom and his Dad.

So, when he was a little guy, I made a Word Macro to make math work sheets. At first this was just for Addition. I'd load Word up, tell the macro that I wanted the work sheet to be for +1, it'd create 50 random +1 math problems, I'd print it out, give it to Zac, and he'd do it. We'd do that over and over until he was really good at +1. Then, we'd move on to +2. Etc. Etc. Once he'd mastered addition, I changed the math test to do a +1 through +9 review work sheets. He'd do that until he was really good at it. This progressed thru subtraction, then multiplication, and then division. Around the summer between 2nd and 3rd grade, he had all his math facts squarely mastered.

All along, one of the challenges for him was actually writing the answers down on paper. It was certainly important that he get better at his dexterity, but it also skewed how well he knew the math facts.

So ... Being the speech guy that I am, I always thought, "Hmm... Wouldn't it be cool if I wrote a Math Test program for him?" Then, a few years ago when we started developing the Windows Speech Recognition Macro system, I always had in the back of my mind, "Yeah... I should make a Math Test macro someday."

Last weekend, I finally decided to give that a go. About an hour later I had the basic macro done. You can download it here.

It's self documenting, but if you're a bit skeptic about reading XML, here's the gist of what you can say to start the math test (the rest of the math test should be self-explanatory):

Math Test

Math Test [Plus/Minus/Times/Divided by] [0to9]
Math Test [Plus/Minus/Times/Divided by] [0to9] to [0to9]

[0to99] problem [Addition/Subtraction/Multiplication/Division] Math Test
[0to99] problem [Addition/Subtraction/Multiplication/Division] Math Test [0to9] to [0to9]

[0to99] problem Math Test [Plus/Minus/Times/Divided by] [0to9]
[0to99] problem Math Test [Plus/Minus/Times/Divided by] [0to9] to [0to9]

Let me know what you think!