Math Triples

2010-08-30 : I'm notorious within my family for being slow at basic arithmetic. My dad and I spent many hours with flash cards, without much luck. My wife says my daughter is not allowed to learn math from me until she gets to algebra. :)

I'd still like to fix this problem. Despite previous failures, I still think the key is to drill more and think less. How can I make this as effective as possible?

My Observation

It doesn't do any good to just be able to add; you also need to be able to subtract. You can't just multiply, you also need to divide. The relationships you are trying to learn revolve around triples of numbers.

For example, you need to know 1+2=3, 2+1=3, 3-1=2, and 3-2=1 (and maybe 1-3=-2 and 2-3=-1). You can condense this down to learning the 1-2-3 triple, like so:

3
12

This is based on the old electronics mnemonic:

E
IR
Cover the variable you need, and you get the formula to calculate it from the other two. Need I? It's E/R. Need E? It's I*R.

So, learn the triple and be able fill in any missing number given the other two (with as little thought as possible). The open question is, will knowing the triples translate into being able to perform arithmetic faster? I think the answer is yes, but I don't know for sure.

We can halve the number of triples to learn by canonicalizing the order of the bottom two numbers: the smaller number is always first. I suspect that if it is possible recognize a triple at all when working a problem in a normal written form (or just in your head), then ordering issues will be negligable and you will be able to recognise the triple no matter where the numbers are with respect to each other.

The Program Requirements

So, I want to create a program that understands the triples concept and can be used learn them. I want the program to present "flash cards" of triples so I can type in the missing number as fast as possible. The numeric keypad is generally the fastest way to enter numbers, so I should be able to control the program without moving my hand from the numeric keypad. I want to keep track of every "flash card" and how well I'm doing so it can quiz me more often on the ones I'm having trouble with.

Bonus features: It would be nice to have a visualization of how well I'm doing - which triples I know well and which I'm having trouble with. It would be nice if there was a way to slowly bring in new triples as I learn the old ones. It would be nice to be able to be able to save my progress (and which triples I'm having trouble with) from session to session. It would be nice to have a drill timer so I can practice for 5 minutes without watching the clock.

The Result

Here is a screenshot of a drill in progress.

The right window is the main window. The green box indicates the number that must be filled in. The top progress bar counts down the time in the drill. The bottom progress bar counts down the time to enter the correct answer, currently 2 seconds. If there is a timeout or the wrong answer is entered, the box turns red and the timer stops, allowing you think and carefully enter and review the correct answer before proceeding.

The left window is the status window. It shows a visualization of all of the triples in the set and the average time to fill in each blank. Blue is fast, yellow is slow; the goal is to turn the whole thing blue. Gray squares are triples that have not been "achieved" yet - you must correctly fill in the blanks for each old triple before you can try new a new triple. Using the menus, you can load and save your progress, choose addition or multiplication triples, and set the drill timer.

Try it now using Java Web Start, or download the jar.

Usage: Hit Enter to start the quiz. Type in the correct number then hit Enter. Hit "-" or "+" to correct a typo. Hit "/" or Esc to stop the quiz. You can start and stop the quiz as much as you want. Results are cumulative until you start a new quiz through the File menu. You can also save your progress to a file and load it later to continue where you left off. Use the drill timer to automatically stop the quiz after some number of minutes.

You can specify a progress file (-progress fileName) and start an initial drill timer (-drill minutes) from the command line.

Note that some file features such as auto saving are unavailable under Java Web Start due to security restrictions.

Source: https://latenighthacking.com:8443/svn/code_root/2010/MathTriples

C o m m e n t s :    
(nothing yet)
Edit