Tuning a logo-like
to a knowledge domain
Faculty of Mathematics and Informatics,
University of Sofia
5, James Bourchier, Sofia 1126
Institute of Mathematics and Informatics, BAS
Acad. G. Bonchev str. Bl.8, Sofia 1113
The development of microworlds tuned to a knowledge domain while retaining full programmability is reported with the educational experience gained. The importance of a language-based computer environment in the pursuit of improved learning is considered. A case is made that in order to be educationally powerful, the learning environment should provide flexible tools for defining new notions as well as expressing, articulating and experimenting new ideas. These tools should facilitate problem solving, promote student and teacher individualization and support clear communications. Some representative examples are considered in the context of the latest version of Geomland - a mathematical laboratory in Logo style, designed, developed and experimented by Bulgarian researchers. The style of guided explorations and discoveries has been experimented with teachers in a broader context in the frames of teacher training activities under TEMPUS SJEP 07272-94.
Geomland, programmability, explorations, creativity, discovery learning
My schooling paid too much
to learning what was known and too little
to finding out about what was not known...
It has often been claimed that the real craft of the "maestro-teacher" is to enhance the scientist in the students, to demonstrate to them situations where one does not know the answer, even does not know if there is such an answer, but is ready to take the risk of failure in front of ones students. Such a role of the teacher was (and still is) a dream in most educational systems since it is not easy to train a student in the technique of discovery. But today one of the positive effects of IT integration in the educational process is that it extends the professional dimension of teaching  by supporting the teachers to act as members of a research team. Indeed, it is difficult to teach the art of problem solving without engaging oneself in inquiry.
2 Geomland - a land for mathematical explorations
To create a microworld supporting the exploratory spirit of the Logo environment and, at the same time, closer to the traditional geometry curriculum was a challenging task taken on by a team of Ph.D. students under the guidance of the first author. Since 1986 they have been developing, and experimenting with, the Plane Geometry System (now known as Geomland) -- an educational software which could be considered as a mathematical laboratory . The coordinate plane is the room where the laboratory is located and the computer screen is the window through which experiments are observed. The language of Geomland is a Logo extension enabling pupils to construct and experiment with geometric objects, to investigate their properties, to formulate and verify conjectures, i.e., to discover mathematics. The Geomland language provides flexible tools for defining new notions, for expressing and articulating ideas, something that makes it very powerful from an educational point of view.
2.1 The first educational experiments
Our experience in integrating Geomland into the mathematics classes has shown that it is possible to adopt "discovery learning" -- a style tuned to the natural wishes of pupils. Experimentation with such a style started at the beginning of the school year 1989/1990 with the pupils of the seventh-grade geometry classes at Sofia school Nr 119. The experiment was led by a Ph. D. student and an experienced teacher [3,4]. The latter felt free to place more emphasis on the "mathematical activity" than on "mathematics" seen as a body of knowledge determined outside of any individual learner.
A new type of relationship among the participants was established. The teacher was treated as a consultant. All the pupils got the feeling of becoming contributors to the establishment of mathematical facts. Furthermore, they mastered their mathematical language, since a precise formulation was necessary to make their definitions workable. With clever guidance, pupils learned to act like researchers. They carried out experiments, shared their results, formulated hypotheses, posed new problems and were motivated to prove their own theorems... Even if they happened "to discover America" this was an America of their own  and its very discovering helped them realize what doing mathematics means...
The fact that every activity in Geomland could be framed in a language (as a procedure of instructions), made it possible that the geometric solutions could be first analyzed (by the students themselves) and then discussed by the whole class. The teacher used a data display system to present the most interesting approaches on a big screen. She commented on the different strategies used -- on virtues and shortcomings alike. Discussions involving the students, their teacher (and sometimes the researchers present) contributed much to cultivating an awareness that the Geomland procedures should not be treated as "right" or "wrong" but rather as concrete approaches to the solution that could be developed, improved, generalized, modified.
Of course, the environment itself could not guarantee the style of teaching we were enhancing. For many teachers (and even more so - for the future teachers taking their practical pedagogical exams) the routine of "preaching" was easier and safer to do. "How do you expect us to teach in a new way - they would say - if we have experienced at school and at the university alike mostly the style of Look how clever I am and what a good solution of the problem I know or Here are some theorems invented by mathematics geniuses and you should learn their proofs..." and they were right - the sterility of teaching mathematics is even more noticeable at the university level - almost fixed curricula and lecturing, in which the flavor of mathematical explorations is hardly ever experienced. To cope with this problem we decided to introduce a new course for the pre-service and in-service teachers educated at the Faculty of Mathematics and Informatics at Sofia University - "Teaching Mathematics in a Laboratory Type Environment". In a broader context the style of guided explorations and discoveries has been experimented in the frames of the teacher training activity under the project TEMPUS S_JEP 07272-94. To give an idea of the working atmosphere of this course, let us consider an example.
2.2 The Pendulum model - an endless process of stepwise refinement and enrichment
To build a model of a simple mathematical pendulum in Geomland was a problem offered at the beginning of the course to in-service teachers undergoing a retraining program, then to fourth year students about to become teachers. Below we shall discuss some of the most typical situations experienced during the process of problem solving.
The first task was to start with the simplest approximation of the model - the rod represented by a connected vector (a directed segment with a fixed initial point) which changes its direction oscillating about a fixed axis.
OBJECT "T POINT 0 84.
An object named T, which is a point with co-ordinates (0, 84), is constructed (the fixed point).
OBJECT "ang 60
The angle of deviation ang is initialized as an object on which the whole construction will depend.
MAKE "length 100
OBJECT "V VECTOR 270+:ang :length
OBJECT "P SEGMENT :T :V
The rod is constructed as a directed segment P representing the free vector V whose direction makes a 270+:ang angle with the X-axis and whose length is 100.
To make the rod move it was enough to change the value of angle ang. This was easily obtained "by hand", i.e. by executing a number of times the command:
OBJECT "ang :ang - 10
Let us note that when changing an object in Geomland all the values depending on it are changed automatically - in our case the change of ang led to an automatic change of the objects defined through it, i.e. of V and P. Thus to make the rod oscillate with an amplitude of 60 degrees it was enough to execute the above instruction 12 times and then an equal number of times the following one:
OBJECT "ang :ang + 10
The next approximation was to achieve an "endless oscillation" :
WHILE "TRUE [REPEAT 12 [OBJECT "ang :ang - 10 WAIT 5]
REPEAT 12 [OBJECT "ang :ang + 10 WAIT 5] ]
Though "endless" the solution was not elegant at all. The students decided to elaborate it by implementing the following algorithm:
WHILE <a key is not pressed>
[Keep moving in the chosen direction until the amplitude is reached and then change the direction]
For the purpose they introduced the parameters maxan g and anginc for the amplitude (the maximal angle deviation) and for the angle increment, respectively:
MAKE "maxang 60
MAKE "anginc 10
OBJECT "ang :maxang
WHILE NOT RC? [
(IF (ABS :ang) >= :maxang [MAKE "anginc NEG :anginc])
OBJECT "ang :ang + :anginc WAIT 5 ]
This improvement was just technical (from programming point of view) but in fact it reflected a bettter understanding of the pendulum nature - the fact that it deviates only to a certain angle. The latter approximation was not straightforward but was preceded by a version in which the pendulum behaved more like a clock-hand (the students had not realized that the angle deviation in this model had a sign - a mistake which we as lecturers welcomed as a source of valuable discussions). Now the model had become much more one of a pendulum. Should we have felt satisfied? Yes and No. Of course, there were students ready to attack another problem...
Let us emphasize at this point that the original Logo paradigm of letting the learner the initiative for further explorations does not work properly in a strictly fixed time interval (which in the case of the school setting is very short in addition). Therefore when teaching in a real school it is important for the teacher to sharpen the students feeling of being unsatisfied with the current achievement. We, in turn, also had to cultivate among the future teachers the need for improvements and refinements in the process of problem solving:
Wouldnt it look more natural to make the rod move towards the axis no matter what the initial deviation is? - was the next question of the lecturer.
In order to assure a movement in the natural direction the students found convenient to define the notion of normalized angle by means of the following procedure:
TO normalized :ang
(IF (ABS :ang) > 180
[OUTPUT normalized :ang - (SIGN :ang)*360])
Now the initial position of the rod could be chosen by random:
MAKE "maxang normalized RANDOM 360
WHILE NOT RC? [(IF (ABS :ang) >= :maxang
[MAKE "anginc (NEG SIGN :ang)*(ABS :anginc)])
OBJECT "ang :ang + :anginc WAIT 5 ]
The pendulum would not behave properly only in the case of a vertical initial position (its equilibrium state). To take into account this situation it was enough to introduce the following predicate:
TO EQUILIBRIUM? :ang
OUTPUT OR :ang = 0 :ang = 180
and then to prevent the rod from moving if it was in equilibrium initially:
IF NOT EQUILIBRIUM? :ang [ WHILE NOT RC? [... ]
The only thing left to figure out was how to model the effect of moderation.
The first suggestion was to introduce a pause whose value would grow with the absolute value of the deviation (e.g. the input :t of WAIT could be expressed as a linear function of the angle). After some considerations the students suggested the following function:
t = 0.15 * ang
Surprisingly, this expression did not work. First, the input of WAIT should be a natural number. Besides when the consecutive values of t were printed it became obvious that the graph of the function had to be shifted so as to reach a non-zero minimum pause at a zero angle deviation. After some adjustments the students produced the following piece of code:
OBJECT "t 2 + ABS ROUND 0.15*:ang
WHILE NOT RC? [ (IF (ABS :ang) >= :maxang
[MAKE "anginc (NEG SIGN :ang)*(ABS :anginc)])
OBJECT "ang :ang + :anginc WAIT :t]
Although the visual effect was satisfactory, the trace of the rod matched a uniform motion rather than an alternate change between a moderating and an accelerating one.
A further, more ambitious, step was to make the consecutive positions of the rod with an angle increment decreasing by absolute value. This time the intellectual effort was greater since the problem seemed almost the same and yet - upside down. The students were used to investigating functions and to drawing their graphs, but it turned out relatively difficult for them to construct a function with given properties. Eventually they produced the final (for that particular session) version of the model:
MAKE "angincmax 8
MAKE "angincmin 1
MAKE "maxang normalized RANDOM 360
OBJECT "ang :maxang
OBJECT "V VECTOR 270+:ang 100
OBJECT "P SEGMENT :T :V [TRACED]
MAKE "k (:angincmax - :angincmin)/:maxang
OBJECT "anginc :angincmax - :k*(ABS :ang)
MAKE "d (NEG SIGN :ang)
WHILE NOT RC? [
(IF (ABS :ang) >= :maxang [MAKE "d (NEG SIGN :ang)])
OBJECT "ang :ang + :d*:anginc WAIT 3]
Now the trace left made it clear that this version of the model was a more realistic approximation of the pendulum.
A lot of ideas were left for further explorations - to apply trigonometric functions when describing the increment of the deviation, to model a marionette performing exercises at the end of the rod under a music accompaniment etc.
The informatics instruments were naturally integrated in the development of the modeling and tuned so as to provide the necessary counterpoint allowing important mathematical ideas to stand out sharply.
The students were themselves surprised how difficult it had turned out to harness the mathematical knowledge (reproduced many times in standard exam situations) in such a simple model.
The students felt proud of their final achievement and somehow satisfied to witness the non-simulated difficulties overcome by the lecturer himself.
During the whole course we considered situations which were (as suggested in [7 p. 67]) sufficiently concrete (as well as interesting and soluble) in the hope that students would generate tasks and sub-tasks for themselves. Soon they realized that the nature of the problems made the road more important than the inn...
But there were still cases when the inn itself was the object of interest. For instance:
2.3 "Where there are problems, there is life"
Several years ago (at the annual conference of mathematics teachers in Bulgaria) a colleague of ours brought up a new (i.e. well forgotten) problem formulated more than 100 years ago by Ivan Salabashev, a Bulgarian mathematician and politician whose anniversary was celebrated at that occasion. The problem read:
Given two circles find the locus of the centers of the circles which are tangent simultaneously to the given ones.
The teacher who proposed this problem was sincerely interested in the solution since he had neither managed to solve it nor found a documented one. Thus he threw the gauntlet to the audience. Whether it was because the problem seemed to them old-fashioned or too time consuming but the specialists in geometry did not take the challenge seriously, murmuring something like: "Obviously a second degree curve..." With a final spark of hope the investigator of Salabashevs works asked us to investigate the problem in Geomland. Here follows the visualization of our construction (a more detailed exposition is given in the Appendix):
Even the very construction of a circle tangent to two given circles turned out to be interesting and rich of approaches. The approach we chose made use of geometric facts taught at 8th grade (the first year of the secondary school). In order to make the description of the construction closer to the language used by the teacher we defined several new notions such as OTHER_POINT, SYMLINE (the procedures are given in the Appendix).
An additional challenge was to:
To see the properties of the locus we made use of the fact that it is an object (a data type SET of points) that can be investigated - its elements can be selected and checked for some properties. In this case the difference of distances from any point of the locus to the two centers turned out to be equal to the sum of the two radia. The measurement could be done directly (with printing in a cycle the consecutive differences) or with a Logo-like predicate (PROP_HYPER? in the Appendix). Furthermore, we could checked if all the points of the locus obtained were coincident with the conic section passing through 5 of its points (arbitrarily chosen).
The teacher seemed satisfied at first glance, but at second... "What if the tangent circle touches one of the given circles internally?" he asked. "And does the result depend on the mutual positions of the given circles?"
To answer these questions we had to revise the program by adding a second tangent circle and to study in parallel the two loci for different distance among the given circles.
As seen from the figures below the two loci obtained in the case of intersecting circles turned out to be a hyperbola (for the externally tangent circle) and an ellipse (in the case when the circle is tangent externally to the first and internally to the second circle).
At that time some geometers passed by and started conjecturing what would happen if the given circles are tangent or are one inside the other. In search of completeness they hoped for some degenerated curve in the case of tangent circles or for a parabola at least, but their expectations were not justified.
Other conjectures arose concerning the particular cases generating a locus which is a circle.
The result being of interest for its sake, was not the greatest satisfaction achieved. The richness of ideas for constructions and explorations, the necessity of making the construction both universal (independent of the mutual position of the circles) and exhaustive (embracing all the tangent circles), as well as the endeavor to make the description readable for mathematicians with different background made us return to Salabashevs problem at different occasions. A lot of similar experiences convinced us that professional mathematicians can also get insight when playing in exploratory environments and can suggest ideas for further investigations thus sharing with the students the joy of the discovery and possible failures alike.
3 Some reflections
3.1 On Pedagogy
The educational philosophy behind the design of Geomland has been to provide facilities for connecting the necessity of precise discourses with the surrounding world. In order for such a need to be felt the object modeled should live - it should react, it should allow tinkering, since meanings are reshaped and recreated in action [7 - p.131] Furthermore, the action with things as well as the focusing on the thing itself is based on the use of a programming language. They say that using a programming language means to have the courage of admitting your own mistakes. On the other hand mistakes are welcome in a language based environment for two reasons at least:
Though the details, and the need for precision, may be specific to mathematical communication, the same expressive skills are important in communication in a broader sense - one must be able to express ones overall meaning in a non-technical way, and one must be able to add precision in a variety of ways - just as the piano-tuner plays around every single pitch until perfect harmony is achieved
It is the divine inspiration (often a feed back to the audience) that can help overcoming the boredom of lectures in which every little step is known in advance. But in order to feel free to improvise it is crucial for the teacher to have a computational environment that is built appropriately.
3.2 On Software design
We shall concentrate on one of the many problems concerning the educational software design. When the software is being tuned to a certain domain the properties of this domain are built into the software together with artifacts determined by the designers choice. In the latter case the educators should be aware of the danger that the students might "discover" postulates which are not part of the postulate set of the given domain. This is true for many geometric applications. As stated in  further research is needed to clarify what students do notice, and how they do interpret what they see. Furthermore, most of the existing systems reflect two main trends: either they offer everything which reduces their educational power, or adding a new property involves programming and thus makes it rather complicated for the teachers.
The central idea when designing Geomland was to open up to the learner the expressive power of programming as a means to navigate and reconstruct a domain. In other words it has been developed with the ambition of being rich enough for explorations and enabling different approaches to be tested, modified, developed and compared; an environment which, though artificial, would admit real experience to be recorded with all its failures and successes
The goal of our next version (Research Logo System ) is to provide learners with such facilities that they could build the new notions as objects (together with their properties and operations on these objects), similarly to the way a particular mathematical domain is built upon the minimal set of axioms. This process, although achievable in Geomland, is rather clumsy from technical point of view since it is not tuned enough to the genuine style of the Euclidean geometry. Our greatest endeavor is to make the style of reconstructing the domain in full harmony with its proper style, i.e. to provide the whole range, from easy means for making sketches up to means enabling construction of arbitrarily complex tools. Such a continuity might be best achieved by integrating direct manipulation interface with full programability (see also ). Once this is achieved, the computational environment can become a particularly fruitful domain, a setting where we may see the externalized face of mathematical objects and relationships through the window of the software and its accompanying linguistic and notational structures. [7 - p.125]
The role of new technologies in education is not only to require a new competence from the teachers but to provide them with environments rich enough to enhance the explorer in them and in their students alike. When tuned to a specific domain, such environments can bring into the classroom the spirit of the subject matter as a science. Our experience at a school and university level has some optimistic examples of mathematics experienced as a field where problems without known answers exist, other problems wait for the teachers and/or the pupils to formulate them and then to act together as a research team. Hopefully more teachers will gain the self-confidence to lead the pupils to the unknown; to cultivate in them the spirit of adventure and make them understand that although open the computer environment is not a jungle where they could be lost.
Salabashevs problem in Geomland
; the memory is initialized
MAKE "dist 30
MAKE "R1 120
MAKE "R2 80
; the distance between the two circles and the lengths of their radia are chosen
OB "LO LINE POINT 0 0 30
; An object named LO, which is a line passing through the point (0,0)
; and making a 30 degrees angle with the X-axis is constructed (OB stands for OBJECT)
OB "O1 POINTON :LO NEG (:R1 + :dist/2)
OB "O2 POINTON :LO :R2 + :dist/2
; Points O1 and O2 on line LO are constructed at a distance :R1+:R2+:dist
OB "K1 CIRCLE :O1 :R1
OB "K2 CIRCLE :O2 :R2
; circles K1(O1,R1) and K2 (O2,R2) are constructed
OB "t 167
OB "C1 POINTON :K1 :t
OB "C2 POINTON :K2 :t
; points C1 and C2 are constructed on the circles K1 and K2 respectively so that
; the radius vectors O1C1 and O2C2 are parallel
;(making an angle of t degrees with the X axis)
; (C2 will be the tangent point of circle K2.)
OB "S ISEC :K1 LINE :C1 :C2
OB "T OTHER_POINT :C1 :S
; the point of intersection of circle K1 and the line passing through C1 and C2 which is
; different from C1 is constructed by means of the OTHER_POINT procedure defined below
; (T will be the tangent point of circle K1.)
OB "O ISEC (LINE :O2 :C2) (SYMLINE :T :C2)
; the center O is constructed as intersection point of the line passing through O2 and C2 and
; the symmetry line of T and C2 (the bisector of the segment from T to C2 perpendicular to it)
OB "K CIRCLE :O :T
; circle K externally tangent to K1 and K2 is constructed
OB "D2 POINTON :K2 :t + 180
OB "DS ISEC :K1 LINE :C1 :D2
OB "DT OTHER_POINT :C1 :DS
OB "DO ISEC (LINE :O2 :D2) (SYMLINE :DT :D2)
OB "DK CIRCLE :DO :DT
; similarly circle DK tangent externally to K1 and internally to K2 is constructed
MAKE "st 10
HISTORY "H :O
TRACED [O DO]
REPEAT 360/:st [OB "t :t + :st]
; the center O changes automatically since it depends on t . Thus 36 consecutive positions of
; O are constructed. They can be traced (the trace of their images just being visualized)
; or collected in a set ( H ) as objects to be manipulated with.
OB "PH POLYGON :H
; the points of the set H are connected with a polygon line
OB "T1 ITEM 1 :L
OB "T2 ITEM 6 :L
OB "T3 ITEM 12 :L
OB "T4 ITEM 15 :L
OB "T5 ITEM 18 :L
OB "LOCUS1 CURVE :T1 :T2 :T3 :T4 :T5
; Five points belonging to the locus are selected and a second degree curve is constructed
; through them
OB "FL FOCUS :LOCUS1
OB "F1 ITEM 1 :FL
OB "F2 ITEM 2 :FL
POINTON? :O1 :F1
POINTON? :O2 :F2
; The foci of the curve are selected and checked for coincidence with the centers O1 and O2
TO OTHER_POINT :T :S
(IF (TYPE :S) = "POINT [OUTPUT :T])
OUTPUT IF POINTON? :T FIRST :S [LAST :S][FIRST :S]
; For a point T and a set S which consists of two points the procedure outputs the other point belonging to S.
TO SYMLINE :A :B
MAKE "S SEGMENT :A :B
OUTPUT LINE POINTON :S 0.5 90 + HEADING :S
; For inputs A and B which are points the procedure outputs the line passing through the
; midpoint of the segment AB and perpendicular to it.
TO PROP_HYPER? :S :F1 :F2
IF (COUNT :S) < 2 [OUTPUT "TRUE]
(IF NOT (DIFDIST FIRST :S :F1 :F2)= DIFDIST FIRST BF :S :F1 :F2
[OUTPUT "FALSE][ OUTPUT PROP_HYPER? BF :S :F1 :F2])
; For inputs S (a set of points) and F1, F2 (points) the procedure outputs TRUE if all the
; elements of S have the property of the hyperbola, i.e. if the difference of the distances from
; any of them to two given points (F1 and F2) is constant.
TO DIFDIST :P :F1 :F2
OUTPUT (DISTANCE :P :F1) - DISTANCE :P :F2
; The procedure outputs the difference of the distances from point P to F1 and F2.
TO PROP_ELLIPSE? :S :F1 :F2
; similar to PROP_HYPER?
TO SUMDIST :P :F1 :F2
; similar to DIFDIST