Образователни технологии

COMPUTER PROGRAMMING IN MATHEMATICS EDUCATION

Отворен достъп

Резюме. In the last few decades, the contemporary informational technologies introduced new challenges in front of the education in mathematics. These challenges concern an essential part of the methodology of education itself. In this paper we present four different directions in which the important knowledge of computer programming may extend the capabilities of the educational process towards achieving the desired goals.

Ключови думи: mathematics education; computer programming; Wolfram language; Analytical Geometry; continuity; local extrema

Introduction

The incorporation of the contemporary informational technologies can turn from a threat into a tool for overcoming the crisis in the education in mathematics. This is the conclusion from the experience of New Bulgarian University in the education in some mathematical disciplines using a computer. The adoption of the contemporary informational technologies results in a new structure of education, which we call practical oriented education. The practical oriented education in mathematics achieves the educational goals using new forms, methods and means of teaching (Marinov, 2014).

The goal of the education is students to achieve:

– fundamental knowledge and skills, and ability to operate with them;

– skill to solve standard and nonstandard problems;

– skill to augment their knowledge by themselves.

A new educational type is developed in the form of computer labs, and the roles of lectures and practical classes is changed (Marinov, 2014). The three educational forms are implemented with a system of related problems in agreement with the presented approach for education based on a system of problems in (Asenova & Marinov 2019). This organization of the education places in the center of the process the learner himself, and the scientific software (in our experience this is the symbolic computation system Mathematica) plays the role of a tool for education and communication (Marinov, 2014).

We will note that the choice of the symbolic computation system Mathematica is due to its good didactic capabilities:

– for symbolic calculations in all mathematical disciplines;

– for visualization;

– for teaching proofs;

– for concepts introduction.

Besides that, the system is successfully used in scientific research and practical problems solution. Of course, there are other systems with the above qualities, and our choice of software system is more or less arbitrary, and is not a result of comparison between the existing systems. Also, in our work just a small part of the capabilities of the system Mathematica are used. We are convinced that the above methodology for teaching mathematics can be implemented without principal problems with the aid of the others software systems as well.

The adoption of the scientific software as a tool for education fundamentally changes the system of problems that are used in the educational process. A major part of the traditionally used problems can be solved directly in one step with one of the huge variety of build-in functions. More over, because of the variety of the build-in functions, many of the problems cannot play their previous part in the overall educational process. Such problems are: to draw the graph of a function, that is given in explicit, implicit or parametric form;

– to find the maximum (minimum) of a function on a compact domain;

– to calculate the derivative of a function;

– to calculate the integral of a function;

– to find the inverse or the pseudoinverse of a matrix, etc.

In this way the systems of problems, that has been approved by the good practices, are destroyed. Moreover, the insufficiency of problems for application of the studied material is significant. This insufficiency is overcame using the new capabilities of the scientific software. The good didactic capabilities of the system Mathematica allow to involve more natural, and at the same time more convincing problems, that help the introduction of the new knowledge. The path to the problems that are rich in content is getting much shorter (Marinov, 2008). The studying of proofs is getting possible (see (Marinov & Asenova, 2013)), which is a topic that is often neglected in university courses in mathematics in non-mathematical programs.

The integrated environment of the symbolic computation system Mathematica is comfortable for description of the relations between statements and concepts in different fields. In this way an opportunity is given for introduction of new problems that demonstrate the relations between the different studied subjects, and between different mathematical subjects as well. We will point out the relation to geometry, as an important one.

The adoption of the scientific software as a tool for education gives a good prerequisite to restore the relations of studying of mathematics with the external subjects. Traditionally, the relations to physics, economics, and biology are examined. In studying of mathematics by students in informatics programs, of course the relation to informatics is brought to the foreground. In this sense, the computer programming can be examined in two ways. The first one is programming as a field in which the knowledge of mathematics has its applications. With this paper we would like to draw attention to the other way – in which computer programming gives opportunity to include new types of problems to each of the systems of problems used in the education in mathematics. Something more, the well-structured such systems of problems give opportunity the skills and creativity that are developed by programming, to be included in education in mathematics. This makes the introduction of concepts much more effective (Asenova & Marinov, 2018), and the mathematical knowledge itself much more durable.

