Logo was the first programming language created for teaching mathematics. Later came programming languages, which can be described as iconic, visual or drag and drop. They are also promoted as ways for children to better understand mathematics concepts. These programming languages include Scratch, Etoys, Turtle Art, Gamemaker and more.
Logo, (by Papert and others), was originally used to control real turtle robots which left pen trails on paper, later the turtle and pen became virtual. Logo was text based rather than visual, this limited it uptake in schools.
Scratch, Etoys, Turtle Art and Gamemaker, which are discussed here, use visual blocks rather than text and are essentially syntax free, giving students more time to concentrate on higher level tasks than syntax error correcting.
It is thought that the use of these programming languages, before or during the formal teaching of mathematics concepts, will transfer to improved mathematics understanding as well as higher order thinking and problem solving skills. This is based on a constructivist understanding of learning, that learning is highly individualised and that multiple representations of a concept are more likely to meet individual learning needs.
Here I look at some basic mathematics ideas: number, equality, addition and functions to see how the visual representations match the mathematics concepts and might aid understanding.
Number can be visualised as movement along a line. Moving forward, along with turning, also create geometric shapes.
Subtraction on a number line can be visualised by walking forward then back a number of steps. All languages except Game Maker handle this well. Turtle Art has an advantage with negative numbers.
By having a "back" block, Turtle Art allows the operations of addition and subtraction of positive and negative numbers such as -1-(-2) =1, forward(-1) back(-2) = forward(1)
Game Maker evolved as a game creation tool rather than being created as an educational tool, it does not easily do pen trails or easily move incrementally forward. It does handle addition of velocities well though.
The equals sign has 3 meanings
The equation, an assertion of equality 3+5=5+3
Assignment, let x=5
Testing, if x=5Assignment
The coordinate of the Turtle can be assigned a new value, implicitly as above or explicitly. The Scratch block is a representation of a verbal or written instruction. The Game Maker one is also text based. The Etoys
representation does use a back arrow to denote action and is better, though it is a bit crowded with selector hotspots
The Turtle Art block is the one more likely to be useful to the learner, giving a clear visual cue to assignment.
EtoysBinary arithmetic operator, addition
Addition is the first function which children encounter.
It can be written as infix, 2+2, prefix + 2 2, or postfix
2 2 +
In mathematics it is written in infix notation. Early scientific calculators used postfix
. Turtle Art uses prefix, the other three languages infix.
Though infix notation is more consistent with the way equations are written in mathematics, prefix notation gives a better understanding of what is happening, that the + operator combines two values to give a third.
More on number
Rational numbers can be represented as fractions or as decimals.
Scratch's "say" displays 2 decimal places
Etoys' watchers can display and edit data at run time, the number of decimal places is alterable. Etoys is the clear winner in this category.
Game Maker's "draw text" and "display message" display to 2 decimal places.
Turtle Art's "show" and "print" display 2 decimal places.
The current understanding of a function is relatively new
. A mathematics function is currently understood as a many to one mapping from a domain to a range.
A programming function is more understood as a process which takes an input and produces an output (without overwriting the input). It can be thought of as a machine or a black box with input and output.
Scratch and Etoys
have a function box which allows selection from a limited drop down list of functions. Game Maker allows functions to be typed in from a very extensive range of scripting language which is documented in help. Turtle Art allows the use of Python functions which are poorly documented.
Only Turtle Art allows the function to be visualised as an input/output machine.
Though a large number of teachers support the use of these languages for learning mathematics concepts and problem solving skills and though it seems likely that the benefits are realised, there is virtually no hard evidence of any of these benefits. This is not because the experimental data fails to support these beliefs but rather because there is no experimental data.
Neither is there any solid theoretical basis for preferring one kind of visual representation over another. There is poor understanding of how maths concepts are learnt and virtually none of how these alternate visual representations interact with this learning, either helping or hindering.
I do expect but cannot offer proof that:
- Turtle Art's ability to do "back" gives the opportunity for more complex number line concepts
- Turtle Art and Etoys' plug in metaphor is a good way to conceptualise assignment
- Turtle Art's prefix notation is a better way to visual binary operators
- Etoys' variable watcher with editing on the fly and variable decimal places is a good way to visualise number and variables
- Turtle Art's visualisation of a function as an input/output machine or black box is a good way to visualise a function but it is limited by poor documentation
This comparison of features is not intended as an endorsement of one language over another. Other important factors are the affective (or fun), flow
, low entry, wide walls and high ceiling.
Labels: etoys, gamemaker, Python, Scratch, Sugar, TurtleArt