learn how to program a computer - without a computer

how are processes represented?

processes are played by following a track that has been set up. imagine a round-trip in which a top-level loop is executed by each child in the group. during the round, combinations of the available programming concepts are used (booleans, inner loops, random, array-methods)

control flow

during the round there are branches (if/else statements) and jumps (subroutines) that later return. subroutines are symbolic and the subroutine to execute is to be looked up in a table.

loops

a smaller ring containing statements and commands.

building blocks

blocks are +/- 50cm (15") long. they can be combined like the rails of a toy train. they have a rail on the surface where the sphere representing the control-flow moves. furthermore they have holes where to add variable assignments (like temperature = 30) and control-flow statements (if temperature > 25 return 'hot').

how to play

the children walk the round with the sphere representing the control-flow, follow the changing state, understand branching and subroutines, and set variables accordingly.

boolean logic

'boolean objects'

true and false must be represented symbolically.

e.g. with weights or perforated objects
TODO:: invent an object, that can be conbined and represent AND, OR, NOR

random number generators

objects

platonic solids as dice

using the mothertongue

the terminology but also the language of the class must be the mothertongue of the children (or the majority thereof).
in order to facilitate a continuation of the learning process with the computer, the mothertongue must be programmable on the computer using the same terminology that was used during the class

Terminology

all the technincal terms have to be translated in the language of the children. particular attention should be given to words that have not been translate, but of which the english word is used by the population (e.g. mouse in Italian, server in German) see e.g. German Terminology

Programming with the computer

although programming on the computer is neither the aim, nor necessary, it is an advantage having a programming language in which it is possible to repeat the studied concepts. this language should use the same terminology that was used in class.

more technical details

the height of the blocks must be good for children's stature. next to the rails there must be enough space for the children to walk along.
inner loops on the other hand might be vertical to save space. see: realization