Let us discuss a proportion between the general and special solution methods in training programs. This proportion is an important parameter of the learning process. It was verified by almost a century of pedagogical practice, and there is no serious reason to break it.

General methods apply to a whole class of math problems while each special method applies to a particular type of problem. For instance, there are general solution methods for algebraic equations of the third degree. As yet, all school programs include special kinds of equations of the third degree that are solvable by special methods. It may seem strange – to learn a set of special methods and types of equations solvable by these methods when there is a universal way that guarantees the result. Are special methods easier? No, they are not. Why then learning special methods is so important? Because a few narrow classes of higher degree equations admit solutions by these methods (whereas there exists no any general solution method for such equations).

Sometimes general algorithms give no result at all. The so-called “universal substitution” in trigonometry allows reducing any trigonometric equation to an algebraic equation. The resulting algebraic equation, however, can appear so complicated that it cannot be solved. On the other hand, the initial trigonometric equation may be solvable with the help of special methods.

Did you ever ask yourself why you were so intensively “tortured” with trigonometry in school? In fact, this subject is mandatory for astronomers and geodesists only. Some 5-6 formulas are used in physics. The reason is that trigonometry is full of special methods. By learning special methods you learn various math skills.

Thus, the effective learning process should include both general and special methods. General methods provide a universal solution path, special methods are good for training and help in the situations when general methods fail. Mathematics software, to provide an effective math training, should also observe a proportion between general and special solution methods. Let us have a look at the state of affairs on a software market.

## 2 main approaches in software development

There are two main approaches in the development of training software (plus many hybrids). We’ll call them – “hypertext” and “symbolical”. The “hypertext” approach implies large embedded databases of math problems and related algorithms. Solutions are introduced beforehand and therefore the proportion between general and special methods of solution is observed. Selection of math examples and corresponding solution methods is made by a “paedagogic” part of the team responsible for the training functions of software. The path of the software development looks more or less as follows:

- Development of contents (topics to be included)
- Development of the database of examples
- Development of solution algorithms. Each example is solved by a method that is expedient from the point of view of the training process. One same example can be solved by different methods in different sections of contents.
- Logical design

An important feature of this scheme is that **teachers work first**. This ensures that the discussed proportion is not skewed.

The “symbolical” approach implies a large database of solving algorithms and input-output systems of examples entry and solution writing. Solutions are produced during program work. The path of the software development looks more or less as follows:

- Development of solution algorithms
- Development of data entry editor enabling entry of examples corresponding to the developed algorithms (or generation of examples corresponding to the developed algorithms)
- Development of contents

An important feature of this scheme is that **programmers work first**. They know that the system of search over algorithms should be simple; otherwise, the process of solution can draw out considerably. They know that the smaller is the total number of algorithms, the faster program works. They know that general algorithm covers a very large body of tasks. As a result, the preference will be given to the general methods of solution. Predominance of general methods is not a big defect of a “symbolic” program. The developers should just write somewhere in the corner: “general methods of solution”. The program teaches general methods – that is good enough. The “solving” program does not care what method to apply, and the universality is its main feature. In the training program, however, the needed method of solution should be applied at the needed spot.