Computer programming in Mathematica

The symbolic computation system Mathematica introduces a comfortable integrated environment for programming in which easily can be applied the knowledge in different fields of mathematics. The programming language of Mathematica is called Wolfram Language. A computer program written in Wolfram Language is a sequence of commands, executed in interactive mode. Basic elements of the language include: numbers (integers, rational, real, complex), variables, main constants, arithmetical operators, comparison, logical operators, function identifiers, brackets. There is no symbol for end of expression, unless we want to execute the expression without printing – in this case semicolon is used.

Wolfram Language supports the following programming paradigm elements:

– symbolic computation (global and local transformation rules, usage of patterns in both global and local transformation rules);

– procedural programming (conditional statements, repeatedly executable statements, compound expressions, local variables);

– functional programming (definition of named, pure and anonymous functions).

The language itself has a comfortable syntax and allows complex programs to be written with relatively short program code (see (Wolfram, 2019)).

Computer programming in mathematical education

Even thought nearly all mathematical disciplines that are studied in the university can be pointed out, we will give four examples from the introductory courses in mathematics.

Graphics and animations

Graphics and animations are present in many of the problems that are used in the educational process. They allow the intuition in the understanding of abstract concepts and proofs. Their implementation in system Mathematica is made easier by the various buildin functions. What remains to be implemented is the connection of the appropriate buildin functions with the mathematical knowledge into a short program. That is why there are two ways in which graphics and animations are effectively used. The first approach is when the lecturer gives the appropriate graphs and animations that illustrate the introduced content or during a numerical experiment that shows an idea, later developed in to a proof, etc. The second approach is when the students themselves implement the graphs by connecting the assimilated knowledge with their ability to write a short program. These type of problems are usually aimed in the development of their creativity.

Example 1. (Continuity at a point.) We define the function

