Thursday, December 31, 2015

Touch Fraction ℚ (1.4.x)

New version of Android App "Touch Fraction ℚ"  (version 1.4.x and up)

Evolution of the app over the years: (1993-2015)
In 1993 I developed the first executable (for Windows 3.1) of Touch Fraction ℚ (Racional.exe):

It was my first attempt of to show an interactive representation of Rational numbers as fibres in (Z * Z {0}) and arrangement in Q.
As the Rational representation in Wikipedia:  Rational Numbers:

In 2013 I made the new version of the app: The translation of the original executable to the Android OS.
The interaction became extended to the fraction:
The pie fraction to navigate across the fractions, and the rational representation to navigate across the equivalent fractions. (and select the range of available denominators)

In 2015 after the development of Touch Integers ℤ (+ - × ÷) (
This time, I was able to afford the next step:
Explain fractions and rational numbers as the prime factorization of its members: numerator and denominator.
This is the new version of Touch Fraction ℚ:

Interact with the fraction, build fractions adding or removing prime factors in the numerator or in the denominator.
Simplify fractions dragging common prime fractions to the "common" zone, and invert fractions with the "^-1" button.  

Touch Fraction ℚ is a complete tool to understand positive fractions, negative fractions, positive and negative numerators, positive and negative denominators, equivalent fractions, and inverted fraction.

Saturday, December 19, 2015

Ancient garden machinery

Some days ago, I stumbled upon this page:

 Gardens as crypto computers

There, there's also a reference to the work of Chandra Mukerji:  
"Territorial ambitions and the gardens of Versailles".
Chandra Mukerji - Cambridge University Press, Sep 25, 1997 - History - 393 pages

There: "Chandra Mukerji highlights the connections between the seemingly disparate activities of engineering and garden design, showing how the gardens at Versailles showcased French skills in using nature and art to design a distinctively French landscape and create a naturalized political territoriality."

From my point of view is a suggestive research field. I created a group google plus to continue the search :

"Ancient garden machinery"

If someone wants to help, he will be well received in the group.

Tuesday, November 10, 2015

Touch Integers ℤ (+ - × ÷)

Touch Integers is the evolution of the Touch decimals Place value ±. (in the same blog)
Touch decimals could not easily multiply or divide numbers:

I've started my reflections about this 20 years ago:
Is very easy add and subtract graphically. One can regroup the tokens of each order, regroup, carry or borrow tokens, and you can obtain the result in a simulation of abacus.

But not so easy to practice multiplication or division in this visual and interactive way

I looked the inside of the numbers:

Inside the numbers there are the components of the number: The prime factors.

To multiply two integers you must regroup the components of the two numbers.

To divide a integer, you must separate the components.

The program only works with integers. adds, subtract, multiplies and divides (but only exact division) 

Is my latest Android App: 

At Google Play:

I hope you will find it useful for teaching.

Some animations:

At left: two abacuses (two numbers stacked). 
At right two circles with the prime factors. (two circles with prime numbers stacked)
At right edge: all the prime numbers available to the app. 

To create a number:  Tap on the cells at left. The app shows the number
To add: Drag the tokens from one abacus to the other.
To subtract: Tap the sign key and drag from one abacus to the other.
To multiply: (the numbers must be previously created with the earlier previous steps)
Drag from one prime circle to the other prime circle.
To Divide a number:
Drag the prime numbers outside the prime circle:
Release prime factors to the other prime circle (integer division and multiplication) 
Release prime factors between the prime circles (integer division)
Release prime factors in the list of the right edge: (integer division and erase the prime factor)
Scroll and pick a prime number from the list of the right edge:

And release it in the free zone, or in a prime circle (multiplication) 

Playing with 12*12:

Creating two prime numbers: 
Multiply them. 
Restoring to the original state.
Throwing the prime numbers to the primes list. 

Picking numbers from the big list of prime numbers:
Playing with 2; 3; 5; 7; 11; 13.
1001; 30 and 30,030

(In the current version the top prime number available is 19,874,419)


Jacobo Bulaewsky: ( (broken)) (12/08/1955 - 08/25/2004)

Brian Sutherland: ( ) Montessori methods adapted to computer. 
(Shockwave Player activities: covering addition, subtraction, multiplication and division) 
Long multiplication:
Long division: 

Agustín Rayo: (Philosopy professor at MIT) 
And his article about the Prime Numbers, at Scientific American (Spanish version - 02/2010)):

