1 ) A method of teaching mathematics comprising: a) creating a plurality of values, b) creating a plurality of value positions to which said values can be assigned, c) randomly or otherwise assigning said values to said value positions such that the values assigned to one or more of the value positions is initially unknown to the student, d) creating a plurality of operations or functions to be used in conjunction with said value positions, e) providing a means to associate said value positions with said operations, f) providing a display means for the output resulting from said value positions associating with said operations, g) providing a means for the student to specify which value was assigned to which value position, and h) providing a means to indicate whether or not said specification was correct.