(1)\[ f(x)=\left\{\begin{array}{c} \sin \left(\tfrac{\pi x}{2}\right)+\tfrac{1}{2} \quad \forall x \lt 1 \\ \tfrac{7}{4}, \quad x=1 \\ -x^{2}+4 x-1, \quad \forall x \gt 1 \end{array}\right. \]

(i) Using an animation in which the points \(x\) and \(x_{0}\) can be moved on the plot of the function \(y=f(x)\) (x) (see Figure 1), we can attract the attention of the students to the specific features, that comprise the term continuity. For example, we select a point \(x_{0}\), and we show the fact that in some cases \(f(x)\) can be arbitrary close to \(f\left(x_{0}\right)\), and in other cases - this is impossible. Something more, in the cases it the closeness is guaranteed by the closeness of \(x\) to \(x_{0}\). In this way the conclusion is reached that for the examined function, in \(x_{0} \neq 1\), the following property is true: \(f(x)\) can be arbitrary close to \(f\left(x_{0}\right)\), as long as \(x\) is arbitrary close to \(x_{0}\).

xx01fxfx0xyf

Figure 1.

(ii) The animation helps to set aside the particular function. For this purpose, it is enough to analyze a number of different functions using the same program. Naturally we reach the definition of Koshi for continuity of a function in a point. A small complement to the initial animation allows us to illustrate it as well.

(iii) The full program code of the animation is given in Listing 1.

(1) Lines 1 and 2 define the function \(f(x)\).

(2) Lines from 4 to 8 define the coordinates of the points of the animation.

(3) Lines from 9 to 25 generate the graph of the function and the locations of the labels in the animation.

(4) On the line 26 the animation itself is assembled.

Ha,b,x:Signxa12Signbx12;fx:Sinx212H4,1,xx^24x1H1,5,x;a3;b3;Xxx,0;cxx,fx;dx,x0:Ifxx0,0,Limitft,tx,Assumptionstx,Ifxx0,0,Limitft,tx,Assumptionstx,0,fx0Ax,x0:Ifxx0,x,Limitft,tx,Assumptionstx,Ifxx0,x,Limitft,tx,Assumptionstx,x0,fx0;px,x0:Plotfz,z,a,b,PlotRange0.8,3.5,AspectRatioAutomatic,AxesFalse,PlotStyleDirectiveThick,Black,EpilogPointSize0.015,PointXx0,PointXx,Pointdx0,x0,Pointc1,PointX1,Pointcx0,Pointdx,x0,EdgeFormBlack,White,DiskAx,x0,Offset2,Text"x",Xx0.1,0.08,Text"x0",Xx00,0.16,Text"1",X10,0.16,Text"fx",dx,x0Signx0.27,0,Text"fx0",dx0,x0Signx00.27,0,Text"x",Xb0.1,0.1,Text"y",0.15,3.4,Text"f",f2.50.1,f2.50.06,ArrowAx,x0,dx,x0,ArrowXx,Ax,x0,ArrowAx0,x0,dx0,x0,ArrowXx0,Ax0,x0,Arrow0,1.5,0,3.48,Arrowa,0,b,0;Animatepx,x0,x,a,b,x0,b,a,AnimationRunningFalse

Listing 1: Program that generates the animation to demonstrate the continuity a point of a given function

Two similar animations together with \(\$ 10 \$\) graphics are used in (Asenova & Marinov, 2018) to present the separate stages of learning of mathematical concepts.

Teaching mathematical proofs

Let us clarify preliminary, that here we are not discussing purely formal proofs, that are subjects of the mathematical logic, and are represented by a sequence of symbols. The object of our research are so called informal proofs, which are taught in the courses of mathematics. These proofs create relations between the studied concepts. In this way, facts are transformed from being elements of a given set into a vital structure, that is capable to analyze and solve new problems. The knowledge and understanding of the main types of proofs, as well as the development of the ability for creating of individual proofs, are a basic stage in the education in mathematics.

In (Marinov & Asenova, 2013) is presented how all main types of proofs that are studied in the university can be taught using a computer. The examples that are shown in this work depict also the important role that takes the computer programming as an instrument for working environment organization.

We will illustrate the above with an example that uses the exhaustive search method.

Example 2. Find local extrema of the implicit function \(z=f(x, y)\), , that is defined by the equation:

(2) \[ x^{4}-2\left(x^{2}+y^{2}+z^{2}\right)+y^{4}+z^{4}=0 \]

Solution: Since the function \(u(x, y, z)=x^{4}-2\left(x^{2}+y^{2}+z^{2}\right)+y^{4}+z^{4}\) has continuous second order partial derivatives, then the implicit function theo rem gives the sufficient condition for the local existence of the implicit function \(z=f(x, y)\). Simultaneously) . Simultaneously it is proved that the implicit function has continuous second order partial derivatives. As a corollary of the implicit function theorem the relation between the partial derivatives of the functions \(u(x, y, z)\) and \(f(x, y)\) is found. This allows to prove a procedure for finding local extrema of the implicit function \(z=f(x, y)\), , that is defined by the equation \(u(x, y, z)=0\).

(1) Necessary condition. Local extrema are stationary points. And in the examined case all stationary points can be found as solutions of the system