"Ladrillos, candados y progresiones.
El fabuooso mundo de los números primos".

Ulrich Kortenkamp: (Professor für Didaktik der Mathematik. Universität Potsdam. 
Author of "Place Value Chart" and "Cinderella") 
Place Value Chart: Web page: Stellenwerttafel:

Wendy Petti (Teacher and author of MathCats): 
Nearly 20 years of support and patience with me. And specially for the vision about the position of the places in "Touch decimals Place value ±" which allowed continuing the work well.
Our first work as a team: OBBL Architecture blocks:
And "Place Value Party Cake":

Jeff LeMieux: (Builder, teacher along 35 years and software developer) 
Scripts Web Page:
For his work and the assistance in the development of Touch Decimals: Option without negative numbers.

Joan Jareño (From: CREAMAT team) 
And History of numbers: Calculus:
For their help in the last steps in the development of "Touch Integers".
* * *

Added later:
Playing with the app "Touch Integers ℤ (+ - × ÷)":
Exploring Mersenne primes: 2^p -1 (Not all are primes)


Saturday, October 31, 2015

Dancing Sort Algorithms

Post, only to illustrate the most common types of sorting algorithms:
Graphically, Dance, and Code:

(Graphic from )
(Videos from: )
(Pseudocode: )
(Pseudocode Shell: )
(Main Links (titles): Wikipedia:

Sorting Algorithms general animated image:
(Algorithms race)

1.-  Insert:

mark first element as sorted
for each unsorted element
  'extract' the element
  for i = lastSortedIndex to 0
    if currentSortedElement > extractedElement
      move sorted element to the right by 1
    else: insert extracted element

2.- Select:

repeat (numOfElements - 1) times
  set the first unsorted element as the minimum
  for each of the unsorted elements
    if element < currentMinimum
      set element as new minimum
  swap minimum with first unsorted position

3.- Bubble:

  swapped = false
  for i = 1 to indexOfLastUnsortedElement
    if leftElement > rightElement
      swap(leftElement, rightElement)
      swapped = true
while swapped

4.- Shell:

                                # Start with the largest gap and work down to a gap of 1
                                     foreach (gap in gaps){
                                # Do a gapped insertion sort for this gap size.
                                                     # The first gap elements a[] are already in gapped order
                                                     # keep adding one more element until the entire array is gap sorted  
                                     for (i = gap; i < n; i += 1){
                                            temp = a[i]
                                            for (j = i; j >= gap and a[j - gap] > temp; j -= gap){
                                                  a[j] = a[j - gap]
                                            a[j] = temp

5.- Merge:

split each element into partitions of size 1
recursively merge adjancent partitions
  for i = leftPartStartIndex to rightPartLastIndex inclusive
    if leftPartHeadValue <= rightPartHeadValue
      copy leftPartHeadValue
    else: copy rightPartHeadValue
copy elements back to original array

7.- Quick:

for each (unsorted) partition
  set first element as pivot
  storeIndex = pivotIndex + 1
  for i = pivotIndex + 1 to rightmostIndex
    if element[i] < element[pivot]
      swap(i, storeIndex); storeIndex++
  swap(pivot, storeIndex - 1)

Thursday, July 16, 2015

Touch decimals. Part 5. Collaboration

The 07/04/2015 after some days from the first post of "Touch decimals": 
I received this animation from JeffL (member of MathTools & author of: 
"Jeff's Interactive K12 Math Scripts Page") :

This led me to develop an alternative program with its version.
And I added it to my original program.
With translation between the two systems.
(One with 'Tokens' signed and  'Places' unsigned, and the other with color
'Tokens'  unsigned and 'Places' signed).
I think the program has been enriched by the two visions.

The pre-release videos:

The YouTube Video about the posted version (July 15 2015): Touch decimals v.1.1.0 r.4:

I should also like to thank Wendy Petti for comments made in the early development of this program.

From 2015/09/1 There's a online version of "Touch decimals Place value"  JavaScript version:

Friday, July 3, 2015

Touch decimals: Part 4: Borrowing in subtraction. Carry in Addition.

Touch decimals Place value ±

Borrowing in subtraction:

Carry in addition:

MERGED 2016/11/10:

The following Video:  Subtraction: 534-486:


Touch decimals Part 3: Basic interaction

Basic interactions:

Touch decimals: Part 2: Tokens and Places

New: Touch decimals: free Android app: Part II

Main components of Touch Decimals:

The main board with two charts of identic number of inner rectangles.
Each chart with:
A number with dot that represents each one of the two numbers.
A button to change the sign of all the inner components of each chart.
A row of a variable number of rectangles named: “Places”
A variable number of big dots (with numbers inside), named: “Tokens”.
In the “settings” button or option button: the way to refresh the charts.


A place is a rectangle, and a rectangle has 4 borders:
The top and bottom border may limit another equivalent place, or an abyss where can fall tokens, and become lost forever.
A token is free to cross any of those boundaries under its responsibility.
The left border is impenetrable:
Only it is authorized by the passage of a token if it gets the support of 10 tokens of the same type.
When the 10 tokens have crossed the left border, become one token
The right border:
Right border can be crossed freely
If a token cross the right boundary, it becomes 10 tokens of the same type in the next place.

The maximum reccomended number of tokens into each place is: nine.

A token can be either positive or negative
A positive token is born with the tap of a finger on the screen
A pair of positive-negative tokens is born with a tap of two fingers on the screen
A token disappears if it crosses the top or bottom border.
Positive and negative tokens have the same behavior:
A token can cross at will the intermediate horizontal border
When a token crosses the border on the right, it becomes 10 tokens.
A token need 9 companions from the old place to cross the border to the left.
Positive and negative tokens may be in the same place. 
But if two tokens of different signs meet, they cancel each other.

Touch decimals,Place value ±
This is how the tokens live in their places in "Touch decimals, Place value ±"

The behavior of places and tokens of this app describes the behavior of the numbers in the decimal system.

All in this text: charts (twins), places and tokens also describes the internal structure of the app and his internal java classes:

Wednesday, July 1, 2015

Touch decimals: Part 1: References

New Touch decimals: free Android app: Part I

This is the application with a longer history among which I developed in
The first version, made after two failed attempts was published in 1997:
I named it nummòlt, and in fact was the fundational application of
Nummòlt was a application developped in C ++, and it was my first OOP program:

It was one of many attempts in the nineties to represent numbers graphically to kids.
I will like to remember some of the contemporaries who tried to represent numbers graphically:

Jacobo Bulaevsky: and page:
(Rebuilt by Jill Britton and Suzanne Alejandre of MathForum)
(Jacobo Bulaevsky died in 8/13/2004)

Brian Sutherland and his:
A rebuild of the Original:

In collaboration with Wendy Petti of MathCats, in 2003 we did the "Place Value Party"
With the "place value" shaped as floors of a virtual birthday cake:

In recent years, with the advent of affordable graphic tablets, there are new approaches:
Mainly: Ulrich  Kortenkamp (The creator of Cinderella). The Place Value Chart

(Here I must recommend the book: "Early Mathematics Learning: Selected papers of the POEM 2002 Conference": ) 

And also:
Christian Urff: Rechentablett:

After the appearance of all this, I saw the possibility of bringing my previous programs under the way to represent numbers used by Urff and Kortenkamp.

This is my free: "Touch decimals, Place value ±" for Android.
Place value structure seen before, adding tokens with sign, and with the ability to create the neutral element of the sum: pairs of tokens positive - negative that do not alter the final outcome of any addition or subtraction operation.

*   *   *

Sunday, April 5, 2015

End of Freemium?. A conversation about a Infinut decision at Linkedin

All this is related to a hard discussion in the linkedin:

Related to the Infinut announcement:

The End of Freemium?

I am still reading all this and these ideas are resonating in my head:

Talking out about the fact of having eliminated all free versions of a collection of children's apps some people of google plus says:
Deepak Kumar:
Good products tend to sell well :-) Wish you the best! “

Trevor Sullivan:
I agree with Deepak. If you have a good product, your customers will be happy to pay for it. As a consumer (we all are), I can personally vouch for this. ;) ”

Greg Bulmash:
It is AFTER the professor has been paid and AFTER the students who paid tuition get the benefit of the class that it is shared more widely.”
Content sharing licenses and freemium apps are the CHOICE of creators”.
And later:
My volunteer group is hosted by Amazon and we have volunteers from Microsoft, Amazon, Ticketmaster, Boeing, Expedia and others who all donate their time to teach and mentor. Microsoft also donates $17 for every hour an employee volunteers with our group “
And yesterday the ultimate:
If you can make such outrageous, insulting, and blatantly prejudiced statements, then you need to do some introspection and deal with the poison inside your own soul, because that kind of bigotry and belligerence has no place in civilized discourse”.

And Finally: Deepak Kumar:
If there was an ignore button I'd be reaching for it now”.
(as a reaction for my: “To me cause I hilarity people who do good deeds during the weekend to make up for what they do during the week, and also these people who dare to give lessons and advices to everyone. Sorry”.

If we look at this discussion imagining we do not know what it is, we seem to be talking about the sale of any product of dispensable luxury. Or something worse.

I think some kind of brainwashing in the field of marketing is seriously affecting these people, or maybe they do not know about what kind of topic we are talking

We are talking about the disappearance of freemium versions of some quality programs made by Ana Redmond from Infinut dedicated to pedagogy and didactics of mathematics. And I talk about the inappropriate applause that this decision has had on the GooglePlus audience.

First I must say that I share the concern of the developers of apps for the lack of profitability of apps in general that will never reward the efforts of programmers. (Modestly I think I'm a programmer too).

And I am also concerned that because of this lack of profitability of apps, good programmers are forced to work in big companies, and having to endure which is hard to bear in the workplace sometimes. Including my seemingly unfair criticism.
In this discussion, I think no one has taken into account is that we are talking about useful programs when teaching mathematics to young children.

Basic and useful teaching resources to teach math to young children, should be free, must not contain advertisements or hidden payment methods of any kind. This applies to apps and web pages, and to everything that is available to the kids.

Making teaching materials to teach maths to children, is a kind of service to humanity. This work is itself one of these good works that some do only some weekends

And no one freelance programmer is forced to make programs that constitute teaching resources. There are many other fields and disciplines in which they can develop free apps, paid apps, apps with ads or apps with payment mechanisms within applications without any problem.

If you do not already know, I think this is the right time for you to know.

And finally, heading directly to Ana Redmond, I would say that surely the "freemium" versions of their programs were not sufficiently accepted by parents of children because they offered on the one hand free games, and otherwise inaccessible games. This is very common and widely used in general in the world of apps, I think this structure has caused a misunderstanding. Parents have logically thought that was a free version to generate a kind of abstinence syndrome of the paid version. To avoid this misunderstanding, it would be necessary in future free versions of these programs don't will announce inaccessible parts or paid parts. Free applications should do what they already announced, and developers must consider that everyone is smart enough to see that, from the same company, there is another and more complete paid version.

Ethically, independent programmers should be a bit better than drug dealers 
located on the doors of schools. 

Sunday, March 22, 2015

Education and proper teaching is the best antidote to ward off the madness in our lives.

From the Prinzhorn Collection
Someone might say that insanity is the lack of tools to understand the real world.
Madness, in the discipline of physics for example, could be exemplified by the ignorance of the basic principle of conservation of energy.
A person who does not understand or unknown this principle, it seems a crazy person to the other people with basic skills.
While, the patient without the most basic knowledge, could spend a lifetime to solve an impossible problem to solve, further worsening their own state.
And besides, could eventually add more and more vicious circles of those who already we have normally in the head

Education and proper teaching is the best antidote to ward off a little the madness in our lives.

I will illustrate this with a drawing of the Prinzhorn Collection.
Part of the therapy practiced in the mental institution run by Hans Prinzhorn, 
( ) was to propose to internal patients to conduct drawings and diagrams in which patients express their concerns, concerns or ideas in general.

The drawing represents one of many attempts of a patient to figure out how to build a bicycle propelled by perpetual motion: I mean that as the bicycle moves, the bicycle exploits a supposed energy power, and the bicycle moves forward and accelerates itself, without help of the bicycle rider.

Some months later: More info about education may cut dementia: