Training software in mathematics is rather young and rapidly developing phenomenon. A non-specialist can hardly grasp the perspectives of this development and see how programs can actually help in the learning process. The words "interactive", "interesting", etc., circulating in the Internet, are uninformative. At best, you can guess that the reviewer liked the program; at worst, that he was busy with his own business and did not see the program at all. The training program is a tool designed to help in formation of concrete knowledge, abilities and skills. It would be useful to have some quantitative and qualitative parameters reflecting training capabilities of software. Below we specify certain quality criteria, which may help the user select the program that suits him best.
Any training program is a reduced form of the model "student - teacher". The model is too complex to be programmed in full. Any developer will simplify this model in his own way. He will take a subsystem of relations as a basis for his program. The selected subsystem of relations determines the program's training capabilities. This idea allows specifying criteria for program evaluation. For example, if a program does not include formulas as a separate structure or if the program's vocabulary consists of 50 phrases, then by no mean this program can:
Group of characteristics representative of pedagogical potential
Types of training capabilities
We didn't trace internal relations between the accentuated knowledge, abilities and skills. For instance, an ignorance of formulas results unambiguously in the absence of problem-solving skills. Such internal relations are accounted for if knowledge is acquired in the proper order. The "natural" order corresponds to that in the list (although not without deviations, as usual in pedagogics). There are numerous books and papers expanding on this topic. An ordinary user should simply understand: if a program is not capable to build up knowledge related with the internal cause-and-effect relationships, then all talks that this program can train problem-solving skills are nonsense.
All considered relations are necessary. This means that if a relation is absent, then in no way the program can offer a corresponding training function.
The described characteristics and conditions allow evaluating potentials of any training program without any special knowledge in pedagogics or programming. Just find out general properties of a program, use the above relations and make your own conclusion about training potential. In short: if an input (technical parameters) lacks this and that parameter, then an output (training capabilities) will lack this and that user option. Finally, the user has to decide does he need the absent training option or not.
A concluding remark. The above criteria for evaluation of training programs are certainly not unique or exhaustive. Any team of developers can offer a system of criteria related to their understanding of the model "student - teacher". Given all subjectivity of the developers, I always prefer their evaluation of their own "child" to any evaluation by experts "in general questions".
Vladimir V. Kukoverov