(3)\[ \left\{\begin{array}{l} \tfrac{\partial u(x, y, z)}{\partial x}=0 \\ \tfrac{\partial u(x, y, z)}{\partial y}=0 \\ u(x, y, z)=0 \end{array}\right. \]

It will turn out that in the examined case that system has 19 solutions. (2) We select those stationary points, for which the implicit function theorem can be applied. These are the points \(A\left(x_{0}, y_{0}, z_{0}\right)\) for which

(4)\[ \tfrac{\partial u\left(x_{0}, y_{0}, z_{0}\right)}{\partial z} \neq 0 \]

It will turn out that in the examined case there are 18 such points.

(3) Verification of the sufficient conditions for local extreme in the stationary points for which (4) is fulfilled.

(3.1) In the examined stationary point \(A\left(x_{0}, y_{0}, z_{0}\right)\), , we calculate the matrix

(5) \[ \begin{aligned} & m\left(x_{0}, y_{0}, z_{0}\right)=\left(\begin{array}{ll} f_{11} & f_{12} \\ f_{21} & f_{22} \end{array}\right)= \\ & =\tfrac{1}{\tfrac{\partial u\left(x_{0}, y_{0}, z_{0}\right)}{\partial z}}\left(\begin{array}{ll} \tfrac{\partial^{2} u\left(x_{0}, y_{0}, z_{0}\right)}{\partial x^{2}} & \tfrac{\partial^{2} u\left(x_{0}, y_{0}, z_{0}\right)}{\partial x \partial y} \\ \tfrac{\partial^{2} u\left(x_{0}, y_{0}, z_{0}\right)}{\partial y \partial x} & \tfrac{\partial^{2} u\left(x_{0}, y_{0}, z_{0}\right)}{\partial y^{2}} \end{array}\right) \end{aligned} \]

(3.2) We define functions

(6)\[ d_{1}\left(x_{0}, y_{0}, z_{0}\right)=f_{11} \quad \text { and } \quad d_{2}\left(x_{0}, y_{0}, z_{0}\right)=\operatorname{det}\left(\begin{array}{ll} f_{11} & f_{12} \\ f_{21} & f_{22} \end{array}\right) \]

(3.3) Conclusion:

(a) If \(d_{1}\left(x_{0}, y_{0}, z_{0}\right) \gt 0\) and \(d_{2}\left(x_{0}, y_{0}, z_{0}\right) \gt 0\), y0, z0) > 0 , then the function \(z=f(x, y)\) has a local minimum at the point \(\left(x_{0}, y_{0}\right)\), , and it is equal to \(z_{0}\).

(b) If \(d_{1}\left(x_{0}, y_{0}, z_{0}\right) \lt 0\) and \(d_{2}\left(x_{0}, y_{0}, z_{0}\right) \gt 0\), y0, z0) > 0 , then the function \(z=f(x, y)\) has a local maximum at the point \(\left(x_{0}, y_{0}\right)\), , and it is equal to \(z_{0}\).

(c) If \(d_{2}\left(x_{0}, y_{0}, z_{0}\right) \lt 0\), y 0, z 0) < 0 , then the function \(z=f(x, y)\) does not have a local extreme at the point \(\left(x_{0}, y_{0}\right)\). In this case we will call the point a saddle point.

(d) If \(d_{2}\left(x_{0}, y_{0}, z_{0}\right)=0\) is necessary to perform a special investigation, because it is both possible function to have or not to have a local extreme.

v;w;n;t0;t1;ux,y,zx^4y^4z^42x^2y^2z^2;uzx,y,zDux,y,z,z;mx,y,zDux,y,z,x,y,2Expanduzx,y,z;
d1x,y,zmx,y,z1,1Simplify;d2x,y,zDetmx,y,zSimplify;tSolveDux,y,z,x0&&Dux,y,z,y0&&ux,y,z0,x,y,z,Reals;Fori1,iLengtht,i,puzx,y,z.ti;Ifp0,t0Joint0,ti,qd1x,y,z.ti,d2x,y,z.ti;Ifq20,Ifq10,vJoinv,ti,Ifq10,wJoinw,ti,Ifq20,nJoinn,ti,t1Joint1,ti

Listing 2: Program that discovers local extrema of a given implicit function

The solution of the Example 2 with the above procedure requires a sufficient amount of routine calculations, and the application of computer programming skills make the solution easer and more complete. By using Mathematica’s built-in functions for symbolic calculation of private derivatives, determinants, and system solving, the corresponding calculations can be performed by a computer. This allows the whole procedure for local extrema calculation to be implemented in a single program (see Listing 2).

In line 1 of the program in Listing 2 we define the lists in which the result will be stored, where:

\(-v\) is the list of points in which the implicit function has local minima;

\(-w\) is the list of points in which the implicit function has local maxima;

– \(n\) is the list of stationary points in which the implicit function has extrema;

– \(t_{0}\) is the list of stationary points for which the implicit function theorem cannot be applied ((4) is not fulfilled);

– \(t_{1}\) is the list of stationary points for which additional investigation is required.

In lines 2, 3, 4, 5, and 6 we introduce respectively: the examined function; its partial derivative with respect to the variable \(z\); the matrix \(m\) (see (5)); functions \(d_{1}\) and \(d_{2}\) (see (6)).

In lines from 7 to 9 we calculate the list of the stationary points \(t\) by solving the system (3).

In the loop in lines from 10 to 24 we distribute the points from t into the lists \(v\), \(w, n, t_{0}\), , and \(t_{1}\). It turns out that for the concrete problem \(v\) and \(w\) contain five points each; \(n\) contains eight points; \(t_{0}\) contains a single point, and \(t_{1}\) is the empty set. More precisely:

\[ \begin{aligned} v= & \{(-1,-1,-\sqrt{\sqrt{3}+1}) ;(-1,1,-\sqrt{\sqrt{3}+1}) ;(0,0, \sqrt{2}) \\ & (1,-1,-\sqrt{\sqrt{3}+1}) ;(1,1,-\sqrt{\sqrt{3}+1})\} \\ w= & \{(-1,-1, \sqrt{\sqrt{3}+1}) ;(-1,1, \sqrt{\sqrt{3}+1}) ;(0,0,-\sqrt{2}) \\ & \quad(1,-1, \sqrt{\sqrt{3}+1}) ;(1,1, \sqrt{\sqrt{3}+1})\} \\ n= & \{(-1,0,-\sqrt{\sqrt{2}+1}) ;(-1,0, \sqrt{\sqrt{2}+1}) ;(0,-1,-\sqrt{\sqrt{2}+1}) ; \\ & (0,-1, \sqrt{\sqrt{2}+1}) ;(0,1,-\sqrt{\sqrt{2}+1}) ;(0,1, \sqrt{\sqrt{2}+1}) ; \\ & (1,0,-\sqrt{\sqrt{2}+1}) ;(1,0, \sqrt{\sqrt{2}+1})\} ; \\ t_{0}= & \{(0,0,0)\} . \end{aligned} \]

We will not that the presented solution of Example 2 turns a problem, that usually is omitted in the standard courses in Calculus, in a problem that helps to consolidate the acquired knowledge. Besides that, in this way the knowledge from another field (computer programming) is used to focus the attention on the analysis of the solution. More precisely:

– Geometrical interpretation of the solution: plot of the surface \(S: x^{4}-2\left(x^{2}+y^{2}+z^{2}\right)+y^{4}+z^{4}=0\) and the implicit functions \(z=f(x, y) ;\) plot of the points from the lists \(v, w, n\), , and \(t_{0}\) (see Figure (2)).

– Proof that the program solves the problem with an accent on the used theorems, where they are applied, and this application is possible.

Figure 2. The implicit function z = f x(, y ) and the points ofv , w and n

Our experience shows that the computer programming in the integrated environment of the system for symbolic computation Mathematica turns out to be a very effective tool: in numerical experiments with the goal of formation of hypothesis for a proof; in stating of some counter-examples; in illustration of decisive parts of the proof, etc.

Relation of mathematics with the real world and other sciences

Often solutions of applied problems presume a significant number of manipulations of the same type that lead to the final result. This places technical problems in the center of attention, and requires significant time for the solution. On the other hand, the giving up from the complete solution makes the relation to the real world declarative and unconvincing. The application of computer programming in such cases can be very useful. Examples for such problems can be many of the problems given in the standard Operations Research courses.

We will illustrate the above with a sub-problem of the 1D cutting-stock problem. The solution of the general problem leads us to a problem of the following type:

How many ways can be cut out of a pipe with a length of a in pieces of lengths equal to any of the numbers \(q_{1}, q_{2}, \ldots, q_{n}\).

We will formulate the problem using only mathematical terms:

Example 3. Division of a number by a vector. Given a positive number \(a\) a and a vector \(q=\left(q_{1}, q_{2}, \ldots, q_{n}\right)\) with positive components, find all vectors \(k=\left(k_{1}, k_{2}, \ldots, k_{n}\right)\), whose components are non-negative whole numbers, and satisfy:

\[ 0 \leq a-\left(k_{1} q_{1}+k_{2} q_{2}+\cdots+k_{n} q_{n}\right) \lt \min \left\{q_{1}, q_{2}, \ldots, q_{n}\right\} \]

Solution: In the solution of Example 3, we will call the number \(a\) a a dividend, and the vector \(q\) we will call a divisor. The vector \(k\) we will call a quotient, and the number \(r=a-\left(k_{1} q_{1}+k_{2} q_{2}+\cdots+k_{n} q_{n}\right)-\) a reminder.

Without lost of generality, we will assume that \(a\), and the components of the vector \(q\) are natural numbers, and also that \(q_{1} \gt q_{2} \gt \cdots \gt q_{n}\).

For the problem formulated in this way, we can look for a solution that is motivated by the whole number division theorem. Because of the significant number of calculations of the same type, it is comfortable to solve the problem with an appropriate computer program. We will solve Example 3 by defining the function \(F[a, q]\), , which has arguments the dividend \(a\), and the divisor \(q\), and calculates the list \(v\) of all vectors \(k\), which are quotients of the division of \(a\) by \(q\).

By a sequence of numerical experiments students find a natural algorithm, that solves inductively the problem. For its implementation, first we define two helper functions. The first one is given in Listing 3 below:

fda,x:ModuleAa,bx,v,i,ForvA;i0,bA,i,AAb;vJoinv,A;v

Listing 3: Calculates the vector v

For given two numbers \(a\) a and \(x\), Listing 3 calculates the vector \(v\) with \(i\)-th component equal to \(a-(i-1) x\) for \(a-(i-1) x \geq 0\).

The second function is given in Listing 4:

fra,x:Lengthfda,x1

Listing 4: Calculates the whole part of the division of \(a\) by \(x\)

For given two numbers \(a\) a and \(x\), Listing 4 calculates the whole part of the division of \(a\) by \(x\).

With these two functions we define the function \(f[2, a, q]\) that solves Example 3 in the special case in which \(q\) has two components (Listing 5).

f2,a,q:ModuleAa,b1q1,b2q2,v,w,i,wfdA,b1;Forv;i1,iLengthw,i,vJoinv,i1,frwi,b2;v

Listing 5: Solves the example in the special case when q has two components

If we denote with \(f[n, a, q]\) the solution in the case in which the vector \(q\) has \(n \gt 2\) components, then the recurrent connection between \(f[n, a, q]\) a and \(f[n-1, a, q]\) a allows us to define the required function \(F[a, q]\) :

fn,a,q:ModuleAa,b1q1,q1Dropq,1,v,w,m,m1,m2,i,wfdA,b1;Forv;i0,ifrA,b1,i,mfn1,wi1,q1;m1Arrayi&,Dimensionsm1,1;m2Joinm1,m,2;vJoinv,m2;v;Fa,q:fLengthq,a,q

Listing 6: Recurent expression that defines the function \(F[a, q]\)

Defined in this way, the function \(F[a, q]\) finds all vectors \(k\), , that are quotient of the division of \(a\) by \(q\) stores them as separate rows of the matrix \(v\). Hence, the vector of the division remainders can be calculated using the function:

ra,q:aFa,q.q

Listing 7: Calculates the vector of the division remainders

In this case we have used the fact that if \(a\) is a number, and \(u=\left(u_{1}, u_{2}, \ldots, u_{n}\right)\) is a vector, then Mathematica solves \(a-u\) a as a vector \(\left(a-u_{1}, a-u_{2}, \ldots, a-u_{n}\right)\). For a given dividend, and divisor \(q\), the function \(r[a, q]\) calculates the vector \(r=r[a, q]\) with components \(r_{j}=a-v_{j \bullet} . q\). . The number \(r_{j}\) is the remainder of the of the division of \(a\) by \(q\) with the quotient \(v_{j}\)., which is stored as the \(j\)-th element of the list \(v\).

Finally, we will note that the number \(j\) of the vectors \(k\), which are quotients of the division of the number \(a\) by the vector \(q\), can turn out to be rather big. For example, for \(a=13\) a nd \(q=(7,6,4,3)\) it is \(j=10\). But for \(a=84\), and \(q=(44,32,27,15,10,8,7)\), , the number is \(j=303\).

Once Example 3 is solved, naturally the following problems arise:

By an appropriate modification of the solution of the example, define a function \(G[a, q]\), that finds all vectors \(k\), for which \(0 \leq a-\left(k_{1} q_{1}+k_{2} q_{2}+\cdots+k_{n} q_{n}\right)\).

Propose a more ef fective algorithm for the definition of the function \(F[a, q]\).

Development of students’ ability for mathematical knowledge application The significance of this stage of education is getting more important because of the fact that in the recent practice the time scheduled for this type of problems was strongly limited. Problems that develop the ability of the students to apply mathematical knowledge can be such practical problems that require practitioner to discover the method for solving by himself. Another example are problems that require knowledge from different disciplines, or knowledge from different parts of the studied discipline, etc. Following this direction, computer programming allows the formulation of new types of problems. With these new problems, the attention of the students is attracted to the relations between the theorems that were already proved, and parts of proofs of different theorems. A new approach is developed towards the comprehension of the proofs in the general context of the education, and towards the development of the ability of the students for independent knowledge upgrade.

The following stages can be pointed out for solving of this new type of problems:

– Selection of the group of theorems, whose interrelations we will study.

– Definition of the interrelation that can be described in a formal way.

– Development of an algorithm for a computer program, that describes the interrelation.

– Proof of the result of the program execution.

– Program implementation.

– Program verification.

– Application of the implemented program.

As examples can be pointed out many analytical geometry statements and theorems that concern: equation of a line in the Euclidean plane and the Euclidean space; determining the mutual position of two straight lines in space; classification of second degree lines and surfaces, etc. We will illustrate the above with a short example.

Example 4. Write a program that determines the mutual position of two arbitrary planes in space, if the planes are defined with their general equations.

Solution: For two planes in space, exactly one of the cases is true:

1. The two planes intersect.

2. The two planes are parallel.

3. The two planes coincide.

By condition, the two planes are defined by their general equations:

\[ a x+b y+c z+d=0 \quad \text { and } \quad e x+f y+g z+h=0 \] where \(a, b, c, d, e, f, g, h\) a are predefined constants, for which \(|a|+|b|+|c| \neq 0\) and \(|e|+|f|+|g| \neq 0\). We will define a function \(F[\alpha, \beta]\), , that will determine which of the three possible cases is valid for planes with general equations \(\alpha=0\) and \(\beta=0\).

Following the general approach, first we determine the group of theorems that give the full description of all possible cases of mutual position of two planes in the space. After that, we determine those concepts which allow the uniform representation of the conditions of the theorems, without violation of the truthfulness of their proofs. This allows us to discover a logical relation that leads to the development of the algorithm, and hence, to the solution of the problem. For the specific problem, the algorithm is:

1. Using \(\alpha\), define the vector \(v=(a, b, c, d)\).

2. Using \(\beta\), define the vector \(w=(e, f, g, h)\).

3. Calculate the rang of the matrix \(m=\left(\begin{array}{llll}a & b & c & d \\ e & f & g & h\end{array}\right)\).

4. Calculate the rang of the matrix \(m=\left(\begin{array}{ccc}a & b & c \\ e & f & g\end{array}\right)\).

5. If the rang of the matrix \(m_{1}\) is equal to 2 , then the planes intersect.

6. If the rang of the matrix \(m_{1}\) is different from 2 , and the rang of the matrix \(m\) is equal to 2 , then the planes are parallel.

7. If both rangs of \(m_{1}\) and \(m\) are different from 2 , then the planes coincide.

The proof of the algorithm actually repeats the proof of the corresponding theorems. A possible implementation of the algorithm in Wolfram Language is given in Listing 8.

F,:Modulev,w,m,m1,r,r1,p,vCoefficient,x,Coefficient,y,Coefficient,z,.x0,y0,z0;wCoefficient,x,Coefficient,y,Coefficient,z,.x0,y0,z0;mv,w;rMatrixRankm;m1Takem,All,3;r1MatrixRankm1;pIfr12,"Тheplanesintersect",Ifr2,"Тheplanesareparallel","Theplanescoincide";p

Listing 8: Determines the mutual position of two arbitrary planes in space

Remark: The program in Listing 8 can be modified not to use the build-in functionMatrixRank \([\ldots]\), but to use only algebraic expressions of the con stants \(a, b, c, d, e, f, g\) a and \(h\). In this way it is not going to be necessary to define the matrices \(m\) and \(m_{1}\), and to apply the functionTake \([\ldots]\).

Conclusion

The purposeful abruption of the relation of mathematics with the real world, that started in the middle of 20th century, substitutes the essence of mathematics with a training of formal manipulations (Arnold, 1990). This leads to a wrong concept of mathematics, and eventually leads to its destruction. The contemporary informational technologies, applied in the solution of mathematical problems, cause new treads, that result in acceleration of these negative trends.

On the other hand, the scientific software, when adopted as a tool for education, can help to overcome the wrong concept of mathematics, and to avoid the new threats, by putting back into the center of education the meaningful aspect of mathematics. From this point of view, the initial programming skills turn out to be very useful in:

(i) application of geometrical interpretations in education;

(ii) understanding of meaningful mathematical proofs;

(iii) education in mathematics that is focused on the practice.

The inclusion of computer programming in the methods of education in mathematics:

(i) enhances the students’ ability for application of mathematical knowledge;

(ii) increases the interest of students for the particular problem, and increases their activity;

(iii) leads to the development of new category of problems;

(iv) develops students’ algorithmic thinking;

(v) consolidate students’ programming skills.

REFERENCES

Arnold, V. (1990). The antiscientifical revolution and mathematics, Herald of the Russian Academy of Sciences 69: 553 – 558.

Asenova, P. & Marinov, M. (2018). Teaching mathematics with computer system, Mathematics and education in mathematics. UBM 47: 213 – 220.

Asenova, P. & Marinov, M. (2019). System of tasks in mathematics education, Mathematics and Informatics 62: 53 – 71.

Marinov, M. (2008). Matrix calculation with Mathematica, Sofia: Planeta 3.

Marinov М. & Asenova., P. (2013). Mathematical Proofs at University Level. Computer Science and Education in Computer Science, Fulda, Germany, 72 – 81, ISSN1313624.

Marinov, M. (2014). Mathematical education with system for symbolic calculation, Mathematics and education in mathematics. UBM 44: 137 – 148.

Година LXII, 2019/4 Архив

стр. 444 - 458 Изтегли